Youtubeの動画、その辺の謎サイトに頼らんでも普通にDLできるやんけ

おべんきょう

というのを知りました。

趣味で切り抜きをしているポケモンなんだね

趣味で切り抜きをしている者です。

当然ながら切り抜きには元となる動画が必要になるので、Youtubeの動画をその辺のサイトでDLしてみたり、自分のスマンホホでせっせと録画したりしています。

最初はなんとか試行錯誤をしつつ、動画を取得できればそれだけでヤッター!となっていたのですが。

何度もやっていると慣れてきて不満が出てくるものです。

キャッシュされたガビッガビの画質が優先されて途中で低画質になってしまうとか、通知が被ってしまうとか。

というか最近、その手のサイトで露骨に課金の圧を感じることが増えてきたり、DLできても画質が微妙だったりするようになってきまして。

そもそもこういうのってどうやって動画を取得してるんだ?

というのが気になったので調べてみたところ非常に簡単にDLできてしまうことに気付いたので書いておくことにしました。

注意事項

書くまでもないとは思いますが、本記事の内容は悪用せず、利用する場合も自己責任でお願いします。

オフラインで動画を見たいならyoutubeプレミアムに入りましょう。

yt-dlp

youtube-dlというアプリの分家らしいですがいまはこちらが本家になっているようです。

使い方は単純で、インストールしてコマンドを叩くだけ。

そうするとyoutubeの何らかの制限に引っかからない限りは動画を好きな形式でDLできてしまいます。

変なサイトでウィルスまがいの広告に悩まされることも、画質や形式に制限がかかることもありません。

やったね。

インストール方法

macなら簡単で、homebrewするだけです。

brew install yt-dlp

とかそんな感じ。

windowsの場合もここから実行ファイルが落とせるようなので、適当なところに配置したりパスを通したりすれば良さそうです。

先程のサイトにも、インストール方法を解説したREADMEがあります。

使い方

普通にコマンドを叩くだけです。

なんですが、あんまり無法な使い方をしているとyoutubeに目を付けられて弾かれる可能性があるらしいので、適度に速度制限を付けたりして利用するのが良いみたいです。(GPT調べ)

yt-dlp -f bestvideo --limit-rate 1M 'https://youtube.com/watch?v=XXXXXXXXX'

こんな感じで。

--limit-rateを設定することで、DLするにあたって速度制限を自主的に設けて「いえいえ、あっしは普通に動画を視聴してるだけですぜへへへ」という顔をしてDLできるようです。

しらんけど

ちょっと試してみたところ1GBちょいくらいの動画で、18分前後くらいでDLできました。

だいたい計算通りのようです。

品質に関して

ちなみにそこまでの品質が不要な場合は

-f 'bestvideo[height<=720]+bestaudio/best[height<=720]'

とかのオプションを付けておくと720pで落とせたり、

-Fを付けると形式が表示されるので、そのうえで表示された形式から-f XXX+YYYなどと指定することもできるとかどうとか。

見かけたところによると音声のみとか最低画質なんかでもDLできるみたいなので必要なら調べてみると良さそうです。

なんにしても、録画した後に途中で謎の画質落ちが起きていることに気付いて絶望しながら録画し直すみたいなことをやらなくてよくなる(はず)のは非常にありがたいところ。

ちなみに形式は音声と動画で別に保存されることも多いようで、bestvideoだけだと無音になることもあるようです。(1敗)

bestvideo+bestaudio

とやれば音声と動画を取得できるっぽいですね。
確かに最初の例もよく見るとvideoとaudioを指定してます。
最初から良く見てくれ。

動画形式(フォーマット)

で、上記の指定をしたらmvkというフォーマットになりました。

mp4じゃないと使い方わからないぴえんというクソ雑魚なのでフォーマット指定も必要でした。

指定方法は

--merge-output-format mp4

となります。

時間指定について

できるのかなと思って調べたらできるらしいです。
できるんかいとなっています。

--download-sections "*1:23-2:34"

とか付けるとできるらしいです。

カンマで繋げば複数の時間を指定することもできるとか。

これめちゃくちゃ便利かもしれませんね。

巨大な動画ファイルから必要な部分を切り出すのって、それだけでも時間がかかりますし。

ただまあ

これを試行錯誤してる時間があるなら、とりあえず全部落としてそこからなんとかするかぁ……となるような気はしますし、

どっかのサイトでURLを入力するだけでDLできるならそれを選ぶなぁ……という気もしました。
まあ、それができなくなったから調べているんですけども。

アルパカの場合はSE2の128GBをやりくりしている状況なので少しでも素材は削ぎ落としておきたいですし、あんまりPC上で作業しないのではじめから軽い状態であってほしいというのが結構ニーズに合っているので(あと面白そうだしネタになりそうなので)調べているところはあります。

なんにしてもこれで無事に好きな動画を好きな画質で好きな時間帯だけDLできるようになりました。

そろそろブログの引っ越しも落ち着いてきましたし、切り抜きを作るポケモンごっこを再開していけたらなと思います。

おまけ

学んだ呪文を置いておきます。

# 720pで10分から20分まで、ほどほどの速度でmp4としてダウンロード
yt-dlp -f 'bestvideo[height<=720]+bestaudio/best[height<=720]' --download-sections '*10:00-20:00' --merge-output-format mp4 --limit-rate 1M 'https://youtube.com/watch?v=XXXXXXXXX'

もしかするとエラーになるかも

もしかすると上記の呪文で

dquote>

みたいなのが表示されて処理が始まらない可能性があるかもしれません。

dquote、つまりダブルクォートがうまくいってないってことみたいです。

アルパカの場合、なんか上記の呪文を一旦メモに貼り付けてからターミナルに貼り付けたところ、勝手にダブルクォートが別の文字に変換されてしまったためエラーが起きてました。

なんかコマンド実行したらよくわからないエラーが出た図

微妙にダブルクォートの始まりが斜めになってますね。なんでやねん。

直接ターミナルにペーストするか、もういっそクォートにすれば良さそうです。
呪文の方はクォートにしておきました。

おまけ2

配信直後に実行すると、まだDLするファイルが整ってないとかでエラーになることがあるようです。
黒地に赤文字・黄色文字でエラーが出るのでめちゃくちゃビビりますが、ダウンロードしようとしたファイルでエラーが発生しましたと言ってるだけなのでそんな怖がる必要はなさそうでした。

対策としては呪文を変えればよさそうです。
GPT調べにはなりますが(ここまでもそうですが)、

画質・音質をbest

mp4の指定を削除

などをすればいけるかもしれません。
アルパカの場合はいけました。
見たことのない実行途中の表記が出てそれはそれでビビってましたけど。

おまけ3

ダウンロードしたファイルはコマンドを実行したカレントフォルダに配置されます。
(変更するオプションもあるっぽいけど調べてません)

このとき、すでにダウンロードを実行した動画が存在する場合は(別の時間帯を指定したとしても)エラーになるようです。

というか、特にファイル名には時間帯に関する情報が追加されたりはしないので単純にファイル名が重複するんだとは思いますが。

適当にリネームしてあげれば、新たにダウンロードできるようになります。

コメント

タイトルとURLをコピーしました