インターネットラジオで、いま流れている曲。

Tuneping は数万のインターネットラジオ局のライブインデックスを保持し、再生履歴とウィッシュリスト通知を備えた JSON API として提供します。読み取るのはどのプレーヤーにも表示されるタイトル行だけで、音声は決して読みません。

01 · できること

6 つの機能、1 つの API

ライブ検索

キー不要

「いま Blue Monday を流しているのはどこ?」と尋ねると、該当する局が返ります。あいまい一致でアクセント記号を区別せず、一致ごとに信頼度が付きます。

GET /v1/now-playing/search

お気に入りの再生中の曲

キー不要

局 ID をまとめて 1 回リクエストすると、現在のタイトル、最初に確認された時刻、最後に確認された時刻が返ります。

GET /v1/now-playing?station_ids=…

再生履歴

Developer 以上

局が何を流したかを、推定の開始・終了時刻とともに返します。Developer では 7 日分、Pro 以上では 12 か月分です。

GET /v1/stations/{id}/history

ウィッシュリスト通知

Developer 以上

曲名やアーティストを指定すると、どこかの局がそれを流し始めた瞬間にわかります。ポーリングで取得するか、SSE でストリーミングできます。Pro 以上ではウェブフックでも受け取れます。

SSE · webhook

トラックとアーティスト

キー不要

タイトルは正規化され、可能な場合は MusicBrainz の ID にひも付けられるため、トラックやアーティストごとの再生回数を数えられます。

trk_… · art_… · MusicBrainz ids

局ディレクトリ

キー不要

数万の局を、国、コーデック、タイトルの読み取り方式とともに収録。検索と絞り込みができます。

GET /v1/stations

02 · しくみ

読むのは 1 行だけ

どのストリームにも、現在のタイトル、つまりプレーヤーに表示されるテキストを運ぶ小さな副チャネルがあります。Tuneping が読むのはそれだけです。

ディレクトリ

出発点は、コミュニティが管理する公開の Radio Browser ディレクトリです。各局を一度だけ調べ、タイトルが公開されているもっとも負担の小さい場所を見つけます。ストリーミングサーバーの公開ステータスエンドポイントか、ストリーム内のメタデータブロックです。

控えめにポーリング

20〜60 秒ごとに、1 局あたり数百バイトから約 16 KB を読み取り、接続を閉じます。1 サーバーへの同時接続は最大 2 本で、robots.txt と Retry-After に従います。運営者向けの詳細。

正規化

タイトルはアーティストとトラックに分けられ、曲、ステーション ID、番組、広告のいずれかに分類されます。テキストから可能な場合は MusicBrainz と照合し、明示的な不確かさ付きの開始時刻を与えます。

提供

ETag、レート制限ヘッダー、エッジキャッシュを備えたシンプルな JSON API です。仕様は OpenAPI ファイルと API リファレンスにあります。

メタデータのみ · 1 回のポーリングで保持するもののすべて

StreamTitle='Madonna - Holiday';

その前後の音声は、届いた端から破棄します。録音も、プレビューも、フィンガープリントも、中継もしません。ポーラーの動作。

03 · 正直な限界

できないこと

カバー範囲は局しだいです。

タイトルを送らず、局名やスローガンだけを送る局も多くあります。そうした局には印を付け、データを捏造することはしません。ライブのメタデータを送っている局の数はステータスページで確認できます。

曲の開始時刻は推定です。

ポーリングで検出した変化は、直前の間隔内のどこかで起きたものです。すべての再生には start_uncertainty_seconds が付きます。方式によって ±10〜30 秒を見込んでください。

メタデータはフィンガープリントではありません。

局のメタデータによる検出は音声認識より網羅性が低く、認定された再生回数にはなりません。証拠として示す場合は「局のメタデータから検出」と記してください。

局は入れ替わります。

ストリームは毎日のように移転し、停止し、運営者が変わります。局はいつでもオプトアウトでき、24 時間以内に API から消えます。

テキストのみ。

局名はテキストとして返します。ロゴやアートワークはサービスに含まれません。

04 · プラン

プラン

セルフサービスで、いつでも解約できます。年払いは月額の 10 倍です。価格には該当する場合 VAT が含まれます。Stripe は CHF、EUR、USD、GBP、JPY で請求します。Business と年払いについては [email protected] まで。

Free

€0

無期限

  • 1 日 1,000 リクエスト
  • 2 req/s、バースト 5
  • ライブ検索、再生中の曲の一括取得(20 局)、局ディレクトリ
  • トラックとアーティストの参照
  • メール確認後に API キー 1 つ
  • 「Data by Tuneping」を表示
無料キーを取得

Developer

€29 / 月

または €290 / 年

  • 月 100,000 リクエスト
  • 10 req/s、バースト 20
  • 再生中の曲を最大 100 局まで一括取得
  • 7 日分の再生履歴
  • ウィッシュリスト 10 件(ポーリングまたは SSE)
  • メールサポート(2 営業日以内)
  • クレジット表記は不要
Developer を始める

Business

€349〜 / 月

年間請求、ボリュームは個別設定

  • リクエスト量とレートを個別に設定
  • 12 か月分の履歴と、それ以前の集計データ
  • ウェブフックエンドポイント 20 個、フィルターなしの全件配信も可
  • ウィッシュリスト 1,000 件、SSE 接続 20 本
  • CSV / JSONL エクスポート
  • 読み取りに月間 99.5 % の SLA、専任の担当者
お問い合わせ

05 · 運営者の方へ

局を運営していますか?

ログに TunepingBot/0.1 (+https://tuneping.com/bot) が見つかるかもしれません。20〜60 秒ごとに、公開ステータスエンドポイントか、ストリームの最初のメタデータブロックを読み取るだけで、それ以上のことはしません。送信元のアドレスと、24 時間以内に反映される 3 つのオプトアウトの方法を 1 ページにまとめています。お問い合わせ:[email protected]。

局の運営者の方へ