yt-dlpでYouTubeで配信されているラジオをダウンロードして視聴する

YouTubeで配信されているラジオ番組の1話を視聴して面白かったのでダウンロードして移動中などに聞こうと思いました.ダウンロードにはyt-dlpを利用しました.

使い方はyoutube-dlとほぼ同じですが少し動作が違う部分があるので,NEW FEATURES, Differences in default behavior に目を通しておくといいと思います.

対応サイトは以下を見ると現在1500以上ありそうです.

$ curl -s https://raw.githubusercontent.com/yt-dlp/yt-dlp/master/supportedsites.md | grep -E -- ^\ -\ ** | wc -l
1532

ということでまずは導入.いくつか導入方法がありますが,シングルバイナリをダウンロードするのがお手軽かなと思います.

$ wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp https://github.com/yt-dlp/yt-dlp/releases/latest/download/SHA2-512SUMS
$ sha512sum -c ./SHA2-512SUMS 2>&1 | grep OK
yt-dlp: OK
$ install -m700 ./yt-dlp ~/bin/
$ rm ./yt-dlp ./SHA2-512SUMS

アップデートは -U オプションをつけて実行するだけでOKなのでお手軽です.

$ yt-dlp  -U
Latest version: 2022.03.08.1, Current version: 2022.03.08.1
yt-dlp is up to date (2022.03.08.1)

まずは -F オプションでフォーマットを確認.

$ yt-dlp -F https://www.youtube.com/watch?v=A3vKWR3WXWk
[youtube] A3vKWR3WXWk: Downloading webpage
[youtube] A3vKWR3WXWk: Downloading android player API JSON
[info] Available formats for A3vKWR3WXWk:
ID  EXT   RESOLUTION FPS │  FILESIZE  TBR PROTO │ VCODEC       VBR ACODEC      ABR     ASR MORE INFO
────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb2 mhtml 48x27          │                mhtml │ images                                   storyboard
sb1 mhtml 80x45          │                mhtml │ images                                   storyboard
sb0 mhtml 160x90         │                mhtml │ images                                   storyboard
139 m4a   audio only     │  11.91MiB  48k https │ audio only       mp4a.40.5   48k 22050Hz low, m4a_dash
249 webm  audio only     │  12.64MiB  51k https │ audio only       opus        51k 48000Hz low, webm_dash
250 webm  audio only     │  16.25MiB  66k https │ audio only       opus        66k 48000Hz low, webm_dash
140 m4a   audio only     │  31.61MiB 129k https │ audio only       mp4a.40.2  129k 44100Hz medium, m4a_dash
251 webm  audio only     │  30.82MiB 126k https │ audio only       opus       126k 48000Hz medium, webm_dash
17  3gp   176x144     12 │  13.01MiB  53k https │ mp4v.20.3    53k mp4a.40.2    0k 22050Hz 144p
160 mp4   256x144     24 │   3.25MiB  13k https │ avc1.4d400c  13k video only              144p, mp4_dash
278 webm  256x144     24 │   4.25MiB  17k https │ vp9          17k video only              144p, webm_dash
133 mp4   426x240     24 │   5.94MiB  24k https │ avc1.4d4015  24k video only              240p, mp4_dash
242 webm  426x240     24 │   6.80MiB  27k https │ vp9          27k video only              240p, webm_dash
134 mp4   640x360     24 │   9.56MiB  39k https │ avc1.4d401e  39k video only              360p, mp4_dash
18  mp4   640x360     24 │  48.99MiB 200k https │ avc1.42001E 200k mp4a.40.2    0k 44100Hz 360p
243 webm  640x360     24 │  24.36MiB  99k https │ vp9          99k video only              360p, webm_dash
135 mp4   854x480     24 │  13.12MiB  53k https │ avc1.4d401e  53k video only              480p, mp4_dash
244 webm  854x480     24 │  19.99MiB  81k https │ vp9          81k video only              480p, webm_dash
136 mp4   1280x720    24 │  17.42MiB  71k https │ avc1.4d401f  71k video only              720p, mp4_dash
22  mp4   1280x720    24 │ ~50.09MiB 200k https │ avc1.64001F 200k mp4a.40.2    0k 44100Hz 720p
247 webm  1280x720    24 │  38.85MiB 159k https │ vp9         159k video only              720p, webm_dash
137 mp4   1920x1080   24 │  42.01MiB 172k https │ avc1.640028 172k video only              1080p, mp4_dash
248 webm  1920x1080   24 │  71.89MiB 294k https │ vp9         294k video only              1080p, webm_dash

ラジオで静止画しか付いていないので,音質が良くて小さいopusの 251 がいいかなと思ったのですが, --embed-thumbnail オプションでサムネイルを埋め込もうとするとopusのwebpには埋め込めないようだったのでmp4aの 140 にすることにしました.

yt-dlp -f 140 –embed-thumbnail A3vKWR3WXWk
[ThumbnailsConvertor] Converting thumbnail "/tmp/【公式】その着せ替え人形はラジオをする(第1回) [A3vKWR3WXWk].webp" to png
ERROR: Supported filetypes for thumbnail embedding are: mp3, mkv/mka, ogg/opus/flac, m4a/mp4/mov

ということでこういう感じでサムネイル画像埋め込みでダウンロードできました.

$ yt-dlp -f 140 --embed-thumbnail A3vKWR3WXWk

ファイラーでもサムネイルが表示されていい感じです.

yt dlp thumbnail

1話目がダウンロードできましたが,現在13話まで配信されています.1話づつダウンロードするのは面倒.プレイリストはあるけどラジオ以外のものも配信されています.でもタイトルを見るとラジオかどうかはわかるのでタイトルでフィルターしてラジオだけをダウンロードすることにしました.

フィルタには --match-filter オプションを使い,title~=フィルタ という感じで使います.ということでこんな感じでダウンロードしてみると,プレイリストをチェックしてフィルタにマッチするものだけをダウンロードしてくれました.これでオフラインでもいつでも聞けます :)

$ yt-dlp -f 140 --embed-thumbnail --match-filter "title~=ラジオをする" https://www.youtube.com/watch?list=PLUH30mfo5wJwdafMdAJFcrcryUbYiixl4
環境
$ yt-dlp --version
2022.03.08.1
$ dpkg-query -W python3 ffmpeg
ffmpeg  7:4.3.3-0+rpt3+deb11u1
python3 3.9.2-3
$ lsb_release -dr
Description:    Raspbian GNU/Linux 11 (bullseye)
Release:        11
$ arch
armv7l
$ cat /proc/device-tree/model && echo
Raspberry Pi 3 Model B Rev 1.2

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です