v1.16
2026-10-25
本リリースでは、タイムフリー30番組の既定フォーマットをdr-wowza.radiko-cf.comからtf-f-rpaa-radiko.smartstream.ne.jpに変更しました。これは、wowzaストリームが古い番組のフラグメントを返せなかったため、DLした音源の一部が欠落してしまった問題の回避策です。(「[download] Got error: HTTP Error 404: Not Found. Retrying fragment ○ (○/〇〇)」)7日以上前の番組にのみ影響します。
問題が発生したら、ぜひご連絡ください。
v1.15
2026-09-18
本リリースでは
番組がいくつかのURLに分割されている場合に、AIチャプター抽出ができなかった問題を修正しました。
例えば、TBS「こねくと」は、2時台、3時台、4時台の3URLに分割されています。
v1.14
2026-09-11
本リリースでは
radiko 新機能「チャプター」に対応しました。
https://prtimes.jp/main/html/rd/p/000000121.000007490.html
これに伴い、チャプター種類を指定する extractor argument が追加されました。デフォルトはai,music (AIチャプター+オンエア曲)となります。
AIチャプターがいらない方は --extractor-args rajiko:chapters=musicを指定すれば、これまでと同じく、オンエア曲のみが抽出されます。
オンエア曲がいらない方は --extractor-args rajiko:chapters=aiを指定すれば、AIチャプターのみが抽出されます。
もし何のチャプターもいらない方がいたら、--embed-chaptersを設定しないほうがいい。しかし、 --extractor-args rajiko:chapters= (もしくはmusicおよびai以外の値) を指定すれば、何のチャプターも抽出されません。
v1.13
2026-08-19
本リリースでは
一部のr_seasons、persons、及びポッドキャストのDLが「'NoneType' object has no attribute 'get'」で失敗していた問題が修正されました。
これに伴い、モバイルサイトのNext.js hydration dataをスクレイピングする方式から、直接gRPC APIを呼ぶ方式に変更されました。
技術的には大きな変化ですけど、使う側ではあまり感じないはずです。
しかし、まだ徹底実証されていないので、何か問題あればぜひ連絡してください。
.whl でインストールしていた方は、これからプラグインバンドル形式 (.bundle.zip) に変更してください。 使い方はこれまでと同じで、ファイルをどこかに置くだけでOKです。
.whl形式では、gRPC対応で利用されているProtobugライブラリーが含まれていません。そのため、r_seasons、persons、ポッドキャストのDLに対応していません。バンドル形式では、Protobugライブラリーが含まれています。
v1.12
2026-08-01
本リリースでは
/r_seasons/、/persons/、およびポッドキャストURLのDLが「Unable to extract next.js data」で失敗していた問題が解決されました。- 推計ファイルサイズ表示が追加されました。 進行状況がちゃんと表示されていなくても、完了時刻がだいたいわかります。
v1.11
2025-11-23
このリリースは、ストリームが誤って抽出されたバグを修正します。
複数の format が表示されましたが、どれも同じストリームを DL していました。
幸いにも、そのストリーム (dr-wowza.radiko-cf.com) は最良のもので、対応する format がデフォルトで選択されていました。
なので修正による変化に気づけないかもしれません。
でもその、恥ずべき大失態なので直さなきゃですよねw
また、/persons/ 出演者URLの抽出方法も変更されました。
サイトに表示された通り、キー局の番組だけを返すようになります。
そこで、key-station-only extractor arg がデフォルトの動作になったため廃止になりました。
v1.10
2025-11-09
このリリースでは radiko 側のストリームの削除に伴い「タイムフリー」ダウンロードを修正しました。
残念ながら、この回避策はダウンロードの進捗表示を失うことを意味します。
しかし、ダウンロードは依然として高速です (^^)
また、r_seasons番組の URL の情報をもう少し抽出しているので、GUI などで素敵な画像を見ることができます (^^)
その他(皆さんに注目していただいている間に):
HPを少し更新しました。少しわかりやすく、使いやすくなっていることを願います。
v1.9
2025-09-19
新リリースから4日後、radikoが修正が必要なブレイキングチェンジを導入した
マーフィーの法則だね
このリリースは新しくコピーしたURLの「対象」設定を修正し、そしてあまり有用でない新しいポッドキャスト検索ページに対応する
v1.8
2025-09-14
このリリースでは、
radikoポッドキャストに対応しました。
とくに、こちらのURL
https://radiko.jp/podcast/channels/〇〇
https://radiko.jp/podcast/episodes/〇〇
残念ながら、radikoが現代ソフト開発の犠牲になってしまいました。
そのため、ポッドキャスト/channels/ページから最新の20話以上をダウンロードする場合はprotobugライブラリが必要です。
protobugはyt-dlp製のProtobuf操作ライブラリです。
pipでプラグインをインストールした場合は、protobugも一緒にインストールされます。
手動でインストールする場合は、.whlではなく、.bundle.zipをダウンロードしてください。ご不便をおかけして申し訳ございません。
もちろん、ポッドキャストに興味がない場合は、どちらをダウンロードしても構わない。
https://radiko.jp/r_seasons/〇〇の番組ページにも対応しました。
また、
生配信のthumbnailをradikoプレースホルダー画像から、放送局のロゴに替えました。
前の放送局ビジュアルの画像より劣るけど、ないよりマシ。
また、
FFmpegに対応していない一部の生配信が録音できなかったバグを修正しました。
生配信で使っていたブラックリストを無効にしましたので、これらのURLでより多くのformatが見られます。
PyPiにyt-dlp-rajikoを登録しました。
--extra-index-urlはもう不要になりました。
インストール、アップグレード、requirements.txtに追加するなどがより簡単になりました。
もちろん、前の--extra-index-urlも引き続き利用できます。
v1.7
2025-06-09
毎週リリースですね…ごめんなさい
バグフィックスリリースです。
このリリースでは、
検索URLが1つの結果しか返さないバグを修正します。
このバグはv1.5 / commit a659b48a20b6241a68fc046c86c9ad0f71c9bd86で導入しました。
私は普段、週刊誌番組だけをダウンロードしますので、いずれにしても1つの結果しか返さない。だからその時気づいてなかった。
今はまだv1.5リリース日のタイムフリー30期間以内ので、アカウントがあれば、逃した番組がまだ取り戻せると思います。
今後はテストプロセスを改善していきたいと思います。
v1.6
2025-06-01
またホットフィックスリリースです。
このリリースは(また)生配信の録音を修正します。
Python 3.12以上で発生するSyntaxWarningも修正します。
v1.5
2025-05-24
このリリースでは、
--download-archiveを使う方に、検索URLはもっと効率に過程する。- タイムフリー30のダウンロードを加速するワークアラウンドを追加しました。
- オンエアした曲のリストがなくなった場合の失敗を解決しました。
yt-dlp 2025.02.19以上が必要です。
v1.4
2025-03-30
このリリースでは、
--download-archiveを使う方に、検索URLはもっと効率に過程する。- タイムフリー30のダウンロードを加速するワークアラウンドを追加しました。
- オンエアした曲のリストがなくなった場合の失敗を解決しました。
yt-dlp 2025.02.19以上が必要です。
v1.3
2025-03-06
Quick hotfix release to un-break certain search URLs
If you've not had issues with your search returning HTTP Error 415: Unsupported Media Type, then there is no need to upgrade.
ある検索URLの失敗を解決するホットフィックスリリースです。
検索で「HTTP Error 415: Unsupported Media Type」が発生しなければ、アップグレードの必要はありません。
radiko's search API backend seems to have changed
the site used to use "cul_area_id" in the search URLs, now it uses "cur_area_id" (with an r)
and it outright rejects the old "cul" one with HTTP Error 415: Unsupported Media Type
probably doesn't affect you, but it did affect me, so I'm fixing it
idk why they felt the need to break the old one
the site also started using a different search API endpoint, so I updated the extractor to match
the old one still works, but probably better to change now then get caught out later
If you use pip, you should be able to upgrade with pip install yt-dlp-rajiko --upgrade --extra-index-url https://427738.xyz/yt-dlp-rajiko/pip/.
If you installed manually, you can download the updated .whl from this post's link. The SHA256 checksum should be 25776934bca2046e9c8e1f9cdad73dfa9801c7798d0e6748f974f315f5aad11f.
v1.2
2025-01-22
TL;DR
- Added Timefree 30 support (you need an account, downloads are real-time)
- Added support for https://radiko.jp/persons/ URLs, as seen in 出演者の追加情報 sidebar
- Added an extractor arg to filter down to just key stations when using those /persons/ URLs
このリリースの変更点
- タイムフリー30のログイン対応。ただし、ダウンロードはリアルタイムです。1時間の番組をダウンロードするには1時間かかります。
- 「出演者の追加情報」に含まれる https://radiko.jp/persons/ URLに対応
/persons/のためのキー局をフィルタリングする extractor arg--extractor-args rajiko:key-station-only(例えば、オールナイトニッポンはニッポン放送だけ、JFN系列はTokyo FMだけ、など)
必要ないときはログインしないでください。
ごめんなさい、これが私の日本語の限界です🙇
This release adds support for Timefree 30 programmes. If you have a Timefree 30 subscription, you can login with --username and --password, or cookies.
Unfortunately it only works with streams that are delivered "as-live", so you can only download in real time (ie, a 1 hour programme will take 1 hour to save).
You need a timefree 30 account to download timefree 30 programmes.
You probably shouldn't login/pass cookies unless you're actually downloading a programme that needs it.
It's all well and good if some anonymous person pops up in Hokkaido, then someone else in Tokyo a minute later, then another in Osaka after that...
But if you're logged in, suddenly you're popping up in Hokkaido, then you're in Tokyo a minute later, then you're in Osaka -- it's a lot more suspicious.
So it's best to stay logged out most of the time IMO.
+ that way your download won't randomly take 3 hours because some old programmes turned up in the search results lol
This release also adds suport for https://radiko.jp/persons/ URLs, like https://radiko.jp/persons/33635.
You can find these URLs... somewhere lol
They're meant to show up in the right-hand sidebar on the player pages, but it seems a bit hit-or-miss whether they actually do.

I think they're also used on news.radiko.jp
Anyway, if/when you do find it, the page shows all the available programmes featuring that person - that's what'll be extracted.

(for some reason the list doesn't show when I use the rajiko extension, but does when I use a VPN. the extractor works either way)
Related to this, this release adds a new extractor arg: --extractor-args rajiko:key-station-only.
It filters results down to just the originating/"key" station. - so for networked programmes like All Night Nippon,
you'll only get ニッポン放送, not all 36 member stations, for example.
At the moment, this only works with the /persons/ URLs - but I suspect it'll become more useful as time goes on.
As a non-feature update, I added "mobile" as a possible value of the X-Radiko-Connection header during token negotiation.
(Possible values: mobile, wifi, chosen randomly every time)
that's all
If you use pip, you should be able to upgrade with pip install yt-dlp-rajiko --upgrade --extra-index-url https://427738.xyz/yt-dlp-rajiko/pip/.
If you installed manually, you can download the updated .whl from this post's link. The SHA256 checksum should be 4ee278fd138ebc305deeedc7e2a183afe91903607f28c513731d9e3888c3df11.
v1.1
2024-07-07
This release just tweaks some things, mostly the packaging.
Most likely you won't notice a difference, but it'll make my life a bit easier.
This release:
- Removes yt-dlp from the package's dependencies. This lets you do things like installing yt-dlp with the binary and installing the plugin with pip, without pip installing an extra yt-dlp in the process. Note that yt-dlp is still required to actually use the plugin.
- Sets the
uploader_idfield, for parity with the extractor from yt-dlp proper. This value was already available in thechannel_idfield. - Packages the API key as a separate (binary) file, instead of having a massive base64 blob in the extractor code. This should work fine, but please get in touch if it doesn't work for you.
If you use pip, you should be able to upgrade with pip install yt-dlp-rajiko --upgrade --extra-index-url https://427738.xyz/yt-dlp-rajiko/pip/.
If you installed manually, you can download the updated .whl from this post's link. The SHA256 checksum should be d3fdefb4c5c1d5d64c58b3f805bf64ae95f3dd9f496742d214e16e33e677c600.
v1.0
2024-04-02
This is a purely administrative release. There are no changes to the actual plugin.
However, releases are now actually distributed from the official website, rather than just having to pull off master.
This release:
- Moves the main presence off github, to a dedicated webpage under my full control.
- Properly sets up the build system so that releases can actually be released.
Please see the homepage for initial installation instructions.
v0.3.1
2024-03-09
I noticed the significant spike in git clones following the previous release, and decided to increment the version number again.
This release:
- Fixes a bug where the user agent used during token negotiation was botched due to using the wrong variable.
- Removes dependency on the secrets library (stdlib).
- Specifically links to the Github issues page when token negotiation fails.
v0.3.0
2024-03-06
After almost a year of neglecting it, I decided to increment the version number.
This release:
- Adds support for the tracklist of songs played during the programme, via embedding as chapters.
- Adds support for multiple pages of search, and fixes bug where search via the history page did not work.
- Adds support for share links.
- Fixes a bug where stations with _ in the ID were not supported, e.g. FM_OKINAWA.
- Switches licence, from the Unlicense to BSD 0-Clause. This is effectively the same, but without the anti-copyright ideology.
- Fails more gracefully when the programme is not available.
- Caches station metadata, to prevent excess requests for information that doesn't actually change.
- Adds an extractor arg to control what device's streams are used.
- Adds support for downloading timefree streams that are distributed as-live.
- Adds support for live URL shorthand, e.g. https://radiko.jp/#CCL .
- Adds the radio station as uploader, allowing the station name to be embedded as the artist with --embed-metadata.
- Adds support for station button embeds, like the one in the corner on https://cocolo.jp/
- Adds more debug information in verbose mode.
- Adds a request for bug reports when token negotiation fails.
- Adapts to a breaking change from upstream yt-dlp.
v0.2.0
2023-05-30
I had made a "breaking" change, so I incremented the version number.
This release:
- Makes the BaseIE private, making the extractor actually usable outside of tests.
- Adds support for downloading page 1 of search pages.
- Adds sanity checks, and resiliency.
- Adds debug information in verbose mode.
- Fixes a bug where timefree programmes' availability timestamp and release timestamp were the wrong way round.
- Switches to storing cached data under a single "rajiko" namespace. ("breaking" change)
v0.1.0
2023-05-08
This is simply when I first setup the package metadata. It is not actually usable.
This release:
- Adds support for recording live streams and downloading timefree programmes, but does not yet work outside of tests.