RadikoPad: ラジコタイムフリーを録音する Windowsツール

2022/09/29~: RadikoPadのプレミアムログインに不具合発生中。回避策は、このメモ最下部を参照のこと。
2022/11/12: RadikoPad_cmd.exe エリアフリーコマンドラインツール公開。

(2022/05/14)RadikoPad v.1.1.0 放送局データ更新。

エリアフリー、タイムフリーと機能拡張しているラジコですが、解放されている機能に不満に感じるリスナーも多いと思います。特に番組録音に関しては、リアルタイム録音ツールに選択肢があるものの、録音忘れ、録音失敗した後のリカバリー選択肢としてはタイムフリーをWebブラウザーから聞くしかありません。

スキルがある人やアナログ録音で我慢できる人は、ユーティリティプログラムを組み合わせたり(昔ながらの)ライン録音でタイムフリー番組を録音することが出来ますが、単に番組を聴きたいリスナーレベルでは困難な状況でした。(と思います。)

私個人は、録音失敗に備え、複数マシンで録音するということで回避していますので、ラジコに関しては安定配信だけして欲しいと言う立場で、タイムフリーの3時間制限とか、有料でのエリアフリーとか気に入らない点もあるサービスだと感じています。

先日、当サイトに時々コメントして頂いている方から、「Radiko 関係のユーティリティを作ったよ」と紹介がありました。

内容を読んでびっくり、「ラジコタイムフリー番組コンテンツを簡単にダウンロードできる」ツールでした。

  • タイマー録音していたけど、何かの要因で失敗していた。どうしよう!
  • 番組放送後で、タイムフリーで聞いたものの、一発聴取じゃなくて永久保存しておきたくなった!
  • 録音(保存)しておいて、友人にも聞かせたい!

というような場合に使え、3時間制限やストリーミングのみという制限を突破できるじゃないですか。

RadikoPad 概略

使い方を簡単に紹介すると、RadikoPad を起動。Webブラウザーでラジコタイムフリーの番組リストを表示し、保存したい番組をRadikoPad にドラッグアンドドロップしたあと、「ダウンロード」ボタンを押すだけ。

RadikoPad でラジコタイムフリー番組をダウンロード

放送時間 1時間に対し、約20MB のファイルが .m4a または .aac形式で生成されます。
私の環境では、20倍から40倍速でダウンロード出来ました。

RadikoPad 録音ファイル

ダウンロードが完了したら、こっちのもの。
このままWindowsメディアプレイヤーで再生してもいいし、iTunes にドラッグアンドドロップで登録してiPodに入れて持ち出すなど自由に扱うことが出来ます。

複数同時ダウンロードも出来るので、最高です。

しくみ

RadikoPad は、このサイトでも紹介した Proxomitron + Radika改で、再びRadika で Radiko.jp とらじる★らじる を復活させてくれたラジコリスナーの珍宝堂さんが作成された、ラジコタイムフリー保存用ツールです。

ツール単体で、ラジコタイムフリーダウンロードが出来るわけではなく、RadikoPad 自体はラジコタイムフリーWebサイトに対してダウンロードコマンドを発行するだけで、実際にサーバーと通信・ファイル保存しているのは、ffmpeg.exe  です。要するに、ラジコタイムフリーWebページの番組情報を解析して、下請けコマンド(ffmpeg.exe)に対してダウンロードパラメータを渡しているのが RadikoPad というわけです。

そのため、RadikoPadを使うためには、(現バージョンではユーザー自身が)フリーツールの ffmpeg.exe を追加インストールする必要があります。

ラジコタイムフリー番組を保存できずにいたリスナーには待望のツールと言えます。現在 ver 1.0.8 です。

動作環境

開発環境は、WindowsXP(つまり 32bit アプリケーション)とのことですが、Windows XP/Vista/7/8.x/10 で使用できます。
私は、32bit Windows10 Home、64bit Windows7 Pro、32bit Windows XP で動作することを確認しました。XPと10で動くので、他のバージョンや64bit Windows でも問題ないと思います。

詳しくは、zip ファイルに同梱されている ReadMe.txt を読んで下さい。

インストール方法

ダウンロード(v.1.1.0beta3 Updated on 2022/05/14)

まず、ツールをダウンロードする必要があります。
当サイトは、再配布する許可を頂きましたので、次のリンクからダウンロード出来ます。

オリジナル

オリジナルアーカイブです。利用者自身で ffmpeg を入手するか、別アプリに同梱されて既にインストールされているものを使用してください。(429,426バイト)

RadikoPad110.zip

ffmpeg付き

http://ffmpeg.org/ からダウンロード済み ffmpeg 3.2.2 32bit版 をRadikoPad フォルダーに同梱し、番組保存用として Recordフォルダー作成済みです。(14,888,607バイト)

RadikoPad110_ffmpeg.zip

ffmpeg ver.2.8.5 付属(WindowsXP用 )

RadikoPad110_ffmpegXP.zip

ffmpeg ver. 3.3.2 + RadikoPad を WindowsXP 上で使用すると、「ダウンロード」ボタンを押したのちエラーになります。(14,191,781バイト)プロシジャ エントリ ポイント GetNumaNodeProcessorMaskEx がダイナミックリンクライブラリ KERNEL32.dll から見つかりませんでした。「プロシジャ エントリ ポイント GetNumaNodeProcessorMaskEx がダイナミックリンクライブラリ KERNEL32.dll から見つかりませんでした。」
これは ffmpeg ver3.3.2 が WinXPでは動作しないためと推測し、添付する ffmpeg バージョンを 2.8.5 のものに変更し、この組み合わせで WinXP上で動作することを確認しました。

インストール場所

自身のアカウント権限で書き込みが出来る場所なら、どこでもOK。

使い方

  1. ダウンロードし、解凍した RadikoPad フォルダーを開きます。RadikoPad 初期フォルダー
  2. ffmpeg.exe をインストールし、ラジコタイムフリー番組を保存するフォルダーを作成します。RadikoPad フォルダーに ffmpeg と録音フォルダーを追加
  3. RadikoPad.exe を起動します。
  4. オプションメニューから、ffmpeg と 保存フォルダーを登録します。RadikoPad ツール、オプションメニュー
    (1) ffmpeg.exe の場所と、保存フォルダーの所在を登録します。
    v.1.0.2 以降「放送局ごとにサブフォルダーを作る」オプションが追加されています。
    放送局ごとにサブフォルダーを作りたい場合はチェックします。(2) Radika風の保存ファイル名設定ルールを導入しました。
    キーワードフィールドの行をダブルクリックすると、カーソル位置にキーワードが挿入されます。
    従来のRadikoPad ファイル名も今まで通り選択できます。(3) ダウンロードが出来ない場合など、「ffmpegのログを出力する」にチェックを入れると、ffmpeg コマンドの出力をファイルに保存できます。
    ログファイルは巨大になりますので、正常動作している場合は、チェックを行わないことをお勧めします。
    RadikoPad 設定画面
  5. 聴取エリアを指定します。
    厳密には、ドラッグアンドドロップモードだけで使用する場合 判定は不要ですが、時刻指定モードを使用する場合は必要になるので、この時点で判定しておきます。RadikoPad のエリア判定
  6. ラジコタイムフリー Webページを開きます。
    A) 番組表をそのまま使う
    ラジコタイムフリープログラムを開く
    B) 番組検索を使い、その結果画面を利用する
    Radikoタイムフリー 番組検索結果
  7. 番組をドラッグして、RadikoPadにドラッグ。
  8. 解析されたプログラムがffmpeg に渡されてコマンド画面が表示されるので、放置か最小化しておきます。RadikoPadがffmpegを呼び出す
  9. ネットワーク速度、サーバー負荷、同時ダウンロード数にもよりますが、20倍速〜40倍速でダウンロードが完了します。.aac 拡張子で保存されます。.m4a 形式を選択することも出来ます。
  10. 「時刻指定」メニューを利用すると、番組単位ではなく 放送局、保存開始日時、終了日時 を指定して保存することも出来ます。
    つまり、帯番組を一週間分まとめてダウンロードしたいケースでは、ドラッグアンドドロップ保存よりもこっちの使い方の方が便利だと思います。v.1.0.3でプリセット機能が追加されました。
    番組全体を録音したくない場合、例えば番組開始1時間経過後〜30分間のゲストコーナーだけ録音したいようなケースは、時刻指定モードを使うと部分録音可能です。
    また、二つ(以上)の連続した短い番組を二本まとめて一つのファイルに録音することも出来ます。(この場合、ファイル名は最前番組が使用されます。)
  11. RadikoPadを90分以上放置していると、ラジコタイムフリーサーバーとの認証が終了し、ダウンロードが出来なくなります。その場合は、CTRLボタンを押しながらダウンロードボタンを押して下さい。再認証が行われ、RadikoPadを再起動したのと同じ状態になります。
  12. ラジコプレミアムへ加入している場合は、次の手順でダウンロード出来るかも。(2018/05/31追加)
  13. v.1.1.0 以降は、ラジコプレミアムへのログイン機能をおまけ機能として内蔵しました。

トラブルシューティング

録音に失敗する場合、まず、当サイト内コメント欄に同様の事例が既に報告されており、解決方法が記述されていないかを確認して下さい。当ページのコメント欄を使用する場合、最低でも

  1. 使用しているRadikoPadのバージョン
  2. 使用OS と使用ブラウザー
  3. 聴取エリアと居住区域、ラジコプレミアム利用の有無
  4. 聴取ラジオ局
  5. 録音できない番組
  6. ffmpeg のエラー出力
  7. 困っていること

くらいは書き込んで下さい。
例えば、たまたまRadiko.jp のサーバーがダウンするなどして、Webブラウザーのラジコタイムフリーページから再生出来ない番組は、RadikoPad を使っても録音出来ません。
RadikoPad で録音出来ない場合、コメント欄に書き込む前に、

  1. Webブラウザーから目的の番組を再生出来るのか?
  2. 別のブラウザーを使って同じ操作を行った場合はどうなのか?
  3. 録音したい番組と同じ放送局の別の番組は録音出来るのか?
  4. ドラッグ&ドロップ モード、時刻指定モード のどちらも録音出来ないのか?
  5. 同時間帯の他局の番組を録音出来るのか?

などの、確認を行って下さい。

サポート

私は RadikoPad 開発者ではありませんが、このページのコメント欄をサポート用に解放しますので、使いにくい点、改善して欲しい点、追加して欲しい機能などを、なぜ改良して欲しいと感じたのか具体的に記述して投稿して頂ければ幸いです。

ユーザー環境にてトラブルが発生しているとしても、再現条件が未知で当方で再現できないトラブルを報告いただいても調査は行いません。

現時点では、他サイトでの再配布を許可されていません。

 

更新履歴

2017/03/02 不具合修正

  • 「ラジコ タイムフリー番組表をドラッグ&ドロップする場合、24時をまたぐ番組処理に問題がありましたが、修正されました。」ver 1.0.0 → ver 1.0.0.1
    lifewithunix.jp 管理人により、オリジナル、ffmpeg、ReadMe の差し替えしました。
  • WindowsXP + ffmpeg 3.3.2 の組み合わせでエラーが発生することを回避するために、ffmpeg バージョンを 2.8.5 のものに変更しました。

2017/03/14 仕様変更

  • 1.0.0.2 へバージョンアップ。ラジコサーバーとのハンドシェークが変更になったそうです。

2017/03/26

2017/04/03 仕様変更

  • v.1.0.1 で発生した、時刻指定モードで、OSのタイムスタンプの時刻フォーマットが H:mm:ss に設定されている場合、0-9時の番組をダウンロード出来なかった症状を修正するため、OSのタイムスタンプフォーマットとRadikoPad を切り離し、必ず HH:mmで設定されるようになりました。
  • 2017/04/03 に Radiko.jp に参加した3つのFM局(FM青森、FM愛媛、μFM)が RadikoPad dataフォルダーに追加されました。

2017/04/17 バージョンアップ

2017/05/06 バージョンアップ

2018/04/22 dataフォルダーを更新

  • エフエム山口とエフエム香川を追加
  • その他の変更はありません。
  • dataフォルダーの更新とは関係ありませんが、Mr. PC に RadikoPad の紹介記事が掲載されたと珍宝堂さんから情報が入りました。

2018/07/22 dataフォルダーを更新

  • 7月2日(月)からFM福井がラジコで配信を開始しましたので dataフォルダの中のJP18.txtにFM福井(局ID:FMFUKUI)を追加しました。(作者より)
  • その他、プログラムの変更はありません。

2019/03/16 バージョンアップ

2019/09/22 テストバージョン 1.0.5beta1 を公開。

2019/11/24 バージョンアップ

2020/03/21 バージョンアップ

2020/11/22 放送局データを更新

  • [以下の放送局をデータに追加]
    • 徳島エリアにFM徳島(局ID:FM807)
  • [閉局により以下の放送局データを削除]
    • 新潟エリアからFM PORT
    • 岐阜・愛知・三重エリアからRadio NEO

2020/12/02 バージョンアップ

  • ver.1.0.7 公開
    2020/12/01 のRadiko.jp サイトのHTTPS化に対応
    ただし、翌12/2 に別の不具合発生のため、現在タイムフリーダウンロード不能。

2020/12/05 1.0.8 テストバージョン

  • 12/2 以降 HTTPS化したRadiko.jpからタイムフリー番組をダウンロード出来なくなった問題の対策テストバージョンを公開しました。

2021/01/03 1.0.8 正式バージョン公開

  • 2020/12のRadiko.jp 仕様変更に対応したver.1.0.8の正式バージョンを公開しました。
  • タイトルバーの「テスト版」を取り除いた他、コマンドラインモードの不具合を修正しました。

2021/04/10 放送局データを更新

  • 4月1日からラジコで配信エリアが拡大した放送局がありますので dataフォルダの内容を更新しました。
    • 滋賀・奈良・和歌山エリアにラジオ関西を追加
    • 大阪エリアにKBS京都ラジオを追加
  • また、茨城エリアのIBS茨城放送の表記をラジコ公式サイトに倣ってLuckyFM 茨城放送に変更しました。

2021/04/18 バージョンアップ

  • 2021/04/09頃から、RadikoPadが一部ラジコサーバーから送られてくるトークンをうまく受け取れなかった問題に対策しました。

2021/05/11 バージョンアップ→ v.1.1.0

  • ラジコプレミアムログインおまけ機能を追加した RadikoPad v.1.1.0 beta3 を公開。
  • 通りすがりさんから報告があった OSの日付書式が YYYY-MM-DD の時、エラーとなる問題を修正しました。

2021/07/24 放送局データを更新

  • ラジコで7月1日からLuckyFM 茨城放送が東京都・栃木県・群馬県・ 埼玉県・千葉県・神奈川県に配信エリアを拡大したので対応。

2022/05/14 放送局データを更新

  • dataフォルダの中のデータを更新しました。大阪エリアに「α-STATION FM KYOTO」、
    佐賀エリアに「NBCラジオ」「RKBラジオ」「KBCラジオ」を追加しました。また、放送局の名称をラジコ公式サイトの表記に倣って「InterFM897」から「interfm」に「α-STATION FM京都」から「α-STATION FM KYOTO」に「NBC長崎放送」から「NBCラジオ」に変更しました。

2022/10/07:ラジコプレミアムへのログインに問題が発生中

以下のリンクページの内容で回避できることがわかりました。
RadikoPad: ラジコプレミアム、エリアフリー ダウンロード手順

または、

http://www.lifewithunix.jp/notes/2017/02/22/radikopad-radiko-time-free-program-download-utility/comment-page-12/#comment-1924

ラジコプレミアムご利用の方は、とりあえず、これらの手順をお試しください。

2022/11/12: ラジコプレミアムログインコマンドラインツール公開。

ラジコ:とりあえずエリアフリー対応コマンドラインツールを作ってみました

2022/11/15: おがくずさんから、パッチが出ているとコメントがありました。

ここでRadikoPadの修正パッチが既に配布されていますよ。
https://egg.5ch.net/test/read.cgi/software/1659684888/170

ラジコ:エリアフリー対応RadikoPadコマンドラインツール

私の方で、現RadikoPadにこのパッチを当てることはありませんが、興味がある方は、参考にしてください。

Comments

  1. radika がこのようなかたちで引き継がれ、RadikoPad に感謝の毎日です。
    タイムフリーのダウンロードに時間がかかるようになり下記のようなメッセージが表示されます。録音が瞬間に欠損しているような気もします。
    改善の方法がありますでしょうか。
    よろしくお願いします。

    利用中のシステム
    1.RadikoPadのバージョン Ver1.0.3
    2.使用OSと使用ブラウザー OS:Windows8.1 ブラウザー:Firefox
    3.聴取エリア:東京

    一部の抜粋です。
    2時間程度の番組ですが、この倍以上の行数が表示されます。

    Stream mapping:
    Stream #0:0 -> #0:0 (copy)
    Press [q] to stop, [?] for help
    [tls @ 048a0260] Creating security context failed (0x80090321)1.3x
    [hls,applehttp @ 003eae20] Failed to open segment of playlist 0
    [tls @ 0489fee0] Creating security context failed (0x8009030f)1.3x
    [hls,applehttp @ 003eae20] Failed to open segment of playlist 0
    [tls @ 0489fae0] Creating security context failed (0x8009030f)1.1x
    [hls,applehttp @ 003eae20] Failed to open segment of playlist 0
    [tls @ 048a01e0] Creating security context failed (0x80090321)1.1x
    [hls,applehttp @ 003eae20] Failed to open segment of playlist 0
    [tls @ 048a05e0] Creating security context failed (0x80090321)1.1x
    [hls,applehttp @ 003eae20] Failed to open segment of playlist 0
    [tls @ 048be1a0] Creating security context failed (0x8009030f)0.9x
    [hls,applehttp @ 003eae20] Failed to open segment of playlist 0
    [tls @ 048bf020] Creating security context failed (0x80090321)0.9x

    1. このメッセージ{Creating security context failed }は、RadikoPad から ffmpeg へパラメータが渡った後の症状なので、通信かサーバー側で何か問題が発生している感じですね。RadikoPad開発者の方に依頼しても、困らせてしまうだけでしょう。
      ログ中のメッセージを検索してみると、ffmpeg で認証系の問題が発生しているじゃないか? という感じのコメントが多く見つかりました。
      多くの人が問題なく使っているサーバーとの通信問題ですので、
      1. 一時的にサーバーが何か問題を抱えている
      2. 通信回線が安定していない
      を疑うくらいしかできません。

      サーバーの問題であるなら、時間や日を改めて再トライしてみてどうか。
      通信回線の問題であるなら、一度モデムやルーターを再起動してみる。
      で、何か症状が変わる可能性があります。

      気になる点は、ログファイル中に、1.3x, 1.1x, 0.9x という数字が見られることで、これはリアルタイム再生と比較して、今、何倍速でダウンロード出来ているかを示す数字のような気がします。1.3x や 1.1x はいいのですが、0.9xはバッファがない状態で リアルタイムなら音が切れるスピードです。1.3x はリアルタイム再生出来るスピードですが、かなり遅い数字ですね。
      サーバーが過負荷状態とか、サーバーとのハンドシェークがうまくいっていないということも想像できます。同時に複数番組や複数日付をダウンロードしているなら、まずは1本ずつ試してみることも必要だと思います。

      1. ありがとうございます。
        一度に複数の番組をダウンロードするような使い方はしていません。
        こちら側の通信回線の問題とのご教授たいへん助かりました。
        無線ルーターを疑って再起動等をしてみます。

    2. 私のコメントの後、開発者から連絡をもらいました。
      Radikoタイムフリーサーバー側に一部仕様変更があった模様です。

      ダウンロードが http → https に変更になったのかも。

      即、RadikoPad をどうするということではありませんが、懸案事項として記録しておきます。

  2.  こんばんは。

     最近RadikoPadを使い始めたものです。

     RadikoPadでエリア外の番組をダウンロードしようとすると、コメント末尾に記載しているようなログが出力され、終了してしまいます。
     プレミアムサービスにはログイン済みです。
     IEのプライバシー設定や信頼済みサイトへの追加など、このサイトで見つけた限りのことは試したんですが、うまくいきません。
     なお、ブラウザでの再生やエリア内の番組のダウンロードは正常に実行できています。
     また、URL貼り付けでのダウンロードや時刻指定でのダウンロード、両方失敗します。
     5月ごろは正常に実行できていたので、ラジコの使用が変わったりしたんでしょうか。
     環境は、Windows10 64ビット、InternetExplorer11、RadikoPad 1.03です。

     以下、時刻指定でのダウンロードログを張り付けます。

    ———-
    ffmpeg started on 2017-08-01 at 23:39:03
    Report written to “ffmpeg-20170801-233903.log”
    Command line:
    “C:\\MyProgram\\RadikoPad\\ffmpeg.exe” -headers “X-Radiko-AuthToken: ZBEZ-9ilvfg9lnsWeo-gNQ” -i “https://radiko.jp/v2/api/ts/playlist.m3u8?station_id=FBC&&l=15&&ft=20170729050000&&to=20170729053000” -acodec copy -bsf aac_adtstoasc “C:\\MyProgram\\RadikoPad\\Record\\FBC\\\x90\x85\x90X\x89p\x95v\x82\xcc\x83\`\x83b\x83v\x83C\x83\x93\x89\xcc\x97w\x8b\xc8\x81I\x81I_201707290500.m4a” -report
    ffmpeg version N-86911-gb664d1f Copyright (c) 2000-2017 the FFmpeg developers
    built with gcc 7.1.0 (GCC)
    configuration: –enable-gpl –enable-version3 –enable-cuda –enable-cuvid –enable-d3d11va –enable-dxva2 –enable-libmfx –enable-nvenc –enable-avisynth –enable-bzlib –enable-fontconfig –enable-frei0r –enable-gnutls –enable-iconv –enable-libass –enable-libbluray –enable-libbs2b –enable-libcaca –enable-libfreetype –enable-libgme –enable-libgsm –enable-libilbc –enable-libmodplug –enable-libmp3lame –enable-libopencore-amrnb –enable-libopencore-amrwb –enable-libopenh264 –enable-libopenjpeg –enable-libopus –enable-librtmp –enable-libsnappy –enable-libsoxr –enable-libspeex –enable-libtheora –enable-libtwolame –enable-libvidstab –enable-libvo-amrwbenc –enable-libvorbis –enable-libvpx –enable-libwavpack –enable-libwebp –enable-libx264 –enable-libx265 –enable-libxavs –enable-libxvid –enable-libzimg –enable-lzma –enable-zlib
    libavutil 55. 69.100 / 55. 69.100
    libavcodec 57.102.100 / 57.102.100
    libavformat 57. 76.100 / 57. 76.100
    libavdevice 57. 7.100 / 57. 7.100
    libavfilter 6. 95.100 / 6. 95.100
    libswscale 4. 7.101 / 4. 7.101
    libswresample 2. 8.100 / 2. 8.100
    libpostproc 54. 6.100 / 54. 6.100
    Splitting the commandline.
    Reading option ‘-headers’ … matched as AVOption ‘headers’ with argument ‘X-Radiko-AuthToken: ZBEZ-9ilvfg9lnsWeo-gNQ’.
    Reading option ‘-i’ … matched as input url with argument ‘https://radiko.jp/v2/api/ts/playlist.m3u8?station_id=FBC&&l=15&&ft=20170729050000&&to=20170729053000’.
    Reading option ‘-acodec’ … matched as option ‘acodec’ (force audio codec (‘copy’ to copy stream)) with argument ‘copy’.
    Reading option ‘-bsf’ … matched as option ‘bsf’ (A comma-separated list of bitstream filters) with argument ‘aac_adtstoasc’.
    Reading option ‘C:\MyProgram\RadikoPad\Record\FBC\水森英夫のチップイン歌謡曲!!_201707290500.m4a’ … matched as output url.
    Reading option ‘-report’ … matched as option ‘report’ (generate a report) with argument ‘1’.
    Finished splitting the commandline.
    Parsing a group of options: global .
    Applying option report (generate a report) with argument 1.
    Successfully parsed a group of options.
    Parsing a group of options: input url https://radiko.jp/v2/api/ts/playlist.m3u8?station_id=FBC&&l=15&&ft=20170729050000&&to=20170729053000.
    Successfully parsed a group of options.
    Opening an input file: https://radiko.jp/v2/api/ts/playlist.m3u8?station_id=FBC&&l=15&&ft=20170729050000&&to=20170729053000.
    [NULL @ 0000000002622a40] Opening ‘https://radiko.jp/v2/api/ts/playlist.m3u8?station_id=FBC&&l=15&&ft=20170729050000&&to=20170729053000’ for reading
    [https @ 0000000002747fe0] Setting default whitelist ‘http,https,tls,rtp,tcp,udp,crypto,httpproxy’
    [https @ 0000000002747fe0] No trailing CRLF found in HTTP header.
    [https @ 0000000002747fe0] request: GET /v2/api/ts/playlist.m3u8?station_id=FBC&&l=15&&ft=20170729050000&&to=20170729053000 HTTP/1.1

    User-Agent: Lavf/57.76.100

    Accept: */*

    Range: bytes=0-

    Connection: close

    Host: radiko.jp

    Icy-MetaData: 1

    X-Radiko-AuthToken: ZBEZ-9ilvfg9lnsWeo-gNQ

    [https @ 0000000002747fe0] HTTP error 403 Forbidden
    https://radiko.jp/v2/api/ts/playlist.m3u8?station_id=FBC&&l=15&&ft=20170729050000&&to=20170729053000: Server returned 403 Forbidden (access denied)
    ———-

     以上、よろしくお願いします。

  3. RadikoPadをいつも大変便利に使わせていただいております。
    可能なら対応いただければという程度の要望ですが、
    現在ダウンロードのフォーマットが2種類となっているものを、MP3に対応いただくことは可能でしょうか。
    使用している機器のうちの1つが、運動用の安い防水タイプのもののため、
    MP3以外をファイル認識しないため、現在は自分で一度MP3に変換をかけております。
    もし、可能でしたら対応いただければ幸いです。

  4. radikoのタイムフリーの、コマンドラインで実行する-headersオプションを
    使用してのffmpegによるダウンロードは、途中で途切れることが多くなり、この
    ソフトを使用してみましたが、同様で、途中で途切れました。オプションで外部
    のダウンローダーなどを使用できないと、これらは大事なものには使えませんね。

    大事なものは、手数がかかりますが、aac断片のURLを記述したxxxx.m3u8を直接ダウ
    ンロードするほうが確実です。

  5. 上記の匿名さん(2017/08/01 23:42)と似ているのですが、私の場合、エリア内でもタイムフリーのダウンロードができません。

    東京都足立区在住、回線はフレッツ光経由でODNです。
    RadikoPadでエリア判定すると正しく「JP13 TOKYO JAPAN」と出ます。

    手元の環境はWindows XP (32bit日本語版) SP3、RadikoPad 1.0.3、ブラウザはFirefox 52 ESR(XP・Vista向けの延長サポート版、最新)です。
    ちなみに、「まずはIE8で試してから報告を…」とも思ったんですが、IE8は仕様が古すぎるのか、そもそもRadikoのリアルタイム再生すらできません。
    (Firefoxでは当然、リアルタイムもタイムシフトもきちんと再生されています。)

    長くなりますが末尾にログを添付します。.m3u8ファイルをffmpegが取得できない状態です。

    ちなみに、Firefoxのキャッシュフォルダから該当の.m3u8ファイルをさがし出して(これは当該フォルダで egrep “^#EXTM3U” * とすればイッパツです)、ブラウザで再生しながらコマンドラインで
    > ffmpgg -i “キャッシュ上のM3U8ファイル” -c copy c:\tmp.aac
    とすると、すんなりとダウンロードできました。

    …何か、勘違いをしていますでしょうか?

    ffmpeg started on 2017-09-05 at 22:30:41
    Report written to “ffmpeg-20170905-223041.log”
    Command line:
    “C:\\Program Files\\ImageMagick\\ffmpeg.exe” -headers “X-Radiko-AuthToken: ” -i “https://radiko.jp/v2/api/ts/playlist.m3u8?station_id=QRR&&l=15&&ft=20170904213000&&to=20170904220000” -acodec copy -bsf aac_adtstoasc “g:\\tmp\\2017\x94N09\x8c\x8e04\x93\xfa(\x8c\x8e)21\x8e\x9e30\x95\xaa \x90\xf3\x96\xec\x90^\x90\x9f\x81~\x8eR\x93c\x90^\x8d\xc6\x82\xcc\x8fT\x8a\xa7\x83}\x83l\x81[\x83\x89\x83\x93\x83h.m4a” -report
    ffmpeg version 2.8.4 Copyright (c) 2000-2015 the FFmpeg developers
    built with gcc 5.2.0 (GCC)
    configuration: –enable-gpl –enable-version3 –disable-w32threads –enable-avisynth –enable-bzlib –enable-fontconfig –enable-frei0r –enable-gnutls –enable-iconv –enable-libass –enable-libbluray –enable-libbs2b –enable-libcaca –enable-libdcadec –enable-libfreetype –enable-libgme –enable-libgsm –enable-libilbc –enable-libmodplug –enable-libmp3lame –enable-libopencore-amrnb –enable-libopencore-amrwb –enable-libopenjpeg –enable-libopus –enable-librtmp –enable-libschroedinger –enable-libsoxr –enable-libspeex –enable-libtheora –enable-libtwolame –enable-libvidstab –enable-libvo-aacenc –enable-libvo-amrwbenc –enable-libvorbis –enable-libvpx –enable-libwavpack –enable-libwebp –enable-libx264 –enable-libx265 –enable-libxavs –enable-libxvid –enable-lzma –enable-decklink –enable-zlib
    libavutil 54. 31.100 / 54. 31.100
    libavcodec 56. 60.100 / 56. 60.100
    libavformat 56. 40.101 / 56. 40.101
    libavdevice 56. 4.100 / 56. 4.100
    libavfilter 5. 40.101 / 5. 40.101
    libswscale 3. 1.101 / 3. 1.101
    libswresample 1. 2.101 / 1. 2.101
    libpostproc 53. 3.100 / 53. 3.100
    Splitting the commandline.
    Reading option ‘-headers’ … matched as AVOption ‘headers’ with argument ‘X-Radiko-AuthToken: ‘.
    Reading option ‘-i’ … matched as input file with argument ‘https://radiko.jp/v2/api/ts/playlist.m3u8?station_id=QRR&&l=15&&ft=20170904213000&&to=20170904220000’.
    Reading option ‘-acodec’ … matched as option ‘acodec’ (force audio codec (‘copy’ to copy stream)) with argument ‘copy’.
    Reading option ‘-bsf’ … matched as option ‘bsf’ (A comma-separated list of bitstream filters) with argument ‘aac_adtstoasc’.
    Reading option ‘g:\tmp\2017年09月04日(月)21時30分 浅野真澄×山田真哉の週刊マネーランド.m4a’ … matched as output file.
    Reading option ‘-report’ … matched as option ‘report’ (generate a report) with argument ‘1’.
    Finished splitting the commandline.
    Parsing a group of options: global .
    Applying option report (generate a report) with argument 1.
    Successfully parsed a group of options.
    Parsing a group of options: input file https://radiko.jp/v2/api/ts/playlist.m3u8?station_id=QRR&&l=15&&ft=20170904213000&&to=20170904220000.
    Successfully parsed a group of options.
    Opening an input file: https://radiko.jp/v2/api/ts/playlist.m3u8?station_id=QRR&&l=15&&ft=20170904213000&&to=20170904220000.
    [https @ 033804e0] No trailing CRLF found in HTTP header.
    [https @ 033804e0] request: GET /v2/api/ts/playlist.m3u8?station_id=QRR&&l=15&&ft=20170904213000&&to=20170904220000 HTTP/1.1

    User-Agent: Lavf/56.40.101

    Accept: */*

    Range: bytes=0-

    Connection: close

    Host: radiko.jp

    Icy-MetaData: 1

    X-Radiko-AuthToken:

    https://radiko.jp/v2/api/ts/playlist.m3u8?station_id=QRR&&l=15&&ft=20170904213000&&to=20170904220000: Server returned 401 Unauthorized (authorization failed)

    1. 今、詳しいことを調べたり試したりすることが出来ないのですけど、
      「Server returned 401 Unauthorized (authorization failed)」となっていて、HTTPの401エラーですね。
      アクセス拒否されている訳じゃなくて、クッキーの有効期限切れとか、サーバーをアクセスするための情報が足りないとか、そんな感じに見えます。自身の聴取エリアでこの症状なら、一度RadikoPadを立ち上げ直すと、聴取制限時間がリセットされて、症状が変化する可能性がありそうです。

      1. はい。この401が返ってきているURLをFirefoxで直接叩いても、「missing token」と出ます。

        あれからいろいろ試してみて不思議なのは、たまに認証が通る「こともある」ということです。実はいま、Radikaのほうでも同様のトラブル(再生・録音できたり、できなかったり)が発生していまして、Radikaがきちんと動いているときはRadikoPadも正常に動きますし、逆もまた然りです。

        RadikaのほうでコンソールからAYTHKeyGetexeを実行した際の結果を添付します。
        ──────────
        まずは基本情報。

        C:\Documents and Settings\飯嶋 __\My Documents\bin\Radika pack with patched> ls.exe -l AYTHKeyGet.exe swfextract.exe
        -rwxr-xr-x 1 飯嶋 __ Administrators 8192 Oct 14 2016 AYTHKeyGet.exe
        -rwxr-xr-x 1 飯嶋 __ Administrators 725155 Apr 29 2013 swfextract.exe

        C:\Documents and Settings\飯嶋 __\My Documents\bin\Radika pack with patched> md5sum AYTHKeyGet.exe swfextract.exe
        1d39f92f66d3ef12f3464092b5a5316b *AYTHKeyGet.exe
        19a381f24d7221cab28553e21b300676 *swfextract.exe
        ──────────
        認証がうまくいかないときの動作

        C:\Documents and Settings\飯嶋 __\My Documents\bin\Radika pack with patched> AYTHKeyGet.exe
        toolFile: C:\Documents and Settings\飯嶋 __\My Documents\bin\Radika pack with patched\swfextract.exe
        swfFile: C:\DOCUME~1\飯嶋 ~1\LOCALS~1\Temp\2388_player.swf
        pngFile: C:\DOCUME~1\飯嶋 ~1\LOCALS~1\Temp\2388_authkey.png
        Request to: http://radiko.jp/apps/js/flash/myplayer-release.swf
        HTTP Status Code: OK
        Finished saving swf.
        Command Parameter for tool: -b 12 C:\DOCUME~1\飯嶋 ~1\LOCALS~1\Temp\2388_player.swf -o C:\DOCUME~1\飯嶋 ~1\LOCALS~1\Temp\2388_authkey.png
        Finished extracting png.
        Request to: https://radiko.jp/v2/api/auth1_fms

        Unhandled Exception: System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. —> System.IO.IOException: Received an unexpected EOF or 0 bytes from the transport stream.
        at System.Net.FixedSizeReader.ReadPacket(Byte[] buffer, Int32 offset, Int32 count)
        at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
        at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
        at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
        at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
        at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, By
        e[] buffer, AsyncProtocolRequest asyncRequest)
        at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
        at System.Net.TlsStream.CallProcessAuthentication(Object state)
        at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
        at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)
        at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
        at System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size)
        at System.Net.ConnectStream.WriteHeaders(Boolean async)
        — End of inner exception stack trace —
        at System.Net.HttpWebRequest.GetResponse()
        at AYTHKeyGet.Program.Main(String[] args)
        ──────────
        認証が(たまに)うまくいくときの動作

        C:\Documents and Settings\飯嶋 浩光\My Documents\bin\Radika pack with patched> AYTHKeyGet.exe
        toolFile: C:\Documents and Settings\飯嶋 浩光\My Documents\bin\Radika pack with patched\swfextract.exe
        swfFile: C:\DOCUME~1\飯嶋 ~1\LOCALS~1\Temp\5788_player.swf
        pngFile: C:\DOCUME~1\飯嶋 ~1\LOCALS~1\Temp\5788_authkey.png
        Request to: http://radiko.jp/apps/js/flash/myplayer-release.swf
        HTTP Status Code: OK
        Finished saving swf.
        Command Parameter for tool: -b 12 C:\DOCUME~1\飯嶋 ~1\LOCALS~1\Temp\5788_player.swf -o C:\DOCUME~1\飯嶋 ~1\LOCALS~1\Temp\5788_authkey.png
        Finished extracting png.
        Request to: https://radiko.jp/v2/api/auth1_fms
        HTTP Status Code: OK
        Transfer-Encoding : chunked
        Connection : keep-alive
        X-Radiko-AppType : pc
        X-Radiko-AppType2 : pc
        X-Radiko-AuthToken : _wDmTLgSSSIxuEGnc-cKNg
        X-Radiko-AuthWait : 0
        X-Radiko-Delay : 15
        X-Radiko-KeyLength : 16
        X-Radiko-KeyOffset : 6976
        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
        Content-Type : text/plain
        Date : Wed, 06 Sep 2017 01:39:43 GMT
        Server : nginx
        Finished auth1.
        Partial key: /r/9b601QMphFP656/ypCg==
        Finished getting a partial key.
        Request to: https://radiko.jp/v2/api/auth2_fms
        HTTP Status Code: OK
        _wDmTLgSSSIxuEGnc-cKNg,00000000000000000000000000000000
        ──────────
        Radikaのほうも不可解な挙動がいろいろとあるので(そもそも今の時代に、認証がhttpsなのにmyplayer-release.swfの提供は平文で、という時点で不可解ですし)、また情報がまとまりましたら投稿します。

        (管理者より:コメントから時間が経過していましたので手遅れかも知れませんが、勝手ながら、ログ中ラストネームの方を__にリプレースさせて頂きました。姓の方はコメント名でひらがな公開されていましたので触っていません。)

  6. ビンゴでした。RadikoPadもRadikaも、この方法でうまくいきました。
    (XPはSP3にしてあるから暗号アルゴリズムもきちんと最新のものが入っているかと思っていたのですが、実はSP3だけではダメだったんですね。)

    ただ、ちょっと紆余曲折がありまして、下記のような経過をたどりました。

    1. 指示通りにDLLを入れ替える。このときは上書きに成功。
    2. 再起動するとWindows Updateで3件の更新が入る。指示通りに再起動するとDLLが元に戻っている。
    3. 再度DLLを入れ替えようとしても、2つとも「ファイルは使用中」とのことで、上書きができない。
    4. Safe Modeで起動しても上書きができない。GParted LiveのCDで起動して差替。
    5. 再起動してXPに戻ると、RadikoPad、Radikaともに動作良好。Windows Updateが再度出てくるかと思ったが、今のところそれはない。
    6. ただし、868番のレスに書かれている https://www.ssllabs.com/ssltest/viewMyClient.html のページは、Radika復活後もIE8では開けない。

    とりあえず、ありがとうございました。>>Dokaさま

    P.S.
    このエントリでRadika本体の話をするのは筋違いな気もしないではないですが、機会がありましたらRadika Packのエントリのほうに加筆していただければと思います。らじる★らじるのM3U8ファイルのURLも最近変更になりましたし。

  7. 「Radiko好き」さんの2017/06/29 11:10の書き込みとたぶん同一の現象が確認出来ました。
    私の場合はXP SP3 + OperaPresto 12.18 です。

    例)ウェブブラウザ(この場合はOperaPresto)を画面右に、RadikoPadを画面左に配置した場合。
    □ RadikoPad
    ■ OperaPresto

    1)右のブラウザから左のRadikoPadに横からドラッグ&ドロップ
    (動き)□←■
    (フォーム内の文字列)
    default.htm
    http://radiko.jp/#!/ts/(略)

    2)右のブラウザからドラッグし、RadikoPadのウィンドウの下側からドロップ
    (動き)□ ■
        ↑←↓
    (フォーム内の文字列)
    タイムフリー(正しい番組情報)
    http://radiko.jp/#!/ts/(略)

    ちなみに1の配置を逆にして■→□や、2で上からドロップをしても結果は1と同じで一行目が「default.htm」となります。
    いずれの方法でも、一応ダウンロードは可能ですし、ダウンロード後のファイル名も設定通りに付けられています。要するに機能上は(私の環境では)問題ありません。

    一時的な原因はウェブブラウザ側にありそうな気がしますが、ひとつ気になるのは、他のブラウザ(Chromeなど)と違いOperaPrestoの場合、ドラッグ中にその番組情報が半透明で表示されることです。参考になればと思いご報告いたします。

  8. いつもRadikoPadを使わせて頂いてます。
    素晴らしいアプリを公開していただき、大変感謝しています。

    できれば対応をお願いしたいものが1点あります。

    時刻指定でダウンロードする場合、比較的最近Radikoに対応した局が、放送局の選択の一覧に入っていません。
    ある番組の一部コーナーを時刻指定でダウンロードしたいのですが、現在できない状態です。
    対応をお願いできませんでしょうか。

    例:沖縄県・山梨県など

    勝手なお願いではありますが、ご検討よろしくお願い致します。

      1. 早速対応して頂きありがとうございます。
        アップを楽しみにしています。

      2. 開発者の珍宝堂さんから、新しいRadiko.jp参加局のデータが送られてきましたので、ダウンロードファイルの差し替えを行いました。プログラム自体の変更はありません。

        内容は、
         *秋田エリアにABS秋田放送(局ID:ABS)
         *山梨エリアにYBSラジオ(局ID:YBS)
         *京都エリアにCRKラジオ関西(局ID:CRK)
         *香川エリアにRNC西日本放送(局ID:RNC)
         *沖縄エリアにラジオ沖縄(局ID:ROK)
         *同 FM沖縄(局ID:FM_OKINAWA)
        を追加。

        1. 対応頂きありがとうございました。
          開発者様によろしくお伝えください。

  9. タイムフリー録音したファイルを聴くと、音が悪く感じるので ”真空波動研SuperLite”でファイルをチェックした結果が、『AAC 24.00kHz 2.0ch(2/0 L+R) LC 46.69kb/s Appe iTues AAC-LC Audio』となってました。 radikaで録音したファイルは 『AAC 48.00kHz 2.0ch(2/0 L+R) HE(SBR) 46.75kb/s MP4 v2』。 録音ファイル形式をradikaと同様に録音する方法はございますか。

    1. SSさん、

      RadikoPadの録音ファイルは、Radiko.jp サーバーが送ってくるファイルそのものです。変換は行っていません。
      Radika の録音は、Codec によってフォーマット選択可能なため、録音設定によって品質を変えることが出来ます。
      ただ、私の耳では、Radikaで録音したものと、RadikoPadでタイムフリーを録音したものの差はわかりませんが。
      音声ファイル変換ユーティリティを使うなどして、ダウンロード後の音源ファイルを変換すればRadikaのフォーマットと合わせることは出来るかも知れませんが、満足できる品質に変換可能かどうかはわかりません。
      音質が気になるようであれば、Radikaを使ってリアルタイムに録音することをお勧めします。

  10.  radikopadを便利に使っています。
    今年に入ったぐらいから、どうやらエリアフリーで自分のエリア以外の物をダウンロードできなくなったようです。
    radiko側の使用変更かもしれません。
    以下ffmpegのログです。

    ffmpeg started on 2018-01-15 at 10:06:41
    Report written to “ffmpeg-20180115-100641.log”
    Command line:
    “C:\\Users\\1103sakamoto\\Documents\\RadikoPad\\ffmpeg.exe” -headers “X-Radiko-AuthToken: TEFt35RxIIEldis0-iwVVQ” -i “https://radiko.jp/v2/api/ts/playlist.m3u8?station_id=K-MIX&&l=15&&ft=20180115000000&&to=20180115010000” -acodec copy -bsf aac_adtstoasc “C:\\Users\\1103sakamoto\\Documents\\RadikoPad\\Record\\2018\x94N01\x8c\x8e15\x93\xfa(\x8c\x8e)00\x8e\x9e00\x95\xaa \x8f\xbc\x8d\xe8\x90^\x90l \x83\x89\x83W\x83I\x90V\x90\xe7\x8d\xce\x81|\x90\xc3\x89\xaa\x90\xfc.m4a” -report
    ffmpeg version 2.8.5 Copyright (c) 2000-2016 the FFmpeg developers
    […]
    Parsing a group of options: global .
    Applying option report (generate a report) with argument 1.
    Successfully parsed a group of options.
    Parsing a group of options: input file https://radiko.jp/v2/api/ts/playlist.m3u8?station_id=K-MIX&&l=15&&ft=20180115000000&&to=20180115010000.
    Successfully parsed a group of options.
    Opening an input file: https://radiko.jp/v2/api/ts/playlist.m3u8?station_id=K-MIX&&l=15&&ft=20180115000000&&to=20180115010000.
    [https @ 04320d00] No trailing CRLF found in HTTP header.
    [https @ 04320d00] request: GET /v2/api/ts/playlist.m3u8?station_id=K-MIX&&l=15&&ft=20180115000000&&to=20180115010000 HTTP/1.1 User-Agent: Lavf/56.40.101 Accept: */* Range: bytes=0- Connection: close Host: radiko.jp Icy-MetaData: 1 X-Radiko-AuthToken: TEFt35RxIIEldis0-iwVVQ
    [https @ 04320d00] HTTP error 403 Forbidden
    https://radiko.jp/v2/api/ts/playlist.m3u8?station_id=K-MIX&&l=15&&ft=20180115000000&&to=20180115010000: Server returned 403 Forbidden (access denied)

    1. 作者の珍宝堂さんから返信がありましたので転記します。

      ・先に Internet Explorer でラジコプレミアムにログインし、
       その後で RadikoPad を起動する。
      ・既に RadikoPad が起動していたら一旦終了させて再起動するか、
       またはダウンロードボタンをクリックするときにCTRLキーを
       押しながらクリックする
       (こうすることによって既に取得して保持していた認証キーを
        クリアして再取得を行ないます)。
      ・Internet Explorer でラジコプレミアムにログインしている間は
       インターネット一時ファイルやクッキーなどは削除しないようにする。

でるもんた・いいじま へ返信するコメントをキャンセル