radiko.jpのタイムフリー対応によるRadikaβVer1.71の修正方法


radiko.jpの録音ツールとして以前からRadikaβVer1.71を使用していた。
開発が終了した現在でも有志がAYTHKeyGet-Alternativeなど作成して延命してきた。しかし今回のradiko.jpのタイムフリー対応による修正で再び録音ができなくなった。
今回その対応をまとめたので記事にしたい。

修正する為に必要なファイルは2個だ
AYTHKeyGet-Alternativeのソースとビルドする為の無料のVisual Studio 2015だ
まずAYTHKeyGet-Alternativeのソースを入手する

https://github.com/dsuz
作者のページのAYTHKeyGet-Alternativeをクリックする

downloadをクリック

download ZIPをクリック。

https://www.microsoft.com/ja-jp/dev/products/visual-studio-2015.aspx
次に無料のVisual Studio 2015をダウンロードする

Free downloadをクリックしてダウンロードする
ダウンロード後インストールを行う
無料のVisual Studio 2015は英語版だ
しかしLanguage Pack というのを入れれば日本語が使える

Visual Studio 2015 Language Pack
https://www.microsoft.com/ja-jp/download/details.aspx?id=48157
こちらをダウンロードして実行する。その後、Visual Studio 2015実行して

メニューバーのTool → Options をクリック

Options のInternational Settingsをクリックして日本語に変更。その後OK
これでVisual Studio 2015を再起動すれば日本語化終了

次に最初の方に落としたAYTHKeyGet-Alternative-master.zipを解凍して
中に入ってるAYTHKeyGet.slnをクリック。Visual Studio 2015が起動

ソリューションエクスプローラーの中にあるswfextract.exeを削除
又はもともと持ってるswfextract.exeをAYTHKeyGetフォルダに置いてもいい

ソリューションエクスプローラーのprogramをダブルクリックしてソースを表示
下記の通りに修正
16行
const string playerURL = “http://radiko.jp/player/swf/player_4.0.0.00.swf”;
↓に変更
http://radiko.jp/apps/js/flash/myplayer-release.swf

73行
string parameterString = “-b 14 ” + swfFile + ” -o ” + pngFile;
↓に変更
“-b 12 ”

94,95行
req.Headers.Add(“X-Radiko-App: pc_1”);
req.Headers.Add(“X-Radiko-App-Version: 2.0.1”);
↓に変更
“X-Radiko-App: pc_ts”
“X-Radiko-App-Version: 4.0.0”

194,195行
req.Headers.Add(“X-Radiko-App: pc_1”);
req.Headers.Add(“X-Radiko-App-Version: 2.0.1”);
↓に変更
“X-Radiko-App: pc_ts”
“X-Radiko-App-Version: 4.0.0”

修正後保存する

その後、ツールバーのDebugReleaseに変更

メニューバーのビルドをクリックしてソリューションのビルドをクリック
ビルドに成功するとAYTHKeyGet\bin\ReleaseにAYTHKeyGet.exeが作成されます。
あとは使用OSによる適切な.net frameworkをインストールしてください
WIN7以降からは自動的にframework 3.5が有効になってるのでそのままで大丈夫だと思われます。

後は作成されたAYTHKeyGet.exeをRadikaβVer1.71のフォルダにコピーして動作すれば作業完了


radiko.jpを録音する


–2016年12月15日追記–

radiko.jpをバッチファイルとWSHで録音する

–2016年12月10日追記–
Radikoを録音するWSHが公開中止になりました
後日別の方法で録音する記事を書く予定です
申し訳ございません

 

2016021101.jpg
前回のらじる★らじるがうまくいったのでradiko.jpを録音も挑戦することにした
2016021102.jpg
現在、Radikaで録音しているがアプリの更新が終わってしまって
普通の手段では使えない
つくったもの公開所
http://koukaijo.seesaa.net/

そこで前回のらじる★らじるを録音するで使用したスプリクトと
同様のスプリクトを使用した
Radikoを録音するWSH
https://gist.github.com/booska/8861693
前回同様、コピペして必要なツールを用意して動作を確認する
前回同様、SCHTASKSを使用してタスクスケジューラに
登録して録音予約


この様にバッチファイルで引数を渡す
ファイル名 schtasks.bat
SCHTASKS /CREATE /TN “QRR_音楽リッスン?2-3小松未可子” /TR “D:\RadikoRec\RadikoRec.bat QRR 1:01:00 音楽リッスン?2-3小松未可子” /SC WEEKLY /d TUE /ST 01:59

タスクスケジューラを使用すると直接csript.exeを実行しにくい
バッチファイルで起動して引数を渡す事にした

その為、バッチファイルで起動して引数を渡すも同様
ファイル名RadikoRec.bat
D:
CD \RadikoRec
echo 録音開始
cscript RadikoRec.vbs /i:”%~1″ /t:”%~2″ /d:”rec\” /o:”%~3″ /s:No
echo 録音停止
cd D:\RadikoRec\rec\
for %%F in (*.flv) do goto FILE_EXIST
echo エラーファイルが無い
goto END
:FILE_EXIST
echo MP3変換開始
REN *”%~3″*.flv *.m4a
for %%i in (*”%~3″*.m4a) do D:\RadikoRec\bin\ffmpeg.exe -y -i “./%%~ni.m4a” -vn -acodec libmp3lame -strict unofficial “./%%~ni.mp3”
move D:\RadikoRec\rec\*”%~3″*.m4a D:\RadikoRec\rec\OLD\
echo MP3変換完了
:END

この様にバッチファイルで引数を渡す
ここまでは順調通り動作
数日間様子を見ていた
しかし、ラジオ番組は00:00から一時間との様に
一斉に他チャンネルも録音する
同時に録音開始するとRadiko.jpの独自認証
のダウンロードでバッティングするみたいだ
重複しないテンポラリファイル名を生成して
るらしいが同時間では重複するみたいだ
そこでRadikoRec.vbsを修正する。
ファイル名RadikoRec.vbs
‘同時複数起動でのファイル名バッティング対策で、重複しないテンポラリファイル名を生成する

Dim pTmpName
pTmpName = WSHFS.GetTempName()
pSwfPlayer = “tmp\player_” & pTmpName & “.swf”
pKeyFile = “tmp\authkey_” & pTmpName & “.png”
auth1_fms = “tmp\auth1_fms_” & pTmpName
auth2_fms = “tmp\auth2_fms_” & pTmpName
この行に
pSwfPlayer = “tmp\player_” & argStation & pTmpName & “.swf”
pKeyFile = “tmp\authkey_” & argStation & pTmpName & “.png”
auth1_fms = “tmp\auth1_fms_” & argStation & pTmpName
auth2_fms = “tmp\auth2_fms_” & argStation & pTmpName

とargStationを追加する修正をした
argStationは’引数1(i):radiko.jp内の放送局のidなので
ファイル名にTBSなどの文字列が追加される
同じ局で同タイミングでの録音は無いと思うのでこれで対応する
これで今晩も録音しながら様子を見る

2016年10月12日修正点が発生しました

radiko.jpのタイムフリー対応による録音ツールの変更について