Last active
March 10, 2025 15:13
-
-
Save yy-tromb/b06dff563a3f5a8a8d775db47ffcc59d to your computer and use it in GitHub Desktop.
オレオレyt-dlpバッチ
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
yt-dlp --extractor-args "niconico:lang=ja" --extractor-args "youtube:lang=ja" --add-header Accept-Language:ja-JP "%~1" --embed-metadata --embed-thumbnail --merge-output-format mkv -f bv+251 -o "movie\%%(title)s_%%(id)s_%%(release_date,upload_date|Unknown)s_f%%(format_id)s.mkv" -N 8 | |
yt-dlp --extractor-args "niconico:lang=ja" --extractor-args "youtube:lang=ja" --add-header Accept-Language:ja-JP "%~1" --embed-metadata --embed-thumbnail --merge-output-format mkv -f "bv[height = 1080][format_note != Premium]+251" -o "movie\%%(title)s_%%(id)s_%%(release_date,upload_date|Unknown)s_f%%(format_id)s.mkv" -N 8 | |
yt-dlp --extractor-args "niconico:lang=ja" --extractor-args "youtube:lang=ja" --add-header Accept-Language:ja-JP "%~1" --embed-metadata -f 251 -o "opus\%%(title)s_%%(id)s_%%(release_date,upload_date|Unknown)s.mka" -N 8 | |
yt-dlp --extractor-args "niconico:lang=ja" --extractor-args "youtube:lang=ja" --add-header Accept-Language:ja-JP "%~1" -f 140 -o "aac\%%(title)s_%%(id)s_%%(release_date,upload_date|Unknown)s.m4a" -N 8 | |
yt-dlp --extractor-args "niconico:lang=ja" --extractor-args "youtube:lang=ja" --add-header Accept-Language:ja-JP "%~1" --write-thumbnail --skip-download -o "thumb\%%(title)s_%%(id)s_%%(release_date,upload_date|Unknown)s.%%(ext)s" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
使い方
使い方はURLを一つ目の引数として投げるだけ。
movie,opus,aac,thumbフォルダがないとエラーを吐きます
説明
--extractor-args "niconico:lang=ja" --extractor-args "youtube:lang=ja" --add-header Accept-Language:ja-JP
これはタイトルとかを日本語にするためのおまじない。
--embed-metadata, --embed-thumbnail
これはあんまりいろんなファイルにつけすぎてもな...という気分で、メタデータとサムネイルを裁量で付けている。YouTubeのサムネイルはyt-dlpがwebpを埋め込んでしまうので(非標準)、再生しても出てくることはない。早く直して...
-f
フォーマット指定。
一部決め打ちがあるが長い間最高音質はAAC 44.1kHz 128kbpsの140と、Opus 48kHz 128kbpsの251から変わらないので、まあ大丈夫かな?YouTube Music Premiumも契約しないし。
-o "[[各種フォルダ]]\%%(title)s_%%(id)s_%%(release_date,upload_date|Unknown)s_f%%(format_id)s.[[各種ファイル名]]"
出力ファイル名を決めている。
batファイルの影響で%をエスケープするため%は二つありますが目をつぶってもらって。
idは
youtube[.]com/watch?v=%(id)s
とかyoutu[.]be/%(id)s
とかのやつ。release_date
とかupload_date
はない場合があるみたい?format_id
はyt-dlp "URL" -F
したときの一番左の列。YouTubeでは399とか251みたいな番号。ちなみに階層区切りは\にしておくとタイトルによく含まれる/でエラーを吐かない。
-N
これは並列ダウンロードを何スレッドでやるか。パソコンのスレッド数以下にする。私はインターネットが強くないので8ぐらいかな。
動画を二個ダウンロードしている件
HDDには最高品質を、PCには1080pのAV1があればそれで、なければPremium画質じゃないVP9、AVCとフォールバックするためにこうなっている。とはいえ勝手にHDDに移したりはせず、
format_id
で判断できるようにした。最高画質は一行目でダウンロードされる。
最高画質がQHD(1440p)以上だった場合、3行目で1080pのAV1かVP9かAVCがダウンロードされる。
最高画質がFHD(1080p)でPremium画質(VP9)が提供されていた場合、3行目では
[format_note != Premium]
としているのでPremiumのVP9は飛ばされて普通のAV1かVP9かAVCがダウンロードされる。最高画質がFHD(1080p)でPremiumが提供されていない場合、3行目でも同じものをダウンロードしようとするので
format_id
まで含めたファイル名が同じになり、yt-dlp側の機能でダウンロードしたとみなされて飛ばされる。