可以在互联网电台实时索引之上构建的十二件事
Twelve things you could build on a live index of internet radio

原始链接: https://tuneping.com/notes/twelve-things-to-build-on-a-live-radio-index/

Tuneping 跟踪约 23,000 个正在播报的电台(在已检查的 58,000 个和已列出的 78,000 个电台中)的直播电台标题播报。它会分类标题变化,并将歌曲匹配到 MusicBrainz。API 支持反向 Shazam 搜索当前正在播放某首歌的电台;在匹配播放时提醒的愿望清单;广告感知的电台跳转;艺人播放报告;电台排行榜;电台监控与事件流;播放历史;面向 AI 代理的 MCP 访问;节目曲目列表;以及批量导出。实时调用无需 API 密钥,而历史、愿望清单、流和更深入功能需要密钥或付费套餐。它仅提供元数据:不录音、不指纹识别、不转播;标题是电台播报,不是音频;播放是观测结果,不是法律证据;Developer 套餐历史为 10 天,Pro/Business 套餐为 30 天;索引仍在增长。免费密钥通过电子邮件发送,API 文档涵盖所有参数和限制。

一个 Hacker News 帖子链接到 tuneping.com,该网站列出了直播互联网电台索引的十二种可能用途。一名评论者描述了一个类似的开源网络电台项目,它轮询歌曲标题,并质疑谁会需要 Tuneping 的服务。其他人批评帖子的写作可能是 AI 生成且不连贯,而有些人则为作者的努力辩护。讨论围绕这个想法的实用性及其呈现质量展开。
相关文章

原文

● Confirmed. You get one e-mail on release day, and nothing before it.

● Mail sent. One click on the link in it confirms your address; then you hear from us once, on release day. Nothing yet? Look in spam.

▲ That did not look like an e-mail address. Try again below.

▲ Too many confirmation mails for this address or network today. Try again tomorrow.

First the shape of the thing, because every idea below rests on it. At any moment about 23,000 stations are announcing a title; 58,000 are checked; 78,000 are listed. Every title change is kept, matched against MusicBrainz where it is a song, and classified: a song, a station ident, a programme name, an ad break, nothing, or junk. The live part needs no key at all. History, wishlists and the event stream need one, and the plans say how deep and how fast.

curl "https://api.tuneping.com/v1/now-playing/search?q=boards%20of%20canada&limit=5"

The reverse Shazam

Shazam tells you what song is playing. This tells you where a song is playing. Type an artist or a title, get the stations announcing it right now, press play on one of them. The home page of this site is the smallest possible version; a phone app that remembers your favourite stations, opens the stream in one tap and keeps a history of what you found is the next one.

GET/v1/now-playing/search no key

A song alarm

"The next time any station in Germany plays Kraftwerk, tell me." A wishlist is exactly that sentence as JSON: an artist or a track, a station filter, a delivery. Tuneping watches the index and tells you the moment a station announces a match, by webhook, over a stream, or when you ask. From there it is a Discord bot, a Telegram message, a lamp that turns red, or a recorder that starts recording, which is the next note.

POST/v1/wishlists GET/v1/stream key · developer webhooks from Pro

A radio player that never plays an ad. Keep a list of stations of the same kind, say a dozen jazz stations, and ask for all of them in one call. Each row carries a classification. When your station switches to ad_break or ident, hop to another in the list that is in the middle of a song. Two honest limits: the classification is a reading of the announced text, not of the audio, and some stations announce nothing at all during their breaks.

GET/v1/stations GET/v1/now-playing?station_ids= no key · 20 stations per call 100 from Developer

"Where am I being played?"

An independent artist or a small label has no idea which internet stations play their records. The airplay report answers it: plays of an artist grouped by station, by country or by day, for the last 30 days. It is not certified airplay monitoring and no royalty collector will accept it as evidence. It is, however, a true picture of which stations announced your song and when, and that is more than most artists get today. A page per artist, a weekly mail, done.

GET/v1/search/artists GET/v1/artists/{id}/airplay key · pro

Charts without the streaming lens

Streaming charts say what people chose. Radio charts say what editors and DJs chose for them, in each country, and the two disagree in interesting ways. The most played songs of the last 24 hours, 7 or 30 days, worldwide or per country, need no key. Our own charts pages are built from them nightly. A newsletter "what Dutch radio played this week", or a detector for songs that rise on radio before they rise anywhere else, is a cron job away.

GET/v1/charts/tracks GET/v1/charts/artists no key

A monitor for the people who run stations

Broadcasters rarely watch their own title line, and it breaks quietly: an encoder that sends the stream URL instead of a title, a playout system that stopped updating at 02:00, a station that announces nothing for hours. One batch call over your own stations shows each one's current line, how it was classified and when it was last confirmed. For a network, the event stream pushes every change of every listed station to one dashboard, as it happens.

GET/v1/now-playing?station_ids= no key GET/v1/stream?station_ids= key · developer

"What did I just hear?" in the car

You know the station and roughly the time, and the song is gone. Play history has it: what a station played, newest first, with an estimated start and end for each title. A voice skill, a car-radio companion app, or a bookmark button that stores "this station, now" and resolves it later. The timestamps are when the station announced the title, give or take the 20 to 60 seconds between two checks.

GET/v1/stations/{id}/history key · developer 10 days, 30 on Pro

Ask an AI agent

"Which Austrian stations are playing jazz right now, and what did Ö1 play this morning?" The MCP server wraps the API as tools, so Claude, or any client that speaks the protocol, can answer questions like that against live data instead of guessing. It is a .NET tool on NuGet and listed in the official MCP registry; a key goes into one environment variable and the agent takes it from there.

Tuneping.Mcp on NuGet · com.tuneping/mcp in the registry

Tracklists for shows and podcasts

A DJ with a weekly show spends an hour after each one typing the tracklist for the website. The history of the station between 20:00 and 22:00 is that list, with times. The raw title-change feed goes one step further and keeps everything the station sent, including idents, junk and the lines nobody could parse, which is what you want when the show is the thing you are documenting and not just the songs in it.

GET/v1/stations/{id}/history key · developer GET/v1/stations/{id}/title-changes key · pro

Research on what radio actually plays

How concentrated is airplay in a country? How much domestic music does its radio play, and does it change by hour? How fast does a new release reach the small stations? These are old questions in media studies, usually answered from a handful of stations by hand. Exports give the play events of the whole index as CSV or NDJSON, country by country, for the plan's history depth, which turns a term of coding into a query.

POST/v1/exports key · business

Under the tour dates: "Playing right now on Radio X, Radio Y." One request, one list, a link per station. Our song pages have exactly that box, and so can anyone's, without a key, as long as the page says where the data comes from. On the free tier that is a link reading "Data by Tuneping", and that is the whole price.

GET/v1/now-playing/search no key attribution

A record button that waits for the song

All of the above see the song. One thing records it. Tapelark, the recorder this index grew out of, is getting the search above as a tab and the wishlist as a "record the next play" button, with the audio staying entirely on your own computer. That is a note of its own: Search for a song, find the station playing it, press record.

in the works

What you cannot build

The index is made of metadata only, so a few things are out of scope for good. Nothing here touches audio: there is no recording, no relaying, no fingerprinting, and there never will be, on any plan. The titles are what stations choose to announce, in the spelling they choose, and about 23,000 of the 58,000 checked stations announce one; the rest send nothing useful, and no API call changes that. A play is detected from an announcement, which makes it a good observation and a poor piece of legal evidence. History reaches back 10 days on Developer and 30 on Pro and Business, and the index is young, so the long views come as the data accumulates.

Where to start

The live calls need no key, with 1,000 requests a day per address and the attribution link. A free key comes by e-mail in a minute and makes the limits yours instead of your network's. The API reference has every parameter and every error, and if you build one of these, write to [email protected]: it goes on this site.

联系我们 contact @ memedata.com