現在、この日本語訳はまだ未完です。ご了承ください。
下手な日本語で申し訳ありません
yt-dlp-rajikoとは?
yt-dlp-rajikoは配信ダウンローダー「yt-dlp」用エクストラクター プラグイン です。エリアフリーで日本の民間ラジオ局の配信された番組をダウンロードできます。生配信も録音できます。日本以外でもでき ます!
スマホアプリとなりすまして、地域制限が完全にバイパスします。この方法は元々jackyzy823さんの 「rajiko」ブラウザ拡張機能のために開発されました。
Compared to yt-dlp's extractor, yt-dlp-rajiko extracts more
better metadata for timefree programmes, including tracklists of
songs played during the programme (as chapters).
Only the station metadata is extracted for the live streams, not
the programme that's airing at the time. (this is the good and
right-thinking way of doing it.)
そんなに素敵なら、何でyt-dlpにマージしなかったんですか?
まずは法的リスク。スマホアプリから密輸出したAPIキーを使ってます。リスクが高すぎると忠告された。
続いては…まあ、おおそらく、かなり簡単なことと思います。でも自分にはやる気がない。プラグインでよい。
どうやってインストールしますか?
yt-dlp 2023.06.22以上が必要です。
yt-dlpをpipでインストールしました場合は、このコマンドでyt-dlp-rajikoもpipでインストールできます:
pip3 install --extra-index-url
https://427738.xyz/yt-dlp-rajiko/pip/ yt-dlp-rajiko
pipx
でインストールしました場合はpipx runpip
でご
利用ください。
もしくは、以下のいずれの保存先にyt_dlp_rajiko-1.0-py3-none-any.whl
を
ダウンロードしてください
~/.config/yt-dlp/plugins/
(LinuxとMacの場合)%appdata%/yt-dlp/plugins/
(Windowsの場合)- そ の他…
最新リリースのSHA256チェックサムはこちら:
70b95f25a62b465f1fb26f0e6faef45236d55a0c12665ef4f754cd39832118cf yt_dlp_rajiko-1.0-py3-none-any.whl 993e16a3423a43dbeaee59c6eb37086f4e801dcfe03042aa5c5c01b0085fdc4d yt-dlp-rajiko-1.0.tar.gz (pipが自動検証)
ソースコードは個人gitホストとgithubで ご覧いただけます。
If you'd like to be notified of new releases, you can subscribe
to this RSS feed:
https://427738.xyz/yt-dlp-rajiko/CHANGELOG.xml
If you'd like to see the changelogs of past releases, you can
read that feed in your browser as well.
Please note that the feed is currently only available in
English.
If you'd prefer to be notified by email, you can use one of the many RSS to email services. I've tested Feedrabbit and found it to work, but other options are available. Alternatively, shoot me a message with your email address and I'll work something out.
ご利用方法
こんな風にご利用する
# タイムフリーダウンロードの場合
yt-dlp 'https://radiko.jp/#!/ts/INT/20240308230000'
# 生録音の場合
yt-dlp 'https://radiko.jp/#!/live/CCL'
# 生録音の速記
yt-dlp 'https://radiko.jp/#FMT'
検索ページで使えると、ダウンロードが少し自動になります。
# 角松敏生に関連する各番組
yt-dlp 'https://radiko.jp/#!/search/live?key=角松敏生&filter=past®ion_id=all'
# 大阪より特定番組
yt-dlp 'https://radiko.jp/#!/search/live?key=world%20jazz%20warehouse&filter=past&area_id=JP27'
基本的にブラウザからコピーされたURLは大丈夫です。
If you can reliably get it in the search, you can somewhat-automate downloading it. If there's a programme that airs on multiple stations, the best way to filter down to the station you want is to use the search's 地域 (region) filter.
推奨設定
yt-dlp's default settings aren't ideal for yt-dlp-rajiko. These are the settings I use to make it better.
TL;DR: -N 30 --embed-metadata --embed-thumbnail -o
"%(title)s %(timestamp+32400>%Y-%m-%d_%H%M)s
[%(id)s].%(ext)s"
(put that in an alias)
+ --download-archive "archive" --playlist-reverse
--break-on-existing --break-per-input
if using the
search page
メタデータ
radiko offers a lot of metadata
about its shows, a fair amount of which yt-dlp-rajiko extracts.
But yt-dlp's default settings don't expose anything except the
title.
Add the argument --embed-metadata
to your
command. This will embed the show name, description, station
name and airdate into the file, as tags that should be picked up
by a decent media player. It also embeds the tracklist of songs
played as timestamped chapters.
You can also add --embed-thumbnail
to add the
show image as cover art, which your media player can display.
I use an output template to add the airdate into the filename
as well:
-o "%(title)s %(timestamp+32400>%Y-%m-%d_%H%M)s
[%(id)s].%(ext)s"
-> World Jazz Warehouse
2024-05-19_2300 [CCL-20240519230000].m4a
+32400
is the JST time offset (+9h), since yt-dlp's
timestamps are all UTC.
Efficiency
-N
(並列ダウンロード機能)を利用すると、ダウンロードがかなり速くなります。
For search queries/automation you should:
- filter for タイムフリー (timefree), so you don't get episodes that haven't aired yet.
- use
--download-archive
, so episodes you've already downloaded don't get downloaded again - use
--playlist-reverse
- the search is ordered oldest-first, so you have to reverse it to get newest first - Additionally, use
--break-on-existing
and--break-per-input
, and then you can stop once you've got the latest episode, skipping scraping older episodes entirely.
That way you can avoid scraping any more than necessary. (faster for you, less load on radiko, everyone wins)
putting it all together
毎回そんな全部のアーギュメントを追加するはめんどくさい。そこで、yt-dlpのコンフィグにエイリアスを作る。一引数だけを追加で
も、 全部がでてきます。so you can just type one short thing and get all of
the settings.
Make a config file in one of
the supported locations, and add --alias rdk 'PASTE
THE ARGUMENTS HERE' to it
. Then when you want to
download from radiko, do yt-dlp 'url' --rdk
and
it'll all "just work™". Unfortunately site-specific config isn't
possible (yet?), so you will have to remember to add that --rdk
every time.
If you're going to be using the search pages regularly, you should put your command into a shell/batch/etc script. That way you can just run it after the programme(s) you're interested in have aired, with no extra faff.
お問い合わせ
Github
で報告してください。
故障を報告する場合は、ぜひverbose logを含めてください (コマンドの終わりに-v
を追加しま
す)。大変助かります。
雑記(英語のみ)
専用ページで。以前はGithub Wikiでホストされました。
謝辞
The mobile spoofing code is based heavily on the rajiko browser extension by jackyzy823, released under the Unlicense. In particular, the fake phone details and GPS coordinate generation code have been copied almost verbatim. And of course, the mobile API key was (to the best of my knowledge) originally obtained by jackyzy823. You can read their write-up (in Chinese) here.
The authentication code, and some parts of the metadata extraction, have been adapted from yt-dlp's radiko extractor, which was primarily authored by Lesmiscore (also released under the Unlicense).