【2018-7-31追記】
アニメイトタイムズの配信形式が変わり、このエントリーに記載されている方法では保存できなくなりました。新しい保存方法についてはこちらを参照してください。
2017年最初の朝、目が覚めたら何故か突然「あれこうやったら録音できるんじゃね?」と閃くところがあり、やってみたら出来た!というわけでちょうど3年越しにアニメイトタイムズ(旧アニメイトTVラジオ)の配信保存に関するネタの続編です。
以前紹介したrtmpdumphelperは1時間超えの番組が尻切れになってしまう問題がありましたが、こちらはそういった問題が発生しません。但しダウンロード用アドレスを取得するためにUserAgentを切り替える必要があるなど、若干知識が必要になります。
-
【概念】
FLASHは既に死にかけの規格で、多くのスマートフォンは再生に対応していません。
「あれ?でも俺のiPhoneで再生できてるよ?」と思われる方もいるでしょう。
この手の配信はFLASHが再生できない端末向けに、大抵の場合HLS形式(m3u8)でも同じ内容を配信しており、アクセスしてきた端末によって自動的にどの形式で再生するのかを切り替えているんです。今回はこのHLS形式で配信しているデータをffmpegで録音します。
-
【説明】
PCのブラウザでアニメイトタイムズラジオのページにアクセスするとFLASH形式のプレイヤーが立ち上がってしまうため、ブラウザのUserAgentを切り替えます。
いきなり訳わかんないことを言い出したと混乱した方は適当に「UserAgent 偽装」などでぐぐって勉強して下さい。
iPhoneかAndroidに偽装しますが、同じ番組でも先週はAndroid用のm3u8ファイルでうまくいったのに、今週はiPhone用じゃないとうまくいかなかった、あるいはその逆・・・というパターンが良くあるので、エラーが出るようになった際はとりあえずUserAgentを切り替えてみてください。
-
【iPhoneの場合】
UserAgentをiPhoneにすると画面構成が変わり、HLS形式用のプレイヤーが読み込まれますので、ソースを開いて"iPhonePlaylist.m3u8"の含まれている行を見つけ、ダブルクォーテーション(")の間の文字列をコピー。
ブラウザのURL欄に貼りつけるとm3u8形式のデータがダウンロードできます。
PCに保存されたiPhonePlaylist.m3u8という名前のファイルをメモ帳か何かで開くと、中に先ほどとは別のm3u8形式のURLが記載されているのでこれをコピーします。
これでffmpegに渡すURLが取得できました。
-
【Androidの場合】
UserAgentの変更がうまくいっていればスマートフォン用のページが表示されます。ページ内の再生ボタンを押すとラジオ再生が始まる代わりにm3u8形式のデータがダウンロードされます。
PCに保存されたiPhonePlaylist.m3u8という名前のファイルをメモ帳か何かで開くと、中に先ほどとは別のm3u8形式のURLが記載されているのでこれをコピーします。
"http://"から始まって".m3u8"で終わる部分がダウンロードに使うアドレスです。
アドレスが複数記載されている場合もありますが、回線速度に応じて音質を選ぶようになっているだけで内容は変わらない・・・はず。
これでffmpegに渡すURLが取得できました。
-
【ffmpegでダウンロード】
ffmpegをダウンロードしてきて、コマンドプロンプトから以下のようにコマンドラインを入力する("○○"の部分にURLを貼付け)とデータをダウンロード→audio.m4aというm4a形式ファイルが作成されます。
ffmpeg -i http://○○.m3u8 -bsf:a aac_adtstoasc -vn -acodec copy audio.m4a
ダウンロードして変換中。
ffmpegと同じフォルダ内に"audio.m4a"というファイルが出来上がっていれば成功。
-
【おまけ】
上記のコマンドをベタ打ちしただけのバッチファイルを置いておいたら、読者の方が使いやすく改良してくださったのでサンプルを差し替えました。
→ こちら
ffmpegと同じフォルダにバッチファイルを置き、ダブルクリックすると下のような黒い画面が表示されます。
ここに上で取得したURLをペースト。
続いてファイル名を適当に入力(拡張子は不要です)。
これでファイルがダウンロードできるはず。
コメントをくださったさめさん、ありがとうございます。
-
やってることは面倒くさい割に大して複雑じゃないので、ある程度プログラムを書ける人ならツール作れそうなんですけども。
自分は聞いてる番組が終わっちゃって久しいので無理です。できないです。
ζ*'ヮ')ζ<アッキーやんなよ!
【2018/2/8】いただいたコメントを基に記事を少し修正