Ce se difuzează pe radioul online, chiar acum.
Tuneping menține un index în timp real al zecilor de mii de posturi de radio online și îl oferă ca API JSON, cu istoricul difuzărilor și alerte wishlist. Citim linia de titlu pe care o afișează orice player, niciodată sunetul.
Încercați în timp real, pe indexul real · 2 req/s fără cheie
Citiți documentația APIStare în timp realGET https://api.tuneping.com/v1/now-playing/search
01 · Ce primiți
Șase lucruri, un singur API
Căutare în timp real
fără cheieÎntrebați „cine difuzează Blue Monday chiar acum?” și primiți posturile, cu potrivire aproximativă și fără a ține cont de diacritice, plus un nivel de încredere pentru fiecare rezultat.
GET /v1/now-playing/search
Now playing pentru posturile preferate
fără cheieO singură cerere pentru un batch de id-uri de posturi întoarce titlul curent, momentul în care a fost văzut prima dată și momentul în care a fost confirmat ultima dată.
GET /v1/now-playing?station_ids=…
Istoricul difuzărilor
developer +Ce a difuzat un post, cu ore estimate de început și de sfârșit: 10 zile pe Developer, 30 de zile pe Pro și pe planurile superioare. Indexul este nou; pe măsură ce se colectează mai multe date, vor fi oferite mai mult de 30 de zile.
GET /v1/stations/{id}/history
Alerte wishlist
developer +Indicați o melodie sau un artist și aflați în momentul în care un post începe să o difuzeze. Interogați periodic sau primiți alertele în stream prin SSE; pe Pro și pe planurile superioare, primiți și un webhook.
SSE · webhook
Piese și artiști
fără cheieTitlurile sunt normalizate și, unde este posibil, legate de identificatori MusicBrainz. Căutați o piesă sau un artist după id, căutați în catalog după nume, listați difuzările unei piese pe toate posturile, iar pe Pro numărați airplay-ul unui artist pe post, țară sau zi.
GET /v1/tracks/{id} · GET /v1/search/tracks
Directorul de posturi
fără cheieZeci de mii de posturi cu țara, codecul și metoda prin care le citim titlurile, cu căutare și filtre.
GET /v1/stations
02 · Cum funcționează
Citim o singură linie
Fiecare stream are un mic canal secundar cu titlul curent, textul pe care îl afișează playerul. Tuneping citește doar atât.
Director
Pornim de la directorul public Radio Browser, întreținut de comunitate, și sondăm fiecare post o singură dată pentru a găsi locul cel mai ieftin în care își publică titlul: endpoint-ul public de stare al serverului de streaming sau blocul de metadate din stream.
Interogare, cu politețe
La fiecare 20–60 de secunde citim între câteva sute de octeți și aproximativ 16 KB per post, apoi închidem conexiunea. Cel mult două conexiuni per server în același timp, cu respectarea robots.txt și a Retry-After. Detalii pentru operatori.
Normalizare
Titlurile sunt împărțite în artist și piesă, clasificate ca melodie, ident, emisiune sau reclamă, asociate cu MusicBrainz acolo unde textul permite și primesc o oră de început cu o incertitudine explicită.
Servire
Un API JSON simplu, cu ETag-uri, header-e pentru limita de rată și cache la edge, descris într-un fișier OpenAPI și în referința API.
Doar metadate · tot ce păstrăm dintr-o interogare
StreamTitle='Madonna - Holiday';
Audioul din jur este aruncat pe măsură ce sosește. Nicio înregistrare, nicio previzualizare, niciun fingerprinting, nimic retransmis. Ce face poller-ul.
03 · Limite, spuse direct
Ce nu poate face
Multe posturi nu trimit titluri, ci doar propriul nume sau sloganuri. Le marcăm și nu inventăm date; pagina de stare arată câte furnizează metadate în timp real.
O schimbare observată la o interogare s-a produs undeva în intervalul anterior. Fiecare difuzare include start_uncertainty_seconds; așteptați-vă la ±10–30 s, în funcție de metodă.
Detectarea din metadatele posturilor este mai puțin completă decât recunoașterea audio și nu este niciodată un număr certificat de difuzări. Ca dovadă, scrieți „detectat din metadatele postului”.
Stream-urile se mută, se opresc și își schimbă proprietarul zilnic. Un post poate cere excluderea în orice moment și iese din API în cel mult 24 de ore.
Numele posturilor sunt returnate ca text; logourile și coperțile nu fac parte din serviciu.
04 · Planuri
Planuri
Self-service, anulați oricând. Facturarea anuală costă de zece ori cât cea lunară. Prețurile includ TVA acolo unde se aplică; Stripe facturează în CHF, EUR, USD, GBP sau JPY. Business și facturare anuală: [email protected].
Free
0 €
pentru totdeauna
- 1.000 de cereri pe zi
- 2 req/s, burst 5
- Căutare în timp real, now playing în batch (20 de posturi), directorul de posturi
- Consultarea pieselor și a artiștilor, căutare în catalog
- 1 cheie API după verificarea e-mailului
- Afișează „Data by Tuneping”
Developer
29 € / lună
sau 290 € / an
- 100.000 de cereri pe lună
- 10 req/s, burst 20
- Now playing în batch pentru până la 100 de posturi
- 10 zile de istoric al difuzărilor, per post și per piesă
- 10 wishlist-uri, interogate periodic sau prin SSE
- Suport prin e-mail în cel mult 2 zile lucrătoare
- Fără atribuire obligatorie
Pro
99 € / lună
sau 990 € / an
- 1.000.000 de cereri pe lună
- 50 req/s, burst 100
- 30 de zile de istoric al difuzărilor
- 5 endpoint-uri webhook cu filtre pe post, piesă și artist
- 100 de wishlist-uri, livrate și prin webhook
- Rapoarte de airplay per artist, pe post, țară sau zi
- 5 chei API, suport prin e-mail în cel mult 1 zi lucrătoare
Business
de la 349 € / lună
factură anuală, volum personalizat
- Volum și rată de cereri personalizate
- 30 de zile de istoric al difuzărilor
- 20 de endpoint-uri webhook, firehose nefiltrat permis
- 1.000 de wishlist-uri, 20 de conexiuni SSE
- Exporturi CSV / JSONL
- SLA lunar de 99,5 % pentru citiri, persoană de contact dedicată
05 · Operatori
Administrați un post?
Este posibil să vedeți TunepingBot/0.1 (+https://tuneping.com/bot) în loguri. Citește endpoint-ul public de stare sau primul bloc de metadate al stream-ului la fiecare 20–60 de secunde, și nimic mai mult. Adresele lui și trei modalități de excludere, care intră în vigoare în cel mult 24 de ore, sunt pe o singură pagină. Întrebări: [email protected].