yayugu / net-radio-archive

MIT License
188 stars 29 forks source link

Radikoの一部局の録音ができない (radiko_hls) #67

Closed split-n closed 3 years ago

split-n commented 3 years ago

環境: Radiko TOKYO判定、非ログイン

radiko_hlsブランチのRadiko録音について、 少なくとも ラジオNIKKEI1(RN1)、ラジオNIKKEI2(RN2) の録音が行えていない状態です。

エラーとしては、 https://github.com/yayugu/net-radio-archive/blob/9b507edac34ecfe552e255ac86bc1c3d50fa0348/lib/radiko/recording.rb#L104 で定義されたc-radikoサーバのHLSのURLをGETした結果が404で、bodyに想定した内容が来ていないため、 https://github.com/yayugu/net-radio-archive/blob/9b507edac34ecfe552e255ac86bc1c3d50fa0348/lib/radiko/recording.rb#L112 で[0]がnilのためエラーとなっています。

他のプロジェクトやWeb版の動作を確認したところ、 http://radiko.jp/v2/station/stream_smh_multi/RN1.xml https://radiko.jp/v3/station/stream/pc_html5/RN1.xml よりHLSのURLを取得していました。(RN1はチャンネル) stream_smh_multiでTBS等他チャンネルとRN1の内容を見比べると、 TBSのほうはareafree=0/1の各ノードでc-radiko/f-radikoの両方のURLが定義されていましたが、RN1やRN2ではどちらもf-radikoのURLが定義されているため、RN1/RN2についてはc-radikoサーバで配信がされていないようです。

対処としては上記xmlよりHLSのURLを取得するのが正攻法のようですが、簡単な回避策としてはc-radikoで404ならf-radikoでリトライするという対応で対処ができそうでしたので、これから試します。