fascinated with tofu

豆腐に魅せられて

Youtube を mp3 で保存するときのルーティン

はじめに

Emby を使い始めて快適なローカル音楽リスニング環境を手に入れたが、最近は Youtube にしかない音源を聴くことが増えている。Android でバックグラウンド再生するのは不向きで、誤操作ですぐ別の動画や広告を踏んでしまい不便なのでよく聴くものは youdube-dl にて落とすことにした。

準備

youtube-dl のインストール
ffmpeg のインストール
*私の環境は mac
*各種イントール方法は割愛

結論

こんなスクリプトを用意しておいて、実行時のパタメータ($1)としてダウンロードしたい Youtube の URL を指定する。

$ cat dl-youtube.sh 
youtube-dl -f bestvideo+bestaudio --merge-output-format mp4 $1 -o "input-youtube.mp4"
ffmpeg -i input-youtube.mp4 -ab 256k output.mp3
python3 id3-edit-diag.py
rm input-youtube.mp4

解説

以下の4つの作業をつなげて実行している。
1. youdube-dl で最高画質&音質でファイルを mp4 として落とす
2. ffmpeg で mp4 をオーディオビットレート 256k で mp3 に変換する
3. id3 タグの編集をする
4. 中間ファイルを削除する

id3 タグの編集

こちらの記事を参照に自分が検索で使いそうな要素だけ埋め込めるようにした。 output.mp3 というのは ffmpeg で生成したファイルの仮の名前。

Pythonでmp3などのID3タグを編集するmutagenの使い方 | note.nkmk.me

$ cat id3-edit-diag.py 
from mutagen.easyid3 import EasyID3
import os

path = 'output.mp3'
tags = EasyID3(path)
tags['title'] = input('Enter title: ')
tags['artist'] = input('Enter artist: ')
tags.save()

print(tags.pprint())

os.rename('output.mp3', input('Enter new filename: '))

動作イメージ

$ sh dl-youtube.sh "https://www.youtube.com/watch?v=OTvlQRgFZ6k"
(中略)
Enter title:Live Under The Sky '81
Enter artist=Chick Corea, Eddie Gomez, Michael Brecker, Roy Haynes
Enter title=Live Under The Sky '81 Chick Corea July 23 ,1981
Enter new filename: Live-under-the-sky-81.mp3

快適な Emby ライフを✋