TunepingBot/0.1 (+https://tuneping.com/bot)
TunepingBot w Twoich logach? Oto wszystko, co robi.
Co 20 do 60 sekund czyta publiczny tytuł „teraz gra” Twojej stacji, po kilka KB naraz, i nigdy nie dotyka dźwięku. Jeśli wolisz, żeby tego nie robił, każdy z trzech sposobów rezygnacji poniżej działa trwale w ciągu 24 godzin. Bez pytań.
To: [email protected] Subject: Opt-out Body: stream.example.net
Wyślij host lub URL strumienia na [email protected]. Gdy zostanie usunięty, dostaniesz potwierdzenie.
User-agent: TunepingBot Disallow: /
Osobno dla każdego schematu, hosta i portu. Prawdziwa grupa User-agent: * też działa (zob. niżej).
X-Robots-Tag: noindex
Na endpoincie statusu lub na URL strumienia. Odpowiedź 401 lub 403 ma ten sam skutek.
Najważniejsze fakty
| User-Agent | TunepingBot/0.1 (+https://tuneping.com/bot) |
|---|---|
| IPv4 | 167.233.123.27 |
| IPv6 | 2a01:4f8:c016:4026::1 |
| Odwrotny DNS | poller.tuneping.com, potwierdzony w przód. Lista do odczytu maszynowego pod /bot/ips.json. |
| Częstotliwość | Jedno żądanie na stację co 20 do 60 s; co 5 min, gdy tytuł nie zmienił się od 30 min. Najwyżej 2 równoczesne połączenia na adres IP serwera. |
| Bajty na sprawdzenie | Kilkaset bajtów dla endpointu statusu; do około 16 KB dla jednego bloku metadanych w strumieniu. |
| Zaczyna działać | W ciągu 24 godzin, zwykle po kilku minutach. Trwale, dopóki nie poprosisz o powrót. |
| Operator | Tuneping, zob. notę prawną. Nadużycia: [email protected]. |
Kim jesteśmy
Tuneping to mała usługa, która prowadzi bieżący indeks tego, co grają internetowe stacje radiowe, aby słuchacze i deweloperzy mogli wyszukać utwór na wielu stacjach, przejrzeć historię odtworzeń stacji albo dostać powiadomienie, gdy zacznie się utwór z listy życzeń. Indeks powstaje wyłącznie z metadanych tytułów, które stacje i tak publikują każdemu słuchaczowi. Serwer obsługuje tylko metadane; nigdy nie przechowuje, nie przekazuje ani nie redystrybuuje dźwięku.
Co pobiera
/robots.txtna hoście strumienia, w cache do 24 godzin- Publiczny endpoint statusu serwera strumieniowego, jeśli istnieje (wariant JSON, XML lub tekstowy, na przykład
/status-json.xsl,/stats,/currentsong,/7.html; raz na godzinę listę ostatnio granych utworów, jeśli serwer ją udostępnia) - W przeciwnym razie sam publiczny URL strumienia z
Icy-MetaData: 1, czytany tylko do nadejścia pierwszego bloku metadanych w strumieniu, a potem zamykany Connection: close, zwykłe HTTP/1.1, 5 s na nawiązanie połączenia i 10 s łącznego limitu czasu, najwyżej 5 przekierowań
Czego nigdy nie robi
- Nie czyta dźwięku poza jednym interwałem metadanych potrzebnym do znalezienia tytułu (około 16 KB, odrzucanych na bieżąco)
- Nie nagrywa, nie przechowuje, nie przekazuje ani nie redystrybuuje dźwięku w żadnej formie
- Nie odpytuje ścieżek administracyjnych, stron internetowych innych niż wymienione wyżej endpointy statusu ani niczego, co wymaga danych logowania
- Nie odpytuje playlist ani segmentów HLS
- Nie pobiera logo ani grafik
- Nie wywołuje licznika kliknięć katalogu
Jeśli stacja ma endpoint statusu, zawsze go wybieramy, bo kosztuje Cię kilkaset bajtów zamiast krótkiego fragmentu dźwięku.
Jak często i jak się zachowuje
- Interwał: co 20 s dla tanich endpointów statusu, co 60 s dla metadanych w strumieniu (30 s dla niewielkiej liczby stacji, które użytkownik wprost poprosił śledzić). Strony statusu duże w stosunku do liczby obsługiwanych stacji są proporcjonalnie odpytywane rzadziej, tak by stacja nigdy nie kosztowała więcej bajtów na minutę niż jedno sprawdzenie w strumieniu. Stacje, których tytuł nie zmienił się od 30 minut, są odpytywane co 5 minut. Interwały mają losowe odchylenie plus minus 10 %, by stacje na jednym serwerze nie były odpytywane w tym samym rytmie.
- Współbieżność: najwyżej 2 otwarte połączenia naraz z jednym adresem IP serwera. Wiele stacji pod jednym adresem jest odpytywanych rzadziej, a nie równolegle.
- robots.txt: respektowany dla tokenu
TunepingBoti dla*, osobno dla każdego schematu, hosta i portu. Jeden wyjątek: niektóre serwery strumieniowe mają wbudowany robots.txt, który zawiera dokładnieUser-agent: */Disallow: /i nic więcej. Taki goły domyślny plik serwera traktujemy jak „brak robots.txt”, bo nie napisał go operator stacji; grupaTunepingBotalbo dowolna grupa*z czymkolwiek więcej niż ta jedna linia jest respektowana w całości. Błąd 5xx przy robots.txt traktujemy jak „disallow”, dopóki nie da się go znowu pobrać. - Wycofanie: respektujemy
429i503zRetry-After; po błędach połączenia odstępy rosną wykładniczo (1, 2, 4, 8 minut, do 24 godzin). Po 7 kolejnych dniach niepowodzeń odpytywanie kończy się na dobre. - Blokady: jeśli wszystkie połączenia z danym adresem zaczynają przekraczać limit czasu, wstrzymujemy ten adres na godzinę i sami dostajemy alert.
401lub403na URL strumienia albo dowolne wyzwanie zapory lub ochrony przed botami traktujemy jako trwałą rezygnację tego hosta. - Połączenia:
Connection: close, zwykłe HTTP/1.1, poprawnie zamykane pakietem FIN po odczytaniu bloku metadanych; 5 s na nawiązanie połączenia i 10 s łącznego limitu czasu; najwyżej 5 przekierowań.
Jak sprawdzić, że to naprawdę my
Żądania przychodzą z dwóch adresów z tabeli powyżej i znikąd indziej. Odwrotny DNS obu adresów to poller.tuneping.com, a ta nazwa w przód wskazuje na te same adresy, więc kontrola odwrotnego DNS potwierdzonego w przód zadziała. Wszystko, co podaje się za TunepingBot z innego adresu, to nie my; daj znać na [email protected]. Aktualna lista jest też opublikowana pod tuneping.com/bot/ips.json; o zmianach poinformujemy na tej stronie co najmniej tydzień przed ich wejściem w życie.
Jak zrezygnować
Wystarczy dowolny z trzech sposobów z góry tej strony. Respektujemy wszystkie trzy, rezygnacja jest trwała i zaczyna działać w ciągu 24 godzin (w praktyce harmonogram uwzględnia ją po kilku minutach). Bez pytań i bez uzasadniania. Działa też ogólna grupa User-agent: * w robots.txt, o ile nie jest to tylko jednolinijkowy plik domyślny dostarczany z oprogramowaniem serwera (zob. wyżej). Odpowiedź 401 lub 403 na URL strumienia albo wyzwanie zapory przed nim ma automatycznie ten sam skutek.
Rezygnacja usuwa stację z odpytywania, z API i z każdej publicznej strony oraz wpisuje ją na listę wykluczeń, którą harmonogram sprawdza przed każdym pojedynczym żądaniem. Jeśli później zechcesz wrócić, napisz na ten sam adres.
Co przechowujemy
Dla każdej stacji: bieżące i wcześniejsze tytuły dokładnie w opublikowanej postaci, czas, kiedy je zobaczyliśmy, oraz wpis stacji w katalogu (nazwa, URL strumienia, kraj, kodek). Na potrzeby grzecznego odpytywania i obsługi nadużyć prowadzimy też log własnych połączeń (czas, IP i port Twojego serwera, kod statusu, liczba bajtów) przez 7 dni, a w postaci zagregowanej godzinowo przez 30 dni, by na prośbę dokładnie odpowiedzieć, jakie żądania wysłaliśmy. Nie przechowujemy dźwięku, danych słuchaczy ani niczego osobowego. Bot nie zbiera danych osobowych; jedyne dane osobowe, które przetwarzamy, to dane kontaktowe osób, które do nas piszą (zob. prywatność).
Zgoda albo poprawka tego, co pokazujemy
Jeśli wolisz, żebyśmy czytali konkretny endpoint, albo publikujesz tytuły w miejscu, które przeoczyliśmy, napisz na [email protected], a przełączymy się. Jeśli nazwa lub dane Twojej stacji są błędne, ten sam adres to naprawi.
Skąd pochodzi lista stacji
Dane katalogu stacji z radio-browser.info, CC0 (dane społeczności w domenie publicznej). Bot nigdy nie wywołuje licznika kliknięć katalogu. Metadane muzyczne są dopasowywane do MusicBrainz (dane podstawowe CC0).
Kontakt i nadużycia
- Operatorzy stacji, rezygnacje, poprawki: [email protected]
- Zgłoszenia nadużyć: [email protected]
- Wszystko inne: [email protected]
Czytamy te skrzynki codziennie i staramy się potwierdzić odbiór w ciągu 24 godzin. Dane operatora są na stronie noty prawnej.
Historia zmian
| 2026-10 | TunepingBot/0.1, pierwsza wersja. Ruch wychodzący z 167.233.123.27 i 2a01:4f8:c016:4026::1, odwrotny DNS poller.tuneping.com. |