Bash

これ見とけば間違いないyoutube-dlコマンドの使い方・オプションの解説 2020年版

youtube-dlのドキュメント3時間位読んだ成果。

以下。(パスやURLなど変えてからコピペでおk)

LC_ALL=en_US.UTF-8 \
youtube-dl -i -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best' -v \
-o "/mnt/e/_videos/_youtube_dl/tmp/%(id)s--%(title)s--%(uploader)s.%(ext)s" \
--cookies /home/data/youtube-dl/cookie.txt --download-archive /home/data/youtube-dl/archive.txt \
--embed-subs --embed-thumbnail --write-info-json --all-subs --sub-format srt \
"https://www.youtube.com/playlist?list=LLIU8R2BxLDNNT52c5iue0Rw"

解説。

# In a case of containing such as Japanese you'd add this line
LC_ALL=en_US.UTF-8 \

youtube-dl -i -f bestaudio -v \

# destination setting up
-o "/mnt/e/_videos/_youtube_dl/%(id)s--%(title)s--%(uploader)s.%(ext)s" \

# Use --cookies option when you'd like to dl for private playlist or videos
--cookies /home/data/youtube-dl/cookie.txt --download-archive /home/data/youtube-dl/archive.txt \

# my favorite opts :-)
# embedding subs if exist ; embedding thums to ; create a json file written infomation of the video ; define subtitle format as
--embed-subs --embed-thumbnail --write-info-json --all-subs --sub-format srt \

# not sure.
# --add-metadata  --convert-subs srt

"https://www.youtube.com/playlist?list=LLIU8R2BxLDNNT52c5iue0Rw"

最高画質・最高音質のmp4で保存

-f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best'

ちょっと複雑ですが、簡単に訳すと、

mp4形式とm4a形式で保存する
    if できなかった(mp4はできたがm4aで出力できなかったなど):
        mp4で保存する
            if できなかった:
                フォーマット形式問わず一番良いやつで保存する(なったことわからないので確証はないですがたぶん動画ファイルになるのでは。)

みたいな感じになります。

出力フォルダを変更

-o

文字コード指定で文字化けを防ぐ

LC_ALL=en_US.UTF-8

これしないとタイトルが文字化け
もちろんexportをbashrcに書いてもいいと思う。

cookieを指定する

--cookies cookie.txt 

プライベートな非公開動画を落としたい場合、プライベートなプレイリスト等の場合、Cookieを指定してやります。

こちらの拡張機能をインストールし、youtubeにアクセスし、開くと、Cookieが一覧されたテキストデータが表示されるので、これを全選択してやる。

cookies.txt – Chrome Web Store

cat > /home/data/youtube-dl/cookie.txtなどでペースト。

youtube-dlに--cookies /home/data/youtube-dl/cookie.txtをつけてやるとCookieを自動で付けて非公開URLにアクセスしてきてくれる。

Liked videoなどによく使用する事が多い。

字幕保存・サムネイル保存・動画情報保存・字幕ファイル保存

--embed-subs --embed-thumbnail --write-info-json --all-subs --sub-format srt 

こちらは好みですが、もし動画が消された時、あーもっと情報ほしかったなぁ…となることがあるので、保存できるものはしておくほうが良いと思います。
--embed-subsは無いほうがいいかもしれなかったですね。各自消してください。

一度ダウンロードした動画をスキップする

--download-archive /home/data/youtube-dl/archive.txt 

一度ダウンロードしたURLはアーカイブに保管して、再度ダウンロードするときにアーカイブにURLがあればスキップする、というものです。
つまり重複ダウンロードを防ぎます。

アーカイブをリセットしたいときは> archive.txt


よかったら。


ydl(){ LC_ALL=en_US.UTF-8 \ youtube-dl -i -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best' -v \ -o "/mnt/e/_videos/_youtube_dl/tmp/%(id)s--%(title)s--%(uploader)s.%(ext)s" \ --cookies /home/data/youtube-dl/cookie.txt --download-archive /home/data/youtube-dl/archive.txt \ --embed-subs --embed-thumbnail --write-info-json --all-subs --sub-format srt \ "$(cuturlquerystr "$1")" } alias ydlarcbak="cp /home/data/youtube-dl/archive.txt /home/data/youtube-dl/archive.txt.$(plaindate).bak"