技術の家庭菜園

https://tpcbtw.com/

youtube-dl(yt-dlp)を用いて多言語タイトル動画で日本語のみ表示する

とあるスクリプトを書いてる途中で気付いた備忘録的な小ネタ。

youtube-dlは強力なダウンローダーであるが、当然ながら基本的に英語で全てを読み込もうとする。
特に最近はyoutubeニコニコ動画などでタイトルや動画説明文が英語と日本語(もしくは更に中国語など)で異なることがある。

例えば以下のニコニコ動画にある動画

料理用著作権フリーBGM6(料理以外もOK)
http://www.nicovideo.jp/watch/sm31081926

があったとき、これをyoutube-dlに読ませると

$ youtube-dl -e http://www.nicovideo.jp/watch/sm31081926
Cooking copyright free BGM 6 (other than cooking OK)

と、作者による翻訳済みのタイトルが表示される。
これはHTTPヘッダーに言語の要求ヘッダーを加えることで解決できる。

$ youtube-dl --add-header Accept-Language:ja-JP -e http://www.nicovideo.jp/watch/sm31081926
料理用著作権フリーBGM6(料理以外もOK)

 逆に意図的に英語タイトルを拾いたければ、

$ youtube-dl --add-header Accept-Language:en-US -e http://www.nicovideo.jp/watch/sm31081926
Cooking copyright free BGM 6 (other than cooking OK)

とすれば良い。
まぁあなたが日本人なら--add-header Accept-Language:ja-JPは常に付けておいて問題ないだろう。