Ubuntu 20.04: yt-dlp で Youtube 動画から音楽だけを MP3 でダウンロード

 
Youtube で音だけ欲しかったのでメモ。
yt-dlp というツールを使う。

まずは pip でインストール

$ python3 -m pip install -U yt-dlp

パスの通ってない $HOME/.local/ 配下にインストールされた云々のメッセージが出たので .profile を読み込み直してパスを通す。

$ source ~/.profile

DLした動画と音声を結合したりするためには ffmpeg も必要なのでこれもインストールしておく。

$ sudo apt install ffmpeg

いざ動画を DL する場合

$ yt-dlp "https://www.youtube.com/watch?v=AAAAAAAA"

WebM 形式で落ちてくる。

mp3 音声だけ欲しい場合

$ yt-dlp -x --audio-format mp3 "https://www.youtube.com/watch?v=AAAAAAAA"

これで mp3 ファイルが出来上がる。
挙動を見たところ一度動画を落としてから音だけ抽出して元ファイル消してた。
 

おまけ)
mp4 でも DL したい場合はこれで最高画質選択で mp4 になる。

$ yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best" "https://www.youtube.com/watch?v=AAAAAAAA"

ファイルが大きすぎるから画質を720pでDLしたい場合はheight属性を指定。

$ yt-dlp -f "bestvideo[height=720][ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best" "https://www.youtube.com/watch?v=AAAAAAAA"

さらに、ダウンロードしたファイル名を「タイトル+拡張子」にしたい。あと codec を H.264 にする。

yt-dlp -f "bestvideo[ext=mp4][height<=720][vcodec=h264]+bestaudio[ext=m4a]/best[height<=720]" -o '%(title)s.%(ext)s' "https://www.youtube.com/watch?v=AAAAAAAA"