TunepingBot/0.1 (+https://tuneping.com/bot)
你在日志里发现了 TunepingBot。以下是它所做的一切。
它每 20 到 60 秒读取一次你的电台公开的“正在播放”标题,每次只有几 KB,从不触碰音频。如果你不希望它这样做,下面三种退出方式中任意一种都有效,会在 24 小时内永久生效。无需任何理由。
To: [email protected] Subject: Opt-out Body: stream.example.net
将流主机名或 URL 发送至 [email protected]。移除完成后你会收到确认。
User-agent: TunepingBot Disallow: /
按协议、主机和端口分别生效。真正的 User-agent: * 规则组同样有效(见下文)。
X-Robots-Tag: noindex
加在状态端点或流 URL 上。返回 401 或 403 效果相同。
速览
| User-Agent | TunepingBot/0.1 (+https://tuneping.com/bot) |
|---|---|
| IPv4 | 167.233.123.27 |
| IPv6 | 2a01:4f8:c016:4026::1 |
| 反向 DNS | poller.tuneping.com,经正向确认。机器可读的列表见 /bot/ips.json。 |
| 频率 | 每个电台每 20 到 60 s 一次请求;标题 30 min 未变化后改为每 5 min 一次。每个服务器 IP 最多 2 个并发连接。 |
| 每次检查的字节数 | 状态端点为几百字节;一个流内元数据块最多约 16 KB。 |
| 生效时间 | 24 小时内,通常几分钟。永久有效,直到你要求恢复。 |
| 运营方 | Tuneping,见版权信息。滥用举报:[email protected]。 |
我们是谁
Tuneping 是一个小型服务,维护着网络电台正在播放内容的实时索引,让听众和开发者可以跨电台搜索一首歌、查看某个电台的播放历史,或在心愿单里的歌曲开始播放时收到通知。索引完全基于电台本就向每位听众公开的标题元数据构建。服务器只处理元数据;从不存储、转发或再分发音频。
它请求什么
- 流主机上的
/robots.txt,最多缓存 24 小时 - 流媒体服务器的公开状态端点,如果有的话(JSON、XML 或纯文本形式,例如
/status-json.xsl、/stats、/currentsong、/7.html;在服务器提供时,每小时读取一次最近播放列表) - 否则读取公开的流 URL 本身,带
Icy-MetaData: 1,只读到第一个流内元数据块到达为止,随即关闭 Connection: close,普通 HTTP/1.1,连接超时 5 s、总超时 10 s,最多 5 次重定向
它从不做什么
- 读取超出找到标题所需的那一个元数据间隔之外的音频(约 16 KB,随到随弃)
- 以任何形式录制、存储、转发或再分发音频
- 请求管理路径、上文所列状态端点以外的网页,或任何需要凭据的内容
- 轮询 HLS 播放列表或分片
- 抓取台标或封面图
- 调用目录的点击计数器
只要电台有状态端点,我们就优先使用它,因为这只花费你几百字节,而不是一小段音频数据。
频率与行为
- 间隔:廉价的状态端点每 20 s 一次,流内元数据每 60 s 一次(少数用户明确要求关注的电台为 30 s)。相对于所服务电台数量而言体积较大的状态页,会按比例降低轮询频率,因此一个电台每分钟消耗的字节数绝不会超过一次流内检查。标题 30 分钟未变化的电台降为每 5 分钟一次。间隔带有正负 10 % 的抖动,避免同一服务器上的电台被同步请求。
- 并发:同一时间对任一服务器 IP 地址最多保持 2 个连接。同一地址背后有许多电台时,会降低轮询频率,而不是并行轮询。
- robots.txt:按协议、主机和端口,遵守针对
TunepingBot标识和*的规则。有一个例外:一些流媒体服务器自带的 robots.txt 内容恰好只有User-agent: */Disallow: /,别无其他。我们把这种服务器默认文件视为“没有 robots.txt”,因为它不是电台运营者写的;TunepingBot规则组,或任何超出那一行的*规则组,都会被完整遵守。robots.txt 返回 5xx 时视为“禁止”,直到能再次获取为止。 - 退避:遵守带
Retry-After的429和503;连接错误按指数退避(1、2、4、8 分钟,最长 24 小时)。连续失败 7 天后永久停止轮询。 - 封锁:如果对某个地址的所有连接开始超时,我们会暂停该地址一小时,并向自己发出告警。流 URL 返回
401或403,或出现任何防火墙或反机器人质询,都视为该主机永久退出。 - 连接:
Connection: close,普通 HTTP/1.1,读完元数据块后以 FIN 正常关闭;连接超时 5 s、总超时 10 s;重定向最多跟随 5 跳。
如何确认确实是我们
请求只来自上表中的两个地址,不会来自其他地方。两个地址的反向 DNS 都是 poller.tuneping.com,且该名称正向解析回相同的地址,因此可以做正向确认的反向 DNS 检查。任何从其他地址自称 TunepingBot 的都不是我们;请告知 [email protected]。当前列表也发布在 tuneping.com/bot/ips.json;如有变更,我们会至少提前一周在本页公布。
如何退出
本页顶部三种方式中任意一种即可。三种方式都会被遵守,退出是永久性的,并在 24 小时内生效(实际上调度器几分钟内就会读取)。无需任何理由,也无需说明。robots.txt 中通用的 User-agent: * 规则组同样有效,只要它不是你的服务器软件自带的那一行默认规则(见上文)。在流 URL 上返回 401 或 403,或在其前面设置防火墙质询,会自动产生同样的效果。
退出后,该电台会从轮询、API 以及所有公开页面中移除,并被加入一份屏蔽列表,调度器在发出每一个请求前都会查阅这份列表。如果你之后想重新加入,请发邮件到同一地址。
我们存储什么
对每个电台:当前和过去的标题字符串(与发布时完全一致)、我们看到它们的时间戳,以及该电台的目录条目(名称、流 URL、国家、编码格式)。出于礼貌和滥用处理的需要,我们还会保留自己连接的日志(时间戳、你服务器的 IP 和端口、状态码、字节数)7 天,按小时汇总后保留 30 天,这样在你询问时我们可以准确回答发出过哪些请求。我们不存储音频、听众数据或任何个人信息。机器人不收集任何个人数据;我们处理的唯一个人数据是给我们写信的人的联系方式(见隐私)。
主动加入,或更正我们展示的信息
如果你希望我们读取某个特定端点,或你在我们遗漏的地方发布了标题,请告知 [email protected],我们会切换过去。如果你的电台名称或信息有误,也可以通过同一地址更正。
电台列表从哪里来
电台目录数据来自 radio-browser.info,CC0(公有领域的社区数据)。机器人从不调用目录的点击计数器。音乐元数据与 MusicBrainz(CC0 核心数据)进行匹配。
联系与滥用举报
- 电台运营者、退出、更正:[email protected]
- 滥用举报:[email protected]
- 其他所有事项:[email protected]
我们每天查看这些邮箱,力争在 24 小时内回复确认。运营方信息见版权信息页面。
更新日志
| 2026-10 | TunepingBot/0.1,首个版本。出口地址 167.233.123.27 和 2a01:4f8:c016:4026::1,反向 DNS poller.tuneping.com。 |