About
yt-dlp-rajiko lets you download Japanese radio shows from radiko.jp without a VPN, using yt-dlp.
It downloads quickly, and works for any participating station*, from anywhere in the world.
*except NHK, but they have their own site which is supported
in yt-dlp proper
Intended for personal archiving, not for commercial use. Please subscribe to radiko Premium if you are able.
(It's Free Software, so this is just me asking nicely, not a hard requirement. but you should do it so that radiko can keep existing)
(also, if you get the timefree30 plan you can use it with yt-dlp :P)
Install
Download the plugin bundle
or pip install yt-dlp-rajiko
Latest release:
v1.10
(
Older releases
Requires yt-dlp 2025.02.19 or newer.
If you installed yt-dlp with pip, use the pip command above.
If you installed yt-dlp with pipx,
use pipx inject yt-dlp yt-dlp-rajiko to install the plugin in yt-dlp's environment.
If you installed with the .exe/binary or any other method, download the bundle and place it in one of these locations:
%appdata%\yt-dlp\plugins\(on Windows)~/.config/yt-dlp/plugins/(on Linux and Mac)- a
yt-dlp-pluginsfolder next to youryt-dlp.exe

- anywhere else listed in the yt-dlp documentation.
You'll have to create those folders if they don't already exist.
There is no need to extract the zip file.
You can check you've installed correctly by running yt-dlp -v and looking for the [debug] Extractor Plugins: or [debug] Plugin directories: lines. (like this)
Release Notes
yt-dlp-rajiko v1.10 has been released
This release fixes TimeFree downloading, following the removal of a stream on radiko's end.
Unfortunately, the workaround involved means that we lose the download progress indicator.
but downloads are still fast, which is the most important bit :)It also extracts a bit more info for
r_seasonsprogramme URLs, so you can see the nice picture in GUIs and such :)ALSO while I have your attention:
I updated the website a bit, particularly the usage section. Hopefully it's a bit clearer and easier to use now.
Subscribe by RSS: https://427738.xyz/yt-dlp-rajiko/CHANGELOG.xml
Subscribe by email: Use that link^ with Feedrabbit or any other RSS-to-Email service :P
Some other method: Shoot me a message and we can work something out
Checksums
Here are the SHA256 checksums for the latest relase:
a7bf81d880725e909225798a356899222229748411f330692c776c9153a4007f yt_dlp_rajiko-1.10.bundle.zip 3d74112f94463a45ad1a9954343160cdcad3a8d799be934b8e30e5b622b405b2 yt_dlp_rajiko-1.10.tar.gz ad1b3a63fc4ce4919840d92a5ca1a020cacea144f76eb07a21611dc61291fffc yt_dlp_rajiko-1.10-py3-none-any.whl
Previous releases
106085f72608562f09bfb2319a1437922aca2d7df4f94af37ade4832b50b0ab1 yt_dlp_rajiko-1.9-py3-none-any.whl
5800258edec65a4b5230679cee55fc186f05ed6e89c89a63acc698ce245dbb16 yt_dlp_rajiko-1.9.bundle.zip
4a288b04fb8e4102b15074644330ae189f7fb53af8bfd5827eb19cff6cd695e8 yt_dlp_rajiko-1.9.tar.gz
8b7fb0d06e62cf9eebdbf17ce4e164b84a058172ebe0cdd36f7084d00123725b yt_dlp_rajiko-1.8.tar.gz
10d56b9cac6a191ef07b4931d76deb4bb048c433e4fe2f05546d5cfbfe3ae45d yt_dlp_rajiko-1.8.bundle.zip
31c4f9463b5f4039ffc36bb595dfcc3d1427837b89cc6f38a150690fef058c1a yt_dlp_rajiko-1.8-py3-none-any.whl
0e2c24f0acdc9932b215f78347795494c161adf372225c1ff3363a974b46f52c yt_dlp_rajiko-1.7.tar.gz
35a6d9371ac60ca526ebae519568b50a73c930acdb3fa6ad994b32d3c5d7c04a yt_dlp_rajiko-1.7-py3-none-any.whl
ec192573235a32e3b84e990d10387cde5259db956db05e1e6304ab41c299e48b yt_dlp_rajiko-1.6.tar.gz
1664969505785b76fb6b7c85a5b8f498039576d6abcdf136f3e007edcda3fcdd yt_dlp_rajiko-1.6-py3-none-any.whl
5b3fdb642d84ad58f8925f833bf3d881c37256ab0be7f77a6305c7e32850b103 yt_dlp_rajiko-1.5.tar.gz
8d8df258a9e9404cc9dde73330183db895905c18bf202875d5da5adf2876965a yt_dlp_rajiko-1.5-py3-none-any.whl
094a5479eac3429b6880c5f7f00f78cdce8299c71a77ac248c0e709dcb770b63 yt_dlp_rajiko-1.4-py3-none-any.whl
237cf5d8612c78c50f4e9c716407753d75b3575a0f50c04db2512f85ce27f796 yt_dlp_rajiko-1.4.tar.gz
69692f1cede445ad13784c9c7fae09812ccdbc4e49d2e06d51cbc76978339f0b yt_dlp_rajiko-1.3.tar.gz
25776934bca2046e9c8e1f9cdad73dfa9801c7798d0e6748f974f315f5aad11f yt_dlp_rajiko-1.3-py3-none-any.whl
f415c9bfade5f60d3e9a7343f526808589c76ab9917c7cc9911260566ded25d0 yt_dlp_rajiko-1.2.tar.gz
4ee278fd138ebc305deeedc7e2a183afe91903607f28c513731d9e3888c3df11 yt_dlp_rajiko-1.2-py3-none-any.whl
29463780d0dcc3be4448eea87f72884c1878e1ea01ccfb823293a42ca6a694b9 yt_dlp_rajiko-1.1.tar.gz
d3fdefb4c5c1d5d64c58b3f805bf64ae95f3dd9f496742d214e16e33e677c600 yt_dlp_rajiko-1.1-py3-none-any.whl
70b95f25a62b465f1fb26f0e6faef45236d55a0c12665ef4f754cd39832118cf yt_dlp_rajiko-1.0-py3-none-any.whl
993e16a3423a43dbeaee59c6eb37086f4e801dcfe03042aa5c5c01b0085fdc4d yt-dlp-rajiko-1.0.tar.gz
Usage
Basic downloading
For starters, we can download a previously aired programme.
yt-dlp 'https://radiko.jp/#!/ts/FMT/20251012140000'
We can download one from another region, in exactly the same way.
yt-dlp 'https://radiko.jp/#!/ts/CCL/20251012230000'
No need to specify a region or log in to an account (at least for programmes aired in the last 7 days)
It also works with those radiko.jp/share URLs you might see on station websites etc.
yt-dlp 'https://radiko.jp/share/?sid=FMT&t=20250528142747'
If you want, you can record the live station stream:
yt-dlp 'https://radiko.jp/#!/live/TBS'
yt-dlp 'https://radiko.jp/#JOAK'
This is mostly here so you can listen to the radio in e.g. mpv or other players with yt-dlp integration.
Both URL formats do the same thing. The only difference is that one is shorter.
You can download "Timefree 30" programmes (older than 7 days) if you have an account with an active subscription.
You can login in the usual ways: Username and password with -u and -p, or passing cookies from your browser.
"Subscribing" to programmes
There are a few ways to get the latest episodes of a programme.
The new way is to find the https://radiko.jp/r_seasons/ programme page that corresponds to your programme.
At time of writing (Oct 2025), the only way to find these is to search "Programme Name radiko" and hope, or copy the link from the mobile app.
The old way is to come up with a search query on the site that gives the results you want. Usually just the programme name will do, but you might have to set a region filter for networked programmes (so you only get it from the station you want). You'll also want to filter for only Timefree, so you don't get results you can't download yet.
Once you've got your URL, you can copy it from the URL bar and use it with yt-dlp in the usual way:
yt-dlp 'https://radiko.jp/r_seasons/10002831'
yt-dlp 'https://radiko.jp/#!/search/timeshift?key=daisy%20holiday&filter=past&start_day=2025-09-17&end_day=®ion_id=all&area_id=JP13&cur_area_id=JP13'
You'll see it trying to download every result, one after the other.
Podcasts
Podcasts work as you would expect.
You can download individual episodes from their URLs:
https://radiko.jp/podcast/episodes/39b4ea93-6693-4cd6-a5bd-7ad01a98b3f4
Or every episode from the Podcast's /channels/ page:
https://radiko.jp/podcast/channels/09f27a48-ae04-4ce7-a024-572460e46eb7
You can search for podcasts on the site, but it only returns links to the whole podcast, not individual episodes.
So the search would download EVERY episode of EVERY result. Probably not what you want, which is why this behaviour is disabled by default.
If that IS what you really want, you can filter your search to return only podcasts, and it will work.
Tips
Metadata and File names
Add --embed-metadata --embed-thumbnail to your command to have metadata about the programme, such as the title, description, cover art, and tracklist embedded as tags in the file. These should show up in all good media players.
You can use an output template to add the airdate into the filename for better organisation.
I use -o "%(title)s %(timestamp+32400>%Y-%m-%d_%H%M)s [%(id)s].%(ext)s".
+32400 is the JST time offset (+9h) in seconds, because yt-dlp's timestamps are all in UTC.
If you want, you can add the airdate to the embedded track name:
--parse-metadata "%(title)s %(timestamp+32400>%Y-%m-%d %H\:%M)s:%(meta_title)s"
Making it faster
You can use -N (multi-threaded download) to increase download speed. I use about 10.
Normally you should use a smaller amount, but radiko (and NHK) seem to need more.
-N 10
If you're downloading a show every week, you should use --download-archive so yt-dlp doesn't try to download episodes you've got already.
Putting it all together
Combining all that^, we get this:
--embed-metadata --embed-thumbnail -o "%(title)s %(timestamp+32400>%Y-%m-%d_%H%M)s [%(id)s].%(ext)s" -N 10 --download-archive [some file]
But no one wants to type that out/paste it in every time. So, we can make a yt-dlp config file, and define an alias. For example:
--alias rdk '--embed-metadata --embed-thumbnail -o "%(title)s %(timestamp+32400>%Y-%m-%d_%H%M)s [%(id)s].%(ext)s" -N 10 --download-archive [some file]'
Then all you need to add to your command is --rdk. (or ofc you can name the alias whatever you like)
yt-dlp 'https://radiko.jp/#!/ts/FMT/20251012140000' --rdk
Links/Contact/Support
Github hosts the source code repo and bug tracker. I also have a backup repo on git.427738.xyz
You can report a problem by opening an issue on Github.
For anything else, or if you'd prefer to contact privately, you can use the contact form on this site, or DM me on Discord at garret1317.
Or, if you want, you can ping me in the yt-dlp discord server.
If you are reporting a bug/problem, please include a yt-dlp verbose log that shows the problem in your message.
You can do this by adding -v to your yt-dlp command, and copying yt-dlp's entire command line output.
This helps me see what's going on, so I can diagnose the issue.
Acknowledgements
Thank you to:
- jackyzy823 for his original research, and for the rajiko browser extension (from which this plugin takes its name).
- Lesmiscore for yt-dlp's original radiko extractor, which I pinched a few things from.
- Atsushi2965 for proofreading the Japanese version of this page.
- The yt-dlp developers for helping me with my many questions, and for yt-dlp itself.
🙏