Ce qui passe sur les radios en ligne, en ce moment.
Tuneping tient un index en direct de dizaines de milliers de stations de radio en ligne et le sert sous forme d’API JSON, avec historique de diffusion et alertes de liste de souhaits. Nous lisons la ligne de titre qu’affiche chaque lecteur, jamais l’audio.
Essayez en direct, sur l’index réel · 2 req/s sans clé
Lire la documentation de l’APIÉtat en directGET https://api.tuneping.com/v1/now-playing/search
01 · Ce que vous obtenez
Six fonctions, une API
Recherche en direct
sans cléDemandez « qui passe Blue Monday en ce moment ? » et obtenez les stations, en recherche approximative et insensible aux accents, avec un niveau de confiance par résultat.
GET /v1/now-playing/search
Titre en cours pour les favoris
sans cléUne seule requête pour un lot d’identifiants de stations renvoie le titre en cours, le moment où il a été vu pour la première fois et celui de sa dernière confirmation.
GET /v1/now-playing?station_ids=…
Historique de diffusion
developer +Ce qu’une station a diffusé, avec des heures de début et de fin estimées : 7 jours sur Developer, 12 mois sur Pro et au-delà.
GET /v1/stations/{id}/history
Alertes de liste de souhaits
developer +Indiquez une chanson ou un artiste et sachez dès qu’une station commence à le diffuser. Récupérez l’alerte par interrogation ou en flux SSE ; sur Pro et au-delà, par webhook.
SSE · webhook
Morceaux et artistes
sans cléLes titres sont normalisés et, si possible, reliés à des identifiants MusicBrainz, pour que vous puissiez compter les diffusions par morceau ou par artiste.
trk_… · art_… · MusicBrainz ids
Annuaire des stations
sans cléDes dizaines de milliers de stations avec leur pays, leur codec et la méthode que nous utilisons pour lire leurs titres, avec recherche et filtres.
GET /v1/stations
02 · Fonctionnement
Nous lisons une ligne
Chaque flux transporte un petit canal annexe avec le titre en cours, le texte qu’affiche votre lecteur. Tuneping lit cela et rien d’autre.
Annuaire
Nous partons de l’annuaire public Radio Browser, maintenu par la communauté, et sondons chaque station une fois pour trouver l’endroit le moins coûteux où son titre est publié : l’endpoint d’état public du serveur de streaming ou le bloc de métadonnées intégré au flux.
Interroger, poliment
Toutes les 20 à 60 secondes, nous lisons de quelques centaines d’octets à environ 16 KB par station, puis nous fermons la connexion. Au plus deux connexions par serveur à la fois, robots.txt et Retry-After respectés. Détails pour les opérateurs.
Normaliser
Les titres sont séparés en artiste et morceau, classés comme chanson, indicatif, émission ou publicité, rapprochés de MusicBrainz quand le texte le permet, et dotés d’une heure de début avec une incertitude explicite.
Servir
Une API JSON simple avec ETags, en-têtes de limite de débit et cache en périphérie, décrite dans un fichier OpenAPI et dans la référence de l’API.
Uniquement des métadonnées · tout ce que nous gardons d’une interrogation
StreamTitle='Madonna - Holiday';
L’audio qui l’entoure est jeté au fur et à mesure de son arrivée. Aucun enregistrement, aucun extrait, aucune empreinte audio, rien de relayé. Ce que fait le poller.
03 · Limites, honnêtement
Ce qu’il ne sait pas faire
Beaucoup de stations n’envoient aucun titre, seulement leur propre nom ou des slogans. Nous les signalons et n’inventons pas de données ; la page d’état indique combien envoient des métadonnées en direct.
Un changement vu lors d’une interrogation s’est produit quelque part dans l’intervalle précédent. Chaque diffusion porte start_uncertainty_seconds ; comptez ±10 à 30 s selon la méthode.
La détection à partir des métadonnées des stations est moins complète que la reconnaissance audio et ne vaut jamais comptage certifié des diffusions. Comme élément de preuve, indiquez « détecté à partir des métadonnées de la station ».
Les flux déménagent, disparaissent et changent de mains chaque jour. Une station peut demander son exclusion à tout moment et quitte l’API sous 24 heures.
Les noms de stations sont renvoyés sous forme de texte ; les logos et visuels ne font pas partie du service.
04 · Offres
Offres
En libre-service, résiliable à tout moment. La facturation annuelle vaut dix fois le prix mensuel. Les prix incluent la TVA lorsqu’elle s’applique ; Stripe facture en CHF, EUR, USD, GBP ou JPY. Business et facturation annuelle : [email protected].
Free
0 €
pour toujours
- 1 000 requêtes par jour
- 2 req/s, rafale de 5
- Recherche en direct, titres en cours par lot (20 stations), annuaire des stations
- Consultation des morceaux et des artistes
- 1 clé d’API après vérification de l’e-mail
- Affiche « Data by Tuneping »
Developer
29 € / mois
ou 290 € / an
- 100 000 requêtes par mois
- 10 req/s, rafale de 20
- Titres en cours par lot, jusqu’à 100 stations
- 7 jours d’historique de diffusion
- 10 listes de souhaits, par interrogation ou via SSE
- Support par e-mail sous 2 jours ouvrés
- Aucune attribution requise
Pro
99 € / mois
ou 990 € / an
- 1 000 000 requêtes par mois
- 50 req/s, rafale de 100
- 12 mois d’historique de diffusion
- 5 endpoints webhook avec filtres par station, morceau et artiste
- 100 listes de souhaits, également livrées par webhook
- Rapports de diffusion par morceau et par artiste
- 5 clés d’API, support par e-mail sous 1 jour ouvré
Business
à partir de 349 € / mois
facture annuelle, volume sur mesure
- Volume et débit de requêtes sur mesure
- 12 mois d’historique, plus des agrégats au-delà
- 20 endpoints webhook, firehose non filtré autorisé
- 1 000 listes de souhaits, 20 connexions SSE
- Exports CSV / JSONL
- SLA mensuel de 99,5 % sur les lectures, interlocuteur dédié
05 · Opérateurs
Vous gérez une station ?
Vous verrez peut-être TunepingBot/0.1 (+https://tuneping.com/bot) dans vos journaux. Il lit votre endpoint d’état public ou le premier bloc de métadonnées de votre flux toutes les 20 à 60 secondes, et rien de plus. Ses adresses, ainsi que trois façons de vous exclure qui prennent effet sous 24 heures, tiennent sur une seule page. Questions : [email protected].