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 秒一次請求;標題 30 分鐘沒有變化後改為每 5 分鐘一次。每個伺服器 IP 同時最多 2 條連線。 |
| 每次檢查的位元組數 | 狀態端點只要幾百位元組;一個串流內中繼資料區塊最多約 16 KB。 |
| 生效時間 | 24 小時內,通常幾分鐘就生效。永久有效,直到你要求恢復為止。 |
| 營運者 | Tuneping,請見網站資訊。濫用回報:[email protected]。 |
我們是誰
Tuneping 是一個小型服務,維護一份網路電臺正在播放內容的即時索引,讓聽眾與開發者可以跨電臺搜尋一首歌、查看某個電臺的播放紀錄,或在願望清單裡的歌曲開始播放時收到通知。這份索引完全建立在電臺原本就公開給每位聽眾的標題中繼資料上。伺服器只處理中繼資料,從不儲存、轉送或再散布音訊。
它會請求什麼
- 串流主機上的
/robots.txt,最多快取 24 小時 - 串流伺服器的公開狀態端點(如果有的話),包括 JSON、XML 或純文字格式,例如
/status-json.xsl、/stats、/currentsong、/7.html;伺服器若提供最近播放清單,每小時讀取一次 - 否則就以
Icy-MetaData: 1請求公開的串流 URL 本身,只讀到第一個串流內中繼資料區塊為止,隨即關閉 Connection: close,純 HTTP/1.1,連線逾時 5 秒、總逾時 10 秒,最多 5 次重新導向
它絕不會做的事
- 讀取超出找到標題所需那一個中繼資料間隔的音訊(約 16 KB,邊收邊丟棄)
- 以任何形式錄製、儲存、轉送或再散布音訊
- 請求管理路徑、上述狀態端點以外的網頁,或任何需要憑證的內容
- 輪詢 HLS 播放清單或片段
- 抓取標誌或封面圖片
- 呼叫目錄的點擊計數器
只要電臺有狀態端點,我們就優先使用,因為這樣你只需負擔幾百位元組,而不是一小段音訊。
頻率與行為
- 間隔: 低成本的狀態端點每 20 秒一次,串流內中繼資料每 60 秒一次(少數使用者明確要求追蹤的電臺為 30 秒)。相對於所服務電臺數而言較大的狀態頁面,會按比例降低輪詢頻率,因此一個電臺每分鐘耗費的位元組數絕不會超過一次串流內檢查。標題 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 秒、總逾時 10 秒;重新導向最多跟隨 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,第一版。對外 IP 為 167.233.123.27 與 2a01:4f8:c016:4026::1,反向 DNS 為 poller.tuneping.com。 |