いよいよダウンロードです
認証したトークンを使用して、データをダウンロードします
なお、ダウンロードにはffmpegを使うので、必要に応じてインストールしてください
ダウンロードする前に、再生する場合の動作を見てみます。
HTTPヘッダにX-Radiko-AuthTokenを指定した状態で、
https://radiko.jp/v2/api/ts/playlist.m3u8?station_id=放送局ID&l=15&ft=開始時刻(yyyymmddhhss)&to=終了時刻(yyyymmdd)
を取得します。
このファイルの中身は、
#EXTM3U #EXT-X-VERSION:3 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=52973,CODECS="mp4a.40.5" https://radiko.jp/v2/api/ts/chunklist/hogehoge.m3u8
のようになっていて、更にm3u8を取得すると、
#EXTM3U #EXT-X-VERSION:3 #EXT-X-ALLOW-CACHE:NO #EXT-X-TARGETDURATION:5 #EXT-X-MEDIA-SEQUENCE:1 #EXT-X-PROGRAM-DATE-TIME:2018-06-23T10:00:00+09:00 #EXTINF:5, https://media.radiko.jp/sound/b/放送局ID/20180623/20180623_100000_oFUdP.aac #EXT-X-PROGRAM-DATE-TIME:2018-06-23T10:00:05+09:00 #EXTINF:5, https://media.radiko.jp/sound/b/放送局ID/20180623/20180623_100005_8fa2c.aac #EXT-X-PROGRAM-DATE-TIME:2018-06-23T10:00:10+09:00 -- snip --
と、いくつものチャンクのURLが記載されています。
ここに記載されたaacを順に取得して再生をしています。
さて、ダウンロードですが、ffmpegを使用してplaylist.m3u8を取得すれば、aacを1つのファイルに結合してくれます。
ffmpeg -headers "X-Radiko-AuthToken: Step2で認証成功したX-Radiko-AuthToken" -i "https://radiko.jp/v2/api/ts/playlist.m3u8?station_id=放送局ID&l=15&ft=開始時刻(yyyymmddhhss)&to=終了時刻(yyyymmdd)" -acodec copy 出力ファイル.aac
ね、簡単でしょ。