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.

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ă cheie

O 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ă cheie

Titlurile 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ă cheie

Zeci 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

Acoperirea depinde de posturi.

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.

Începutul melodiilor este estimat.

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ă.

Metadatele nu sunt fingerprinting.

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”.

Posturile apar și dispar.

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.

Doar text.

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”
Obțineți o cheie gratuită

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
Începeți cu Developer

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ă
Scrieți-ne

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].

Pentru operatorii de posturi