返回资讯中心
外部精选
软件工程
#开发者实时流

Tuneping 实时索引数万网络电台,发文列举十二种可构建应用

来源标题:Twelve things you could build on a live index of internet radio

Tuneping 每 20 至 60 秒读取数万个网络电台的标题行并以 JSON 形式提供结果,目前约 2.3 万个电台在播报标题、5.8 万个被检查、7.8 万个被收录。每次标题变化都会被保留,若是歌曲则与 MusicBrainz 匹配并分类为歌曲、台标或节目。官方发文列举了基于该实时索引可构建的十二种应用,多数可在一个周末内完成。

Hacker News 最新victorbuilds2026/11/7 · 8 天前19 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

现场笔记 · 第 01 期 · 2026 年 11 月 6 日 · 7 分钟阅读

Tuneping 每 20 到 60 秒读取数万个网络电台的标题行,并以 JSON 形式提供结果。这是关于世界的一个朴素事实,全天不断刷新,它的用途远不止一个搜索框。以下是它所能实现的十二件事,从微不足道到雄心勃勃,每一件都附有所需的调用和对应的套餐。其中大多数一个周末就能完成。

● 已确认。发布日你会收到一封邮件,之前不会有任何消息。 ● 邮件已发送。点击邮件中的链接即可确认你的地址;之后我们只会在发布日联系你一次。还没收到?检查一下垃圾邮件。 ▲ 这看起来不像一个电子邮件地址。请在下方重试。 ▲ 今天该地址或网络的确认邮件发送过多。请明天再试。 ▲ 该确认链接未知或已超过 7 天。请在下方重新输入你的地址以获取新链接。

先说清楚这个东西的形态,因为下面的每个想法都建立在它之上。任意时刻,大约有 23,000 个电台正在播报标题;58,000 个正在被检查;78,000 个已被收录。每一次标题变更都会被保留,如果是歌曲则与 MusicBrainz 进行匹配,并进行分类:歌曲、电台标识、节目名称、广告时段、无内容或垃圾信息。实时部分完全不需要密钥。历史记录、愿望清单和事件流需要密钥,各套餐说明了深度和速度。

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

反向 Shazam

Shazam 告诉你正在播放什么歌。这个告诉你一首歌在哪里播放。输入艺术家或标题,获取此刻正在播报它的电台,点击其中一个开始播放。本站首页是这个功能最小的版本;一个记住你喜爱电台、一键打开流媒体并保留你发现记录的手机应用,则是下一步。

“下次德国任何电台播放 Kraftwerk 时,告诉我。”愿望清单就是这句话的 JSON 形式:一个艺术家或曲目、一个电台过滤器、一种投递方式。Tuneping 监视索引,并在电台播报匹配的瞬间通知你——通过 webhook、通过流,或者在你询问时。在此基础上,你可以做一个 Discord 机器人、一条 Telegram 消息、一盏变红的灯,或者一个开始录音的录音机——那就是下一条。

POST/v1/wishlists GET/v1/stream 密钥 · 开发者 来自 Pro 的 webhooks

一个永不播放广告的电台播放器。维护一个同类电台的列表,比如十几个爵士电台,用一次调用请求全部。每一行都带有分类。当你的电台切换到 ad_break 或 ident 时,跳到列表中正处于歌曲中间的另一个电台。有两个诚实的限制:分类是对播报文本的解读,而非对音频的解读;有些电台在广告时段完全不播报任何内容。

GET/v1/stations GET/v1/now-playing?station_ids= 无需密钥 · 每次调用 20 个电台 开发者套餐 100 个

一个独立艺术家或小厂牌完全不知道哪些网络电台在播放他们的唱片。播放报告回答了这个问题:按电台、按国家或按天分组的艺术家播放次数,覆盖最近 30 天。它不是经过认证的播放监测,没有版税征收机构会接受它作为证据。然而,它真实地呈现了哪些电台在何时播报了你的歌曲,这比大多数艺术家今天所能得到的要多。每个艺术家一个页面,每周一封邮件,搞定。

GET/v1/search/artists GET/v1/artists/{id}/airplay 密钥 · pro GET/v1/charts/tracks GET/v1/charts/artists 无需密钥

广播机构很少关注自己的标题行,而它会悄无声息地出问题:编码器发送的是流 URL 而不是标题,播出系统在凌晨 02:00 停止更新,某个电台数小时不播报任何内容。对你自己的电台进行一次批量调用,就能看到每个电台的当前行、它是如何被分类的以及最后一次确认的时间。对于一个电台网络,事件流会将每个已收录电台的每一次变更实时推送到一个仪表盘。

GET/v1/now-playing?station_ids= 无需密钥 GET/v1/stream?station_ids= 密钥 · 开发者

你知道电台和大致时间,但歌曲已经过去了。播放历史有记录:某个电台播放了什么,最新的在前,每个标题都带有估计的开始和结束时间。一个语音技能、一个车载电台伴侣应用,或者一个书签按钮,存储“这个电台,现在”,之后再解析。时间戳是电台播报标题的时间,误差在两次检查之间的 20 到 60 秒。

GET/v1/stations/{id}/history 密钥 · 开发者 10 天,Pro 30 天

“现在哪些奥地利电台在播放爵士乐,Ö1 今天早上播放了什么?”MCP 服务器将 API 封装为工具,因此 Claude 或任何支持该协议的客户端都可以基于实时数据回答这类问题,而不是猜测。它是一个 NuGet 上的 .NET 工具,并已列入官方 MCP 注册表;将一个密钥放入一个环境变量,智能体就会从那里接管。

Tuneping.Mcp 在 NuGet 上 · 注册表中的 com.tuneping/mcp

一个每周有节目的 DJ 在每期节目后花一个小时为网站输入曲目列表。电台在 20:00 到 22:00 之间的历史记录就是那个列表,带有时间。原始标题变更流则更进一步,保留电台发送的所有内容,包括标识、垃圾信息和无人能解析的行——当你记录的是节目本身而不仅仅是其中的歌曲时,这正是你想要的。

GET/v1/stations/{id}/history 密钥 · 开发者 GET/v1/stations/{id}/title-changes 密钥 · pro

一个国家的播放集中度如何?其电台播放多少本国音乐,是否随小时变化?一首新歌多快能到达小电台?这些是媒体研究中的老问题,通常靠人工从少数几个电台中寻找答案。导出功能将整个索引的播放事件以 CSV 或 NDJSON 格式按国家提供,覆盖套餐所包含的历史深度,从而将一个学期的编程工作变成一次查询。

(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →