目次
Shoutcast の放送局一覧を取得するコードを書きました。
注意
ここに書いてある方法は、私が Shoutcast の javascript から探り当てたものです。 Shoutcast はきっとサポートしていませんので変更される可能性もあります。
放送局のフォーマット
まず、放送局のデータフォーマットを確認しておきます。 Shoutcast からは次の形で放送局のJSONを取得できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[ { "ID" : 1234567, "Name" : "XYZ STATION", "Format" : "audio/aacp", "Bitrate" : 48, "Genre" : "Punk", "CurrentTrack" : "Over My Shoulder", "Listeners" : 3, "IsRadionomy" : false, "IceUrl" : null, "IsPlaying" : false } ] |
10個のパラメータがあります。 一番重要なパラメータは ID です。 番組のURLは ID を使って次のように表されます。
1 |
'http://yp.shoutcast.com/sbin/tunein-station.pls?id=' + stationId |
また “IsPlaying” は現在聴ける状態なのかを表しています。 これも重要です。
ジャンルから放送局一覧を取得する
次のようにして、特定ジャンルの放送局一覧を取得することができます。
1 |
curl -F "genrename=GENRENAME" http://www.shoutcast.com/Home/BrowseByGenre |
Shoutcast に次のパラメータをつけて POST リクエスト を送信します。
- genrename
キーワードで放送局を検索する
1 |
curl -F "query=KEYWORD" http://www.shoutcast.com/Search/UpdateSearch |
Shoutcast に次のパラメータをつけて POST リクエスト を送信します。
- query
放送局を細かい条件で検索する
1 |
curl -F "genre=GENRE" -F "station=STATION" -F "type=TYPE" -F "artist=ARTIST" -F "song=SONG" http://www.shoutcast.com/Search/UpdateAdvancedSearch |
Shoutcast に次のパラメータをつけて POST リクエスト を送信します。
- genre
- station
- type
- artist
- song
もし、検索に必要のないパラメータがある場合は、 -F "genre="
のようにパラメータの値を空にしてください。
上のリクエスト例は http の URL を使用していますが、 https でもOKです。