radiko録音(ダウンロード)への道 その1

はじめに

radikoのタイムフリーとエリアフリーを大変便利に使っているのですが、
過去1週間分まで遡れるのはいいとして、
「聴取を開始してから24時間以内であれば、合計3時間まで」という制限があります。

意外と24時間経過してしまったりして、全部聞けないこともあるので、(Cookie削除すれば、ゲフンゲフン…)
どうにかして短時間かつ高品質でダウンロードしてみます。

まず、タイムフリーで再生するまでの流れについて、
Chromeのデベロッパーツールや、パケットキャプチャーで解析、また先人の知恵を借りると、
大雑把に以下の3ステップあります。
(エリアフリーの場合は、プレミアム会員として、1の前にログインしてCookieを取得して、以降取得したCookieを使って各Stepを進めます)

  1. https://radiko.jp/v2/api/auth1 にGETリクエストしてトークンを取得
  2. https://radiko.jp/v2/api/auth2 にGETリクエストしてトークンを認証
  3. 2で認証したトークンを使って番組を再生

目的達成のためには、3で再生しているデータをブッコ抜けばいいわけです。

Step1.トークン取得

https://radiko.jp/v2/api/auth1 に以下のHeaderでGETします。
※x-radiko-app-version/device/userは何でもOKぽいです

X-Radiko-App: pc_html5
X-Radiko-App-Version: 0.0.1
X-Radiko-User: dummy_user
X-Radiko-Device: pc

curlだとこんな感じです

 curl -s -c cookie.txt
 -H 'X-Radiko-App: pc_html5' 
 -H 'X-Radiko-App-Version: 0.0.1' 
 -H 'X-Radiko-User: dummy_user' 
 -H 'X-Radiko-Device: pc' 
 -I -L https://radiko.jp/v2/api/auth1

すると、以下のようなレスポンスヘッダが帰ってきます。

HTTP/1.1 200 OK
Server: nginx
Date: Tue, 19 Jun 2018 13:11:31 GMT
Content-Type: text/plain
Connection: keep-alive
X-Radiko-AppType: pc
X-Radiko-AppType2: pc
X-Radiko-AuthToken: Zv-wZAx3hMCFEQ7dz-okdA
X-Radiko-AuthWait: 0
X-Radiko-Delay: 15
X-Radiko-KeyLength: 16
X-Radiko-KeyOffset: 22
Access-Control-Expose-Headers: X-Radiko-AuthToken, X-Radiko-Partialkey, X-Radiko-AppType, X-Radiko-AuthWait, X-Radiko-Delay, X-Radiko-KeyLength, X-Radiko-KeyOffset
Access-Control-Allow-Credentials: true

次に必要になるのは、
X-Radiko-AuthTokenX-Radiko-KeyLengthX-Radiko-KeyOffsetの3つです。

次のステップで、この3つを使って、トークンを認証します。

Step2

シェアする

フォローする