TunepingBot/0.1 (+https://tuneping.com/bot)
Ați găsit TunepingBot în loguri. Iată tot ce face.
Citește titlul public „în difuzare acum” al postului dumneavoastră la fiecare 20 până la 60 de secunde, câțiva KB per verificare (pentru HLS un segment de cel mult 512 KB, analizat pentru tag-urile ID3 și apoi aruncat), și nu înregistrează, nu stochează și nu retransmite niciodată audio. Dacă preferați să nu o facă, oricare dintre cele trei metode de excludere de mai jos funcționează, permanent, în cel mult 24 de ore. Fără întrebări.
To: [email protected] Subject: Opt-out Body: stream.example.net
Trimiteți host-ul sau URL-ul stream-ului la [email protected]. Primiți o confirmare imediat ce postul este eliminat.
User-agent: TunepingBot Disallow: /
Per schemă, host și port. Funcționează și un grup User-agent: * propriu-zis (vedeți mai jos).
X-Robots-Tag: noindex
Pe endpoint-ul de status sau pe URL-ul stream-ului. Un 401 sau 403 are același efect.
Pe scurt
| User-Agent | TunepingBot/0.1 (+https://tuneping.com/bot) |
|---|---|
| IPv4 | 167.233.123.27 |
| IPv6 | 2a01:4f8:c016:4026::1 |
| DNS invers | poller.tuneping.com, confirmat și în sens direct. Listă în format citibil de mașină la /bot/ips.json. |
| Frecvență | O verificare per post la fiecare 20 până la 60 s (pentru HLS de obicei 2 cereri, 1 când segmentul nu s-a schimbat); la fiecare 5 min după ce titlul nu s-a schimbat timp de 30 min. Cel mult 2 conexiuni simultane per IP de server. |
| Octeți per verificare | Câteva sute de octeți pentru un endpoint de status; până la aproximativ 16 KB pentru un bloc de metadate din stream; pentru HLS playlist-ul media plus cel mult 512 KB dintr-un segment, cu o valoare mediană de aproximativ 50 KB (măsurat pe 2026-11-03). |
| Intrare în vigoare | În cel mult 24 de ore, de obicei în câteva minute. Permanent, până când cereți să reveniți. |
| Operator | Tuneping, vedeți datele de identificare. Abuz: [email protected]. |
Cine suntem
Tuneping este un serviciu mic care ține un index live al melodiilor difuzate de posturile de radio online, astfel încât ascultătorii și dezvoltatorii să poată căuta o melodie în toate posturile, să vadă istoricul de difuzare al unui post sau să fie anunțați când începe o melodie din wishlist. Indexul este construit în întregime din metadatele de titlu pe care posturile le publică deja pentru fiecare ascultător. Serverul procesează doar metadate; nu stochează, nu retransmite și nu redistribuie niciodată audio.
Ce solicită
/robots.txtde pe host-ul stream-ului, păstrat în cache cel mult 24 de ore- Endpoint-ul public de status al serverului de streaming, dacă există (variantele JSON, XML sau text simplu, de exemplu
/status-json.xsl,/stats,/currentsong,/7.html; o dată pe oră lista pieselor redate recent, acolo unde serverul o oferă) - Altfel, chiar URL-ul public al stream-ului, cu
Icy-MetaData: 1, citit doar până sosește primul bloc de metadate din stream, apoi închis - Pentru stream-urile HLS: master playlist-ul (când postul este sondat și după o repornire, altfel doar când URL-ul media playlist-ului din cache nu mai funcționează), media playlist-ul variantei audio cu cea mai mică lățime de bandă (niciodată o variantă marcată ca video) și cel mult un segment per verificare, cel mai nou segment complet, citit până la cel mult 512 KB. Se analizează doar metadatele ID3 temporizate din el; audio-ul este aruncat. Dacă cel mai nou segment este cel deja citit, nu se descarcă niciun segment. Fiecare cerere din lanț respectă regulile de mai jos: robots.txt este verificat pentru calea fiecăreia când postul este sondat și la reverificarea zilnică, iar lista de excluderi pentru host-ul ei înaintea fiecărei cereri.
Connection: close, HTTP/1.1 simplu, timeout de 5 s la conectare și de 10 s în total, cel mult 5 redirecționări
Ce nu face niciodată
- Citirea de audio dincolo de singurul interval de metadate necesar pentru a găsi titlul (aproximativ 16 KB, aruncați pe măsură ce sosesc) sau, pentru HLS, dincolo de un segment per verificare (citit până la cel mult 512 KB, aruncat după analiză)
- Înregistrarea, stocarea, retransmiterea sau redistribuirea audio în orice formă
- Solicitarea căilor de administrare, a altor pagini web decât endpoint-urile de status enumerate mai sus sau a oricărei resurse care necesită credențiale
- Descărcarea variantelor marcate ca video sau a mai mult de un segment HLS per verificare
- Descărcarea de logo-uri sau imagini de copertă
- Apelarea contorului de clicuri al directorului
Preferăm endpoint-ul de status ori de câte ori un post are unul, pentru că vă costă câteva sute de octeți în loc de o scurtă rafală de audio.
Cât de des și cum se comportă
- Interval: la fiecare 20 s pentru endpoint-urile de status ieftine, la fiecare 60 s pentru metadatele din stream (30 s pentru un număr mic de posturi pe care un utilizator a cerut explicit să le urmărească), la fiecare 60 s pentru HLS (fără un nivel mai rapid). Paginile de status mari în raport cu posturile pe care le servesc sunt interogate proporțional mai rar, astfel încât un post nu costă niciodată mai mulți octeți pe minut decât o verificare în stream. Posturile al căror titlu nu s-a schimbat de 30 de minute trec la o verificare la fiecare 5 minute. Stream-urile HLS ale căror segmente nu conțin niciun titlu (doar un timestamp sau alte tag-uri care nu sunt titluri, deloc ID3 sau text substituent) nu sunt interogate; sunt verificate din nou la fiecare 30 de zile. Intervalele au un jitter de plus sau minus 10 %, astfel încât posturile de pe același server să nu fie accesate toate în același ritm.
- Concurență: cel mult 2 conexiuni deschise în același timp către aceeași adresă IP de server. Multe posturi din spatele unei singure adrese sunt interogate mai rar, nu în paralel.
- robots.txt: respectat pentru token-ul
TunepingBotși pentru*, per schemă, host și port. O excepție: mai multe servere de streaming vin cu un robots.txt încorporat care este exactUser-agent: */Disallow: /și nimic altceva. Tratăm această setare implicită goală a serverului ca „fără robots.txt”, pentru că nu este ceva scris de operatorul postului; un grupTunepingBotsau orice grup*cu mai mult decât acea singură linie este respectat integral. Un 5xx la robots.txt este tratat ca „disallow” până când fișierul poate fi descărcat din nou. - Back-off:
429și503cuRetry-Aftersunt respectate; la erori de conexiune, intervalul de reîncercare crește exponențial (1, 2, 4, 8 minute, până la 24 de ore). După 7 zile consecutive de eșecuri, interogarea se oprește definitiv. - Blocări: dacă toate conexiunile către o adresă încep să expire, punem acea adresă pe pauză timp de o oră și ne trimitem o alertă. Un
401sau403pe URL-ul stream-ului (pentru HLS, pe master playlist) sau orice challenge de firewall ori anti-bot este tratat ca o excludere permanentă a acelui host. - Conexiuni:
Connection: close, HTTP/1.1 simplu, închise curat cu un FIN după ce blocul de metadate sau segmentul HLS a fost citit; timeout de 5 s la conectare și de 10 s în total; redirecționările sunt urmate pe cel mult 5 pași.
Cum verificați că suntem chiar noi
Cererile vin de la cele două adrese din tabelul de mai sus și de nicăieri altundeva. DNS-ul invers al ambelor adrese este poller.tuneping.com, iar acest nume se rezolvă în sens direct la aceleași adrese, deci o verificare de DNS invers confirmată în sens direct funcționează. Orice se prezintă drept TunepingBot de la o altă adresă nu suntem noi; vă rugăm să ne anunțați la [email protected]. Lista curentă este publicată și la tuneping.com/bot/ips.json; vom anunța modificările pe această pagină cu cel puțin o săptămână înainte să intre în vigoare.
Cum cereți excluderea
Oricare dintre cele trei metode din partea de sus a acestei pagini este suficientă. Toate trei sunt respectate, excluderile sunt permanente și intră în vigoare în cel mult 24 de ore (în practică, planificatorul le preia în câteva minute). Fără întrebări, fără să fie nevoie de vreo justificare. Un grup general User-agent: * în robots.txt funcționează și el, atâta timp cât nu este doar setarea implicită de o linie livrată de software-ul serverului dumneavoastră (vedeți mai sus). Returnarea unui 401 sau 403 pe URL-ul stream-ului sau plasarea unui challenge de firewall în fața lui are automat același efect.
O excludere elimină postul din interogare, din API și din orice pagină publică și îl trece pe o listă de suprimare pe care planificatorul o consultă înaintea fiecărei cereri. Dacă doriți ulterior să reveniți, scrieți la aceeași adresă.
Ce stocăm
Pentru fiecare post: șirurile de titlu curente și anterioare exact așa cum au fost publicate, momentul în care le-am văzut și înregistrarea postului din director (nume, URL-ul stream-ului, țară, codec). Din politețe și pentru gestionarea abuzurilor păstrăm și un jurnal al propriilor conexiuni (timestamp, IP-ul și portul serverului dumneavoastră, codul de status, numărul de octeți) timp de 7 zile, agregat pe ore timp de 30 de zile, ca să vă putem spune exact ce cereri am făcut, dacă ne întrebați. Nu stocăm audio, date despre ascultători sau orice informație personală. Botul nu colectează date personale; singurele date personale pe care le prelucrăm sunt datele de contact ale persoanelor care ne scriu (vedeți confidențialitate).
Înscriere sau corectarea datelor afișate
Dacă preferați să citim un anumit endpoint sau publicați titlurile într-un loc pe care l-am ratat, scrieți la [email protected] și vom face schimbarea. Dacă numele sau detaliile postului dumneavoastră sunt greșite, le corectăm prin aceeași adresă.
De unde provine lista de posturi
Datele din directorul de posturi provin de la radio-browser.info, CC0 (date comunitare în domeniul public). Botul nu apelează niciodată contorul de clicuri al directorului. Metadatele muzicale sunt asociate cu MusicBrainz (datele de bază CC0).
Contact și abuz
- Operatori de posturi, excluderi, corecturi: [email protected]
- Raportări de abuz: [email protected]
- Orice altceva: [email protected]
Citim zilnic aceste căsuțe de e-mail și ne propunem să confirmăm primirea în 24 de ore. Datele operatorului se găsesc pe pagina cu datele de identificare.
Istoricul modificărilor
| 2026-10 | TunepingBot/0.1, prima versiune. Trafic de ieșire de la 167.233.123.27 și 2a01:4f8:c016:4026::1, DNS invers poller.tuneping.com. |