yt-dlpと逝く、推しの動画全部保存しよう大作戦 第5夜
前回から14日程度空いたらしい、ちょうど2週間
新しいPCと4TBのHDDが来て、ファイルを気軽にアーカイブできるようになったので、推しが急に引退されたらいやなので定期的にアーカイブをとることにしました
ふつうに見る分にはYoutubeから見ようね!!!たくんまお兄さんとのお約束だよ!!
yt-dlpでyoutubeから落そう大作戦
youtube以外からでも落とせるらしいけど俺はやんないのでできなくてもしらないよん
こ↑こ↓からダウンロード、パスは適当に通して
ちょっとまった~~~!!!
デフォルトのエクスプローラーの表示方法だと、大量の動画ファイルや画像ファイル(具体的には日付日時のメタデータがファイルの中に存在する種類のファイル)があるフォルダのクロールがゴミ遅いぞ!!特に大量のファイルがあるフォルダを見ようとすると、5秒ぐらい待たされる、ゴミ!!!!!
https://scrapbox.io/files/6602f1adb1a9140025553e54.png
こう設定を変更すれば普通のフォルダのクロールと同じ速度になる
なんでだよボケナスって話ですが、デフォルトの設定だとファイルごとに日付日時を見に行くようです、バカだね
ただし!(動画ファイルに日付日時のメタデータが含まれている場合)今回のお題であるアーカイブをしたのち、動画を見ようとしたとき、youtubeで動画が作成された日時順じゃなくなるので注意!
このドキュメントの読み方見ればわかるからこれいらない
パスに関しては、いまの場所(./)にファイルが投下されます
落とされるファイルについては
table:情報
ファイルの種類 参考 拡張子
のような形で情報を書いていくよ
コマンドを書いてるところで(日本語)がでてきたらそこは書かれている日本語に応じて書くことを変えてくださいね
以下、1つの動画を保存する場合
最高画質で動画とサムネイルと字幕とチャプターマークと概要欄、存在するならライブ or プレミア公開時のコメントをjsonにて保存
table:情報
動画ファイル 最高画質、サムネイル、字幕、チャプターマーク、後述するメタデータを含んでいる mkv
コメント 後述するが、少し形式がおかしい、ファイル見ればどんな形式だか簡単にわかる json
% yt-dlp -f "bv+ba" --embed-thumbnail --embed-subs --add-metadata (動画のURL)
ちなみに、Youtubeからとってくるのはwebmだが、この形式はサムネイル非対応のようなので再エンコードなしでmkvに梱包してくれる、えらいぞyt-dlp!!!!!!!
以下、プレイリストの動画をすべてダウンロードする場合
動画URLをhttps://www.youtube.com/channel/UC1QpNAV9xNS5P-yAwJLi07AのようなチャンネルURLにすればよい
以下、プレイリストの動画をすべてダウンロードする場合
1つの動画を保存する場合のコマンドをちょっと変えるだけ
以下準備、大事、よめ
プレイリストのURLを取得しよう
https://scrapbox.io/files/6602e29f50b8d800230279fb.png
これで
https://www.youtube.com/playlist?list=PL03qrk3HRGrXUMH93qCbWKne6xdE3h
みたいなのが取得できる、
プレイリストから見てる動画のURL(https://www.youtube.com/watch?v=DcFmphWaH1Q&list=PL9Th28h3ssNu_xD1dF9QutJaD_CycZ5y3みたいなの)を使用してもできるらしい(※未検証)だけど当然確実でないから俺は非推奨するぞ!!!
引数の変え方
1つの動画を保存する場合のコマンドの最後の部分にある
(動画のURL)
を
-P ./ (プレイリストのURL)
にすればよい
例えば、
% yt-dlp -f "bv+ba" --embed-thumbnail --embed-subs --add-metadata (動画のURL)
を
% yt-dlp -f "bv+ba" --embed-thumbnail --embed-subs --add-metadata --embed-chapters -P ./ (プレイリストのURL)
にすればよい
注意
動画ファイルの個数 != プレイリスト
の場合、おそらくエラーが出ている、後述のエラーについての項目を見よう
後述するよ、の一覧
jsonのコメントの形式がおかしいよ~~~
リストのくせに[]でかこまれてない
本物を持ってくるにしてもでかすぎるので、どんな感じにおかしいのかわかるようなダミーファイルをおいとく
code:ダミー.json
{"text":"hogehoge"}
{"text2":"カンマもないね"}
メタデータ
エラーが出た場合
code:error.txt
アンパサンド (&) 文字は許可されていません。& 演算子は、今後使用するために予約されています。アンパサンドを二重引用符で囲み ("&")、文字列の一部として渡してく
ださい。
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : AmpersandNotAllowed
ブラウザのアドレス欄からURLをとってくると、動画ID以外のクエリがついてきてこうなる場合がある、
URLをhttps://www.youtube.com/watch?v=Dd66TBJ-qUAのようにきれいにしよう
A型ではない人は、共有から
https://youtu.be/lQEdugDxUqo?si=ppX_nRUXDUjHRHl4のようなリンクを取得できる、&はありませんね
ちなみに、Twitterでも見るsiという名前のクエリですが、これはリンク共有時の情報が関わっているようです
Twitterではデバイスの種類と番号が対応しています、Youtubeはわかりません、おそらくサーバー側にクエリ値が鍵となるリンク共有主の情報があります、たぶん
ERROR: [youtube] (該当ビデオID): (エラー内容)
これは動画がエラーによってダウンロードできなかった時に出るものだ
この上にあるリンクがダウンロードできなかった動画だ、下にあるリンクじゃないぞ!
パワーシェルなら初期設定でCtrlを押しながらリンクをクリックするとリンクをデフォルトのブラウザで開いてくれる
チャンネルや再生リストからダウンロードしていた際は、ログを検索してみよう
パワーシェルなら初期設定でCtrl + Shift + fで今までのログを検索できる
その方法ではダウンロードできなかったようなので、その動画単体でほかの形式、方法で落としなおしてみよう
、、、疲れた、この記事がほかの人のためになるといいが、、、
https://scrapbox.io/files/6602fd20d2ac920025a52721.png
OSがwindowsになりました
次はCelesteのmodについて書こうかな
次回記事:ngrokではなくlocaltonetで逝く、「お、おい。花映塚対戦しねぇ?花映塚」 第6夜
#ゆめにっき