2026/01/26 以降のラジコタイムフリー仕様変更に対応した、ラジコプレミアム対応コマンドライン版録音ツールです。(1/26の仕様変更への対応作業は、2/11 の本ページ更新情報をもって一旦終了します。)
最終更新日:2026/02/11
「うる」さんが開発したUnix系OS向け ラジコタイムフリー録音ツール、rec_radiko_ts が、1/26以降もタイムフリープログラムを録音可能と紹介していますが、rec_radiko_ts 動作環境が LinuxやFreeBSD、Windows subsystem for Linux(WSL)であるため、Windowsコマンドプロンプトからは実行できませんでした。
ところが、1/28に、匿名の方が、rec_radiko_ts を Visual C# & .Net8環境に移植したので、自由に使って構わないと、本サイトにソースとバイナリーを送ってきてくれました。
当方で、ランタイムを加えてビルドし直したもなどを配布中です。
Visual C# はコマンドラインベースのプログラムは、ターゲットを 32bit/64bit Windows 以外に MacOS,Linux にもできるようで、試しに osx-x64 と osx-arm64 用ビルドも行ってみました。サポートはありませんが、試してみたい方はご自由にどうぞ。ただし、Unixシェルの知識は必要です。
ダウンロード:
以下のRadikoRecorder 機能は同一です。20260201より新しいファイルはエリアフリー対応です。
- ffmpeg と ドキュメントが一つになったffmpeg関係ファイル。RadikoRecorder は含まれていませんので、OSに合ったものを以下から別途ダウンロードしてください。
RadikoRecorder_utils.zip 約73MB
RadikoRecorderは含まれていません。
当サイトからダウンロードするより、ffmpeg 配布サイトからダウンロードする方が高速です。 - 録音アプリ+ドキュメントだけアーカイブ化したもの。それでも、Windows用モジュールが全て含まれているので、大きい。ffmpeg と同じフォルダーに入れて下さい。エリアフリー対応
Windows10/11 64bit 版:
RadikoRecorder20260201_x64_net8.zip 29,952,051 byte 約30MB
Windows10 32bit 版:
RadikoRecorder20260206_x86_net8.zip 27,512,701 byte 約30MB
MacOS x64:
RadikoRecorder20260202_osx-x64.zip 29,471,188 byte
MacOS arm64:
RadikoRecorder20260202_osx-arm64.zip 28,039,936 byteffmpeg/ffprobe は上記1のもの、または、 https://www.gyan.dev/ffmpeg/builds/ からダウンロードしてください。当サイトからダウンロードするより回線が太く速いはず。
(64bit Winで動作確認できているffmpegは)一番上の、ffmpeg-git-essentials.7z をダウンロードし、解凍フォルダー bin下にある、ffmpeg.exe と ffprobe.exe を RadikoRecorder.exe と同じフォルダーに入れて下さい。下記項目「RadikoRecorderフォルダーの構成:」をご覧ください。(32bit版は当方ではテストできないため、利用者自身で入手してください。) - Windows OSに自分で .net8 ランタイムとffmpegをインストールし、最小サイズのRadikoRecorder だけダウンロードする。1MB以下。10秒くらいでダウンロードできます。エリアフリー対応
ffmpeg/ffprob は https://www.gyan.dev/ffmpeg/builds/ からダウンロードしてください。RadikoRecorder20260202_x64_no_net8.zip 221,421 byte 約200kB
項目「圧縮ファイルの内容」と同じフォルダー構成になるようにコピーして下さい。
.net8ランタイムが入っていない場合は以下の方法でインストール。
まず、RadikoRecorder -l とタイプして、実行できないことを確認します。エラーが表示されず放送局が表示される場合は、.net8がインストール済みなので、.net8 ランタイムインストール作業は不要。
上記の、エラーメッセージに含まれるURLをマウスでコピーし、ブラウザーに貼り付けると net8ランタイムのダウンロードが出来ますので、ファイルを保存してインストール。これで.net8ランタイムライブラリーがOSに入ります。 - Visual Studio 2022 等を使って、自分でバイナリーをビルドしたい人。コマンド名を変えたり、自分用の固定パスをうめ込んだり可変にしたりカスタマイズしたい人向け。ラジコプレミアム未対応。
Visual Studio のプロジェクトをアーカイブした形です。
RadikoRecorder_vs2022_project.zip 138,034 byte 約130kB
まず、マイクロソフトのサイトから、Visual Studio 2022 をインストールし、Visual C# を開発できる環境を構築します。そして、ダウンロードしたプロジェクトフォルダーを開くと、プログラムの習性が出来るようになります。
今までプログラム開発を行ったことが無い人には大変高いハードルの作業となりますので、興味本位でダウンロードすることはお勧めしません。 - ラジコプレミアムログイン対応バージョン
開発者からのアドバイスに従い、ログイン部分のコードを書き換えました。私は無料会員なのでテストできませんが、ユーザーの方からタイムフリー30にも対応という実験結果をいただきました。
情報源:http://www.lifewithunix.jp/notes/2026/01/29/radikorecorder-command-line-util-for-radiko-timefree-after-2026_01_26/comment-page-2/#comment-2107 - Windowsラッパー:RadikoRecorderGUI.exe
RadikoRecorder.exe と同じフォルダーに入れると、ウィンドウから番組パラメーターを入力できるようになる、Windowsコマンドプロンプトが使えない・嫌いな人向けのGUIラッパー。
RadikoRecorderGUI20260206.zip 約11kB
ソース:RadikoRecorderGUI20260206.txt GUI を自分で改造したい人向け。C#ソース
ソースコード:
私に送っていただいたプロジェクトの中からWebページ上から簡単にアクセスできるよう、プロジェクトフォルダーからプログラムファイルだけコピーし、ファイル名を編集したものです。(あくまでも、ラジコタイムフリー録音ロジックを知りたい人、そして C#プログラマー向けです。)
そして2026/02/01、同じ移植者の方から、ラジコプレミアムログインに失敗していた原因と対策方法の情報をもらい、私がソースコードを編集しました。これを VS2022 でビルドし直したものが、上記RadikoRecorder20260201_x64_net8 となります。
RadikoRecorderフォルダーの構成:
RadikoRecorder.exe が録音コマンドです。ffmpeg.exe と ffprobe.exe が RadikoRecorder から呼び出される実際に録音を行うコマンドです。これらを同一フォルダーに入れて使います。GUIを使いたい方は、RadikoRecorderGUI も同じフォルダーに入れて下さい。
コマンドリファレンス.txt が使い方説明書です。
使い方:
圧縮ファイルをダウンロードした後、解凍してください。
Windowsコマンドプロンプトを開いて、解凍したフォルダーに cd し、コマンドを発行してください。
コマンドの使い方は、コマンドリファレンスファイルにありますが、一例を紹介しておきます。
RadikoRecorder -s TBS -f 202601261400 -d 170 -o 録音ファイル名
-s:放送局ID
-f : 録音開始日時
-d:録音時間(分)
-o:保存ファイル名(パスが無い場合は exe と同じフォルダーに保存されます)
その他のオプションは、コマンドリファレンスをお読みください。
動作確認環境:
Windows 10 pro 上の Visual Studio 2022 で単一 exe ファイルになるようビルドし、Windows11 Home のWindowsプロンプト(DOS窓)で動作確認しまていますが、手持ちWindows11が無いため、このツールを試してみた方、コメントで動作確認できた環境をお知らせいただければ助かります。ライブラリごとバイナリ化していますが、win_x64環境を選択していますので、32bit Windowsの場合は、ファイル名に x86 が付いているものを使ってください。
MacOS版:
Visual Studio 2022 は、一つのソースプログラムから、WindowsでもMacでもそれぞれビルドすればバイナリーを生成できるようなので、興味本位で、作ってみました。
私が使っているOSバージョンでは動かないのでユーザーまかせにしようと思っていましたが、アプリをアップロードした後、x64-Catalina を使えることを思い出して、リモートログインして確かめたところ、初心者には無理かな~と思える手間をクリアーできれば動くことを確認できました。
コマンドプロンプト(シェル)が使えることが必須。使えない人は諦めましょう。
- RadikoRecorder20260202_osx-x64.zip をダウンロード、(Safariなら自動)解凍したあと、RadikoRecorder に実行権を与える。
chmod 755 RadikoRecorder - ffmpeg, ffprobe も同様にffmpegダウンロードサイトからダウンロードする。MacOSの場合は、RadikoRecorderと同じフォルダーに入れる必要はないが、それぞれ ffmpeg.exe、ffprobe.exe とリネームする必要あり。(ソースにコマンド名が決め打ちされているので .exe を付加しないと、Required executable not found となり、止まります。)
- 以下は、 csh から。
- 環境変数 PATH に ffmpeg.exe ffprobe.exe を登録する。(たとえば、/Users/radiko/bin の下に置いた場合は、setenv PATH /Users/radiko/bin:$PATH を発行。必要なら、 .cshrc に追加の事。)
- RadikoRecorder, ffmpeg.exe, ffprobe.exe のうち、AppleStore以外からダウンロードしたものは初回、実行を拒否されます。設定→セキュリティーとプライバシー→一般 で、鍵を外した後、実行を許可します。私の場合は全部で3回実行できるように操作しました。
- この後で、ラジコタイムフリー録音できるはずです。
osx-arm64 環境は試すことが出来ません。
まあ、MacOSの人はMacOS用ツールを使えばいいと思いますので、無理してRadikoRecorder コマンドラインツールを使う必要はないと思います。いや、そもそも RadikoRecorder の元となった、rec_radiko_ts をそのまま使えば済む話だと思います。
RadikoRecorderGUI:
Windowsコマンドプロンプトが苦手、嫌いな人用の、RadikoRecorderGUI ソースコードを作っていただき、私がビルドしましした。
RadikoRecorder.exe と同じフォルダーに入れます。
Windowsコマンドプロンプトから入力していたパラメーターをGUI画面から入力できます。放送局、録音開始日時分、録音終了日時分(または録音時間分)だけ指定すれば、動作するはずです。
ただし、私の開発環境がVC#用は .NET8 用ではなかったため、とりあえず .NET Framework 4.8、x86 でビルドし、Win10環境では動作確認しましたが、PC環境によってはランタイムライブラリが入っていないかもしれません。(今のところ動かなかったレポートは届いていません。)
サポート:
基本的にサポートはありません。ソースを公開していますので、Visual Studio 2022 を自分のPCにインストールして、自由に改造して使ってください。
サポートではありませんが、今後、今回のようにラジコ側の配信仕様が大幅に変化する場合は、ユーザー側での対処はハードルが高すぎるため、トラブル状況を入力いただいても構いません。対策を約束するものではありませんが、開発側の方が見てくれると思います。また、当方で動作確認できるOS環境は限定的なので、Win10以外の動作環境での実行結果をコメント欄に書き込んでいただくことは歓迎です。
RadikoRecorder 作者の方との履歴:
匿名作者(移植者)からは、当サイトのコンタクトフォームを利用して連絡いただいています。
- rec_radiko_ts.sh の VC# 移植版をランタイムライブラリーを含まないバイナリーとソースコードでいただきました。
私の方で、ffmpeg/ffprobe, .net8ランタイムをパッケージにして公開。残念ながら、ラジコプレミアムの認証が通らないものでした。 - 認証機能を取り除いて、正式にラジコプレミアム未対応のものをいただきましたが、私の方で、いずれ誰かが問題を見つけてくれるのでは?とソースコードの置き換えは行わず、初回のものを公開したままにしております。
- プレミアムログインコードに間違いがあることがわかったという連絡をいただきました。
- ラジコプレミアムログインがエラーになっていたのは、ラジコサーバーが返してくる areafree = 0|1という変数処理で、このパラメーターの型が、文字型、int 型と双方で食い違っていたためのようです。
コード提供者のアドバイスを受け、areafree変数の型を私がChatGPTを使って書き直して統一したのが RadikoRecorder20260201.txt で、これをもとにビルドしたのが20260201以降のビルドとなります。 - RadikoRecorder をグラフィカルユーザーインタフェースにする RadikoRecorderGUI を追加でいただきました。
- 必要なものはそろったと判断し、これで、2026/02/26 のラジコタイムフリー仕様変更への対応を一旦終了とします。
2026/02/03:
MacOS版をビルドしてみました。osx-x64 版に関しては動作確認できました。

Win10 Pro 22H2 64bitにてRadikoRecorder、RadikoRecorderGUIとも正常に動作しています。32bit版でもプレミアムログインをテストしてみたいので、修正版にてビルドし直していただけないでしょうか?
RadikoRecorder20260206_x86_net8.zip をご利用ください。01/31バージョンも、プレミアムログイン可能だったはずですけど、更新が頻発すぎて定かじゃなくなったため、ビルドし直しました。
2月以降の日付が付いたものが、ラジコプレミアム対応となります。
対応ありがとうございました。Win10 Pro 22H2 32bitでは公開されていた0131_x86版を使用するとログイン出来ませんでしたが、0206_x86版では正常に動作しました。また、Win11 Pro 25H2でも0201_x64版で本体、GUIとも正常に動作しました。あとはXP~7で使用できるRadikoPadの更新をのんびり待ちたいと思います。(返信が使用できなかったので新規に記入しました)
動作確認ありがとうございます。
よ~く見直すと、ラジコプレミアム対応のソースが2/1なので、それ以前のビルドがプレミアムログイン出来るわけがないので、リクエストいただいてよかったです。
RadikoPadが使えなくなってから、RadikoRecorder.exeを使わせていただいております。
ある番組で時間を指定して録音したところ、一部挙動がおかしい事例がありました。
#softbankAir環境で接続のため、エリア判定が熊本となり、エフエム熊本をテストで録音しています。
・正常に録音できたコマンドライン
.\RadikoRecorder.exe -s FMK -f 20260205221800 -d 14 -o a.m4a
・異常となるコマンドライン
.\RadikoRecorder.exe -s FMK -f 20260205221832 -d 14 -o b.m4a
——————————————-
>.\RadikoRecorder.exe -s FMK -f 20260205221800 -d 14 -o a.m4a
[INFO] Output file: a.m4a
[INFO] Authorize start (max 3 tries)
[INFO] Authorize attempt 1/3
[INFO] Authorize success (area_id=JP43)
[INFO] Record start: station=FMK from=20260205221800 to=20260205223200
[INFO] Download chunk 0: seek=20260205221800 end_at=20260205222300 l=300s left=840s
[INFO] Chunk 0 downloaded: actual=300s
[INFO] Download chunk 1: seek=20260205222300 end_at=20260205222800 l=300s left=540s
[INFO] Chunk 1 downloaded: actual=300s
[INFO] Download chunk 2: seek=20260205222800 end_at=20260205223200 l=240s left=240s
[INFO] Chunk 2 downloaded: actual=240s
[INFO] Finish OK: a.m4a
>.\RadikoRecorder.exe -s FMK -f 20260205221832 -d 14 -o b.m4a
[INFO] Output file: b.m4a
[INFO] Authorize start (max 3 tries)
[INFO] Authorize attempt 1/3
[INFO] Authorize success (area_id=JP43)
[INFO] Record start: station=FMK from=20260205221832 to=20260205223232
[INFO] Download chunk 0: seek=20260205221832 end_at=20260205222332 l=300s left=840s
[INFO] Chunk 0 downloaded: actual=20s
[INFO] Download chunk 1: seek=20260205221852 end_at=20260205222352 l=300s left=820s
[INFO] Chunk 1 downloaded: actual=20s
[INFO] Download chunk 2: seek=20260205221912 end_at=20260205222412 l=300s left=800s
[INFO] Chunk 2 downloaded: actual=20s
[INFO] Download chunk 3: seek=20260205221932 end_at=20260205222432 l=300s left=780s
[INFO] Chunk 3 downloaded: actual=20s
[INFO] Download chunk 4: seek=20260205221952 end_at=20260205222452 l=300s left=760s
[INFO] Chunk 4 downloaded: actual=20s
[INFO] Download chunk 5: seek=20260205222012 end_at=20260205222512 l=300s left=740s
[INFO] Chunk 5 downloaded: actual=20s
[INFO] Download chunk 6: seek=20260205222032 end_at=20260205222532 l=300s left=720s
[INFO] Chunk 6 downloaded: actual=20s
[INFO] Download chunk 7: seek=20260205222052 end_at=20260205222552 l=300s left=700s
[INFO] Chunk 7 downloaded: actual=20s
[INFO] Download chunk 8: seek=20260205222112 end_at=20260205222612 l=300s left=680s
[INFO] Chunk 8 downloaded: actual=20s
[INFO] Download chunk 9: seek=20260205222132 end_at=20260205222632 l=300s left=660s
[INFO] Chunk 9 downloaded: actual=20s
[INFO] Download chunk 10: seek=20260205222152 end_at=20260205222652 l=300s left=640s
[INFO] Chunk 10 downloaded: actual=20s
[INFO] Download chunk 11: seek=20260205222212 end_at=20260205222712 l=300s left=620s
[INFO] Chunk 11 downloaded: actual=20s
[INFO] Download chunk 12: seek=20260205222232 end_at=20260205222732 l=300s left=600s
[INFO] Chunk 12 downloaded: actual=20s
[INFO] Download chunk 13: seek=20260205222252 end_at=20260205222752 l=300s left=580s
[INFO] Chunk 13 downloaded: actual=20s
[INFO] Download chunk 14: seek=20260205222312 end_at=20260205222812 l=300s left=560s
[INFO] Chunk 14 downloaded: actual=20s
[INFO] Download chunk 15: seek=20260205222332 end_at=20260205222832 l=300s left=540s
[INFO] Chunk 15 downloaded: actual=20s
[INFO] Download chunk 16: seek=20260205222352 end_at=20260205222852 l=300s left=520s
[INFO] Chunk 16 downloaded: actual=20s
[INFO] Download chunk 17: seek=20260205222412 end_at=20260205222912 l=300s left=500s
[INFO] Chunk 17 downloaded: actual=20s
[INFO] Download chunk 18: seek=20260205222432 end_at=20260205222932 l=300s left=480s
[INFO] Chunk 18 downloaded: actual=20s
[INFO] Download chunk 19: seek=20260205222452 end_at=20260205222952 l=300s left=460s
[INFO] Chunk 19 downloaded: actual=20s
[INFO] Download chunk 20: seek=20260205222512 end_at=20260205223012 l=300s left=440s
[INFO] Chunk 20 downloaded: actual=20s
[INFO] Download chunk 21: seek=20260205222532 end_at=20260205223032 l=300s left=420s
[INFO] Chunk 21 downloaded: actual=20s
[INFO] Download chunk 22: seek=20260205222552 end_at=20260205223052 l=300s left=400s
[INFO] Chunk 22 downloaded: actual=20s
[INFO] Download chunk 23: seek=20260205222612 end_at=20260205223112 l=300s left=380s
[INFO] Chunk 23 downloaded: actual=20s
[INFO] Download chunk 24: seek=20260205222632 end_at=20260205223132 l=300s left=360s
[INFO] Chunk 24 downloaded: actual=20s
[INFO] Download chunk 25: seek=20260205222652 end_at=20260205223152 l=300s left=340s
[INFO] Chunk 25 downloaded: actual=20s
[INFO] Download chunk 26: seek=20260205222712 end_at=20260205223212 l=300s left=320s
[INFO] Chunk 26 downloaded: actual=20s
[INFO] Download chunk 27: seek=20260205222732 end_at=20260205223232 l=300s left=300s
[INFO] Chunk 27 downloaded: actual=20s
[INFO] Download chunk 28: seek=20260205222752 end_at=20260205223232 l=280s left=280s
[INFO] Chunk 28 downloaded: actual=20s
[INFO] Download chunk 29: seek=20260205222812 end_at=20260205223232 l=260s left=260s
[INFO] Chunk 29 downloaded: actual=20s
[INFO] Download chunk 30: seek=20260205222832 end_at=20260205223232 l=240s left=240s
[INFO] Chunk 30 downloaded: actual=20s
[INFO] Download chunk 31: seek=20260205222852 end_at=20260205223232 l=220s left=220s
[INFO] Chunk 31 downloaded: actual=20s
[INFO] Download chunk 32: seek=20260205222912 end_at=20260205223232 l=200s left=200s
[INFO] Chunk 32 downloaded: actual=20s
[INFO] Download chunk 33: seek=20260205222932 end_at=20260205223232 l=180s left=180s
[INFO] Chunk 33 downloaded: actual=20s
[INFO] Download chunk 34: seek=20260205222952 end_at=20260205223232 l=160s left=160s
[INFO] Chunk 34 downloaded: actual=20s
[INFO] Download chunk 35: seek=20260205223012 end_at=20260205223232 l=140s left=140s
[INFO] Chunk 35 downloaded: actual=20s
[INFO] Download chunk 36: seek=20260205223032 end_at=20260205223232 l=120s left=120s
[INFO] Chunk 36 downloaded: actual=20s
[INFO] Download chunk 37: seek=20260205223052 end_at=20260205223232 l=100s left=100s
[INFO] Chunk 37 downloaded: actual=20s
[INFO] Download chunk 38: seek=20260205223112 end_at=20260205223232 l=80s left=80s
[INFO] Chunk 38 downloaded: actual=20s
[INFO] Download chunk 39: seek=20260205223132 end_at=20260205223232 l=60s left=60s
[INFO] Chunk 39 downloaded: actual=20s
[INFO] Download chunk 40: seek=20260205223152 end_at=20260205223232 l=40s left=40s
[INFO] Chunk 40 downloaded: actual=20s
[INFO] Download chunk 41: seek=20260205223212 end_at=20260205223232 l=20s left=20s
[INFO] Chunk 41 downloaded: actual=20s
[INFO] Finish OK: b.m4a
>
——————————————-
職場のPCではエリア判定が埼玉となっているので、TOKYO FMで試した時は、
.\RadikoRecorder.exe -s FMT -f 20260205221600 -d 16
は正常に録音できましたが、
.\RadikoRecorder.exe -s FMT -f 20260205221700 -d 15
.\RadikoRecorder.exe -s FMT -f 20260205221800 -d 14
は”b”と同じ現象になりました。
同じ番組でも、ネット局ではプレイリストの違いで挙動に差があるようです。
昨晩、突然の停電があり、当サイトもダメージを受けて復旧作業していましたので、コメント公開が遅れましてすみません。
文面が長くても問題ないのですけど、PCコマンドを攻撃と判定したのかもしれません。
さて、タイムフリー録音の挙動ですが、RadikoRecorder の元となっている rec_radiko_ts でも同じ挙動をするようです。
v2 APIの時は、ラジコサーバーと認証が終われば、あとは、放送局情報と時間パラメーターを与えるだけだったのですが、現在は手続きがややこしくなっていて、認証後、タイムフリーサーバーからareafree 0|1 timefree 0|1 メインとサブの組み合わせで8つのURLが返され、その中から正しいURLを選択した後、更にサーバーと通信。タイムフリーサーバーが放送データをチャンクに分割して送ってくるので、それをユーザープログラムでかき集めて最後に一つの録音ファイルにするような感じで録音するようになっています。非常に面倒くさい。
さらに、v2 では5秒が最小単位だったのが、現在は、正確にはわかっていませんが、20秒や5分とか新しい最小分割単位で動くようです。なので、番組スケジュール通りのxx分00秒から録音スタートなら、送出サーバー側は楽なんでしょうが、中途半端な xx秒 スタートとか、中途半端な録音時間ですと、分割ロジックが異なるのかもしれません。公開されていないサーバー情報なので、想像するしかありませんが。
タイムフリーサーバー上に各放送局が放送データを保存しているわけですが、それを最初から通して最後まで聞く人の他、途中から聴く人、一旦停止させて巻き戻す人、繰り返す人、いろんな聴き方がある訳ですから、おそらく一つの放送を細かく分割して保存しているはずです。そのナンバリングと一致する開始位置から聴いてもらえればサーバーは楽ですけど、予定していない時刻から再生するようなケースでは、送出パフォーマンスが低下したり、送出モードが変わったりしているんじゃないかと勝手に想像しています。(ある程度は受信側でバッファリングして、その範囲内で自由に聴けるようになっているはずですが。)
そのうちいろいろなサイトで解析が進むと思います。
今は私の方は何もできませんので、事例情報の蓄積という事で、コメントありがとうございました。
コマンドラインのいいところは、簡単に多段処理を組めるところとおもっていまして、
1段目で、00:00:00-01:00:00 のような安全確実な範囲で録音、
2段目で、1段目のファイルをffmpegでIn/Out点などを指定してトリム
で、目的としては達成できてしまうのではと思いました
なお、着うたに採用されている、libfdk-aac (HE-AAC v2)が利用可能な ffmpeg を
自力でビルドすると、Radikoを音源とする場合は、32kbpsにトランスコードしても
聴感上はあまり差異がなく、ファイルサイズを 2/3 にするなども可能ですし。
こんな感じのコマンドラインですね。先頭600秒をカット・HE-AAC v2 32kbpsでエンコード。
ffmpeg -ss 0 -t 600 -i input.m4a \
-c:a libfdk_aac -profile:a aac_he_v2 -b:a 32k \
-vn -movflags +faststart \
output.m4a
“`
– `-ss 0 -t 600`:先頭から10分(600秒)だけを切り出し(トリミング)
– `-c:a libfdk_aac -profile:a aac_he_v2 -b:a 32k`:libfdk-aacでHE-AAC v2、32kbpsにエンコード
正直Radikoのサーバー側の仕様は、ユーザー側には開示されておらず完全にはわからないし、
Radiko側はいつでもその仕様を変更することができる、となると、これを追う必要性が
必ずしもあるのかは私にはわかりません・・。
コマンドが書かれていたためか、スパム扱いされていて、公開が遅くなって申し訳ありません。複数書き込んでいただいたようで、もし、消去希望があるならお知らせください。こちらで非公開後、削除いたしますので。
個人が作るフリーツールの場合、いつまでメンテナンスを続けられるかわかりませんし、当サイトだっていつまであるかわかりません(先月末でインターネット回線がNTTからぶった切られましたからね)から、多くの人が使うユーティリティーは、シンプルな形で公開&中身がわかるようにしたいと思っています。ご指摘の録音特化&ソースという形ですね。
私が出来なくなってもソースコードがあれば、誰か、何かできるでしょう。
フォーマットとビットレートは、前々から言われていますが、ラジコに関しての当サイトの役割は、サーバーが送ってくるデータをそのままひとまとめに保存できるツールの公開だけで、再エンコードや変換、編集は、外部ツールまかせというのが基本姿勢になります。
ただ、その変換コマンド情報は、当サイトにないので、ツールと同じページのコメントにコマンドを書き込んでいただくのは、いつかコマンドラインを勉強したの人の役に立つかもしれません。
ラジコ側の仕様に関してですが、音声ストリームとJavaScriptがわかる人は、Webブラウザーの開発ツールを使って推理するようです。また、今流行のAIとコミュニケーションしながら進めてゆくという手もあります。ラジコの配信方法が方言なのか、世界共通方式なのかはわかりませんが、後者なら調べてみる価値はありそうですね。
rec_radiko_ts が存在しそのコードの内容から自明というかわかることなのですが、配信自体はHLSという一般的方式を使っている一方、認証やプレイリスト生成などサーバー側の手順・パラメータは公開仕様ではなく、Webプレイヤーのリクエスト/レスポンス解析(挙動の再現)に基づいてスクリプト化しているので、個人的な運用上は、都度、サーバー側の仕様が変更されれば、都度、上記のように調査→その変更に追従したコードなりのリリースを待つほかないと思っていますし、やっぱりこれが結論にもなるのかなと・・。一方で、現状、rec_radiko_ts の実行により、意図したデータがダンプされる挙動の再現性が高いのはありがたいことで、調査に関わられた個々の皆様には感謝しております。
このコメントをいただいた時、過去によくリクエストがあった、「aacやm4a形式ではなく、mp3 で出力するオプションが欲しい」の延長リクエストかと思っていたので、RadikoPad系は、放送局から送ってくるデータをひとまとめして保存機能のみを提供し、トリミングや音質変更は外部ツールで という姿勢でコメントしたのですけど、違っていたんですね。ffmpegはフリーで配布されていますが、使用されるライブラリの一部の扱いまでは気にしていませんでしたので、今回調べてみて、面倒なこともあるんだと気づきました。(放送と録音データ関係は、著作権が絡むのでCoDec関係なしに元々面倒くさいのですけどね。)
ffmpeg の libfdk-aac を組み込んだビルドしたバージョンを使うと、音質を保ってファイルサイズを小さく出力することも可能。一度保存したもののトリミングも同じffmpeg を使って可能で、連携を高めるともっと便利に使えるという趣旨だったのだと、今、理解しました。(ただし、特許の話があって、libfdk-aacを使って加工出力した音源ファイルは再配布できない。または、契約が必要。我々は前者。)
99%のRadikoPad/RadikoRecorderユーザーは、自分で録音して自分で聞く&保存しておく方だと思うので、特許が関わる使い方にはならなさそうです。自分で録音して、他人にも聞いてもらうためにコピーを渡すという使い方は禁止となりますね。
当サイトで、これを紹介するとなると、まあ、99%人は興味ないと思います。RadikoRecorder 単体よりも、100MBもサイズがある RadikoRecorder+ffmpeg+ffprobe のファイルが約4倍ダウンロードされましたので、利用者のほとんどは、面倒なことをするくらいなら、ファイルサイズは大きくてもいいという考え方なんだと思います。(番組を聴くだけならね。)
保存となると、少し、考え方が変わり、トーク番組に関してはファイルサイズを小さくして長期保管しておきたいとなると思いますので、libfdk-aac が活躍する場はあるでしょう。でも圧縮利用者の数はRadikoPad/RadikoRecorderユーザーの最大でも2割くらい?
しかも、ドラッグアンドドロップで、1か月分まとめて小さくして、番組・月別フォルダーに入れてくれるような機能付きGUIがあればの話じゃないかと思います。
そうなると、(別アプリでもいいですけど)RadikoRecorderGUI のウィンドウ下部に、ドラッグアンドドロップ対応フィールドを設けて、フォルダーとかファイルを重ねれば、指定フォルダーが作られて圧縮とまとめを一度にやってくれるような機能が必要になるという感じですね。
私もRadikoPad動作確認のため、コマンドモードをタスクスケジューラで毎日起動させ、自動録音をしているので、時々番組を消したり移動したり整理する必要があります。そういう使い方が出来るなら、圧縮利用者も増えるかな~という気がします。
それには、まずは ffmpeg libfdk-aac を作って、GUIアプリを作る。ただ、ラジオリスナーがラジコ録音ファイルにどういう名前を付けて保存しているかフォーマットがわからないので、自動でフォルダーを作るような仕様を設けるには大変そうです。
バッチファイルの中身を拝見しました。自動でWindowsに開発環境を構築して、カスタムffmpeg.exe をビルドするんですね。私が今使っているWindowsを開発環境にするのはちょっと問題があるので、行えませんけど、興味はあるので、別環境を準備して試してみたい気持ちはあります。
ビルドできたら、RadikoRecorderかGUIに同梱して、配布して下地を作っておき、いずれオプションコマンドを紹介するような感じかな~。
ありがとうございます。
いわゆる録音された音源のファイル名・フルパスは、GUI側でも拾えるはずで、
そうすると、GUIに再トランスコードのチェックボックスなりフォーマット・
ビットレートのためのコントロールを用意してあげれば、録音→コンバート→
リネームでオリジナルと置き換えを一連の処理にすることなどはできそうですが、機能が増えると、そこにも対応する必要がありますので、、というところになりそうですね。
libfdk-aac 自体は、ffmpeg に組み込むことで、youtube やネットラジオ、それから
ローカルファイルの音声トラックを入力元にしながら、32kbps にリアルタイムで圧縮 → いわゆるストリーミングとして再送信してあげると、「ギガ」が減らない自分用のストリーミングサービス的なものを作ることができたりと、何かと面白いことができる可能性が広がるのかなと思います。関係ない話題ですみません。
試させてもらいましたが、windows10でエラーになりました。
RadikoRecorder.exe -u “https://radiko.jp/#!/ts/LFR/20260216080000”
[INFO] Output file: LFR_20260216080000_20260216101600.m4a
[INFO] Authorize start (max 3 tries)
[INFO] Authorize attempt 1/3
[INFO] Authorize success (area_id=JP13)
[INFO] Record start: station=LFR from=20260216080000 to=20260216101600
[INFO] Download chunk 0: seek=20260216080000 end_at=20260216080500 l=300s left=8160s
[INFO] Download chunk 0: seek=20260216080000 end_at=20260216080500 l=300s left=8160s
[ERROR] Record failed
何のエラーでしょうか。回避法ありますか。
私のWin10+RadikoRecorder(02/02 no net8) +上記1のffmpeg を全部ひとまとめに一つのフォルダーに入れ試してみましたが問題ありませんでした。
> ./RadikoRecorder.exe -u https://radiko.jp/#!/ts/LFR/20260216080000
[INFO] Output file: LFR_20260216080000_20260216101600.m4a
[INFO] Authorize start (max 3 tries)
[INFO] Authorize attempt 1/3
[INFO] Authorize success (area_id=JP13)
[INFO] Record start: station=LFR from=20260216080000 to=20260216101600
[INFO] Download chunk 0: seek=20260216080000 end_at=20260216080500 l=300s left=8160s
[INFO] Chunk 0 downloaded: actual=300s
略
[INFO] Chunk 26 downloaded: actual=300s
[INFO] Download chunk 27: seek=20260216101500 end_at=20260216101600 l=60s left=60s
[INFO] Chunk 27 downloaded: actual=60s
[INFO] Finish OK: LFR_20260216080000_20260216101600.m4a
Mode LastWriteTime Length Name
—- ————- —— —-
-a—l 2026/02/17 15:13 100752384 ffmpeg.exe
-a—l 2026/02/17 15:13 100546048 ffprobe.exe
-a—l 2026/02/17 15:17 49726172 LFR_20260216080000_20260216101600.m4a
-a—l 2026/02/17 15:14 702830 RadikoRecorder.exe
-a—l 2026/02/17 15:13 6006 コマンドリファレンス.txt
PC環境の問題か、たまたまその時サーバー側が何かトラブルを抱えていたか。そこら辺でしょうね。切り分け方はRadikoPadの場合と同じなので、基本的な切り分けを行ってみるといいと思います。
[INFO] Download chunk 0: seek=20260216080000 end_at=20260216080500 l=300s left=8160s
[INFO] Download chunk 0: seek=20260216080000 end_at=20260216080500 l=300s left=8160s
と2回続いているのでサーバーエラー=リトライで解決かと
RadikoPad Ver1.2.0テスト版をインストールし、RadikoHPから番組をDrag&Dropし、DLボタンを押したら、「HTTP/1.1 400 Bad Request」のエラーが出ます。
解決方法があればご指南ください。
RadikoPad v1.2 では、日跨ぎ番組録音が出来ないようです。
http://www.lifewithunix.jp/notes/2026/02/19/radikopad-1_2_0-modified-for-timefree-protocol-change-on-2026_01_26/#comment-2149
当面は、RadikoRecorder を使っていただくしか、回避策はありません。
この場所への書き込みが適切とは思えませんので、後日、このコメントは消去いたします。