見出し画像

[改訂版]XやYouTubeの動画を簡単にDLする方法(macOS版yt-dlp利用)

お疲れ様です。藤原です。今日はXに添付された動画やYouTubeの動画を簡単にローカルへダウンロードする方法について書こうと思います。なるべく簡単に書こうと思いますのでしばしお付き合いください。

※申し訳ありませんが本記事はmacOS版限定です。Windowsはここ14年以上使ってないので分かりません。予めご了承ください。


改定に寄せて

実は2023年春頃に似たような記事をUpしています。前回はyoutube-dlを使う例を紹介したのですが、どうやら開発活動がストップしているようでして最新の環境に対応しづらくなっているようで、事実、Xの動画もDLできなくなっています。そこで、今回はyoutube-dlから派生し開発も活発に行われているyt-dlpを利用する方法を紹介します。

想定される利用シーン

誰かが作成したオリジナル動画を、後でまた見返すときの参照用に手許に残しておきたいというような利用ケースを想定しています。

動画のURLをお気に入りに入れることでもこの要件は実現できますが、作者が動画を消してしまったらもう二度と見ることができなくなりますから、安全のためにダウンロードしてローカルに置いておくと結構便利です。オフラインでも見られますしね。

※当然のことですが、yt-dlpでDLした動画を別のプラットフォームに撒いたり、インプレゾンビとしてパクツイに利用したりすることは著作権法やその他の法に触れるので絶対にしないでください。

Homebrewの導入

動画DLに使うソフトウェアとして今回はyt-dlpを利用します。yt-dlpをインストールする前に、それをインストールするためのソフトウェア(Homebrew)をインストールしておくと便利です。既に導入済みの方はこの章は飛ばして、次のステップに進んでOKです。

Homebrewを導入するにはターミナルで次のコマンドを実行してください。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

もしデフォルトでパスが設定されていない場合は、Homebrewが導入された先に対してパスを設定します。以下は僕の場合の例です。

touch ~/.zshrc
open -e ~/.zshrc

開いたファイルに次の行を追加します。

export PATH="/opt/homebrew/bin:$PATH"

追加できたらファイルを保存して閉じ、ターミナルで次のコマンドを実行して変更を適用してください。

source ~/.zshrc

僕のMacの場合は、'/opt/homebrew/bin' にbrewがインストールされたので上記のパス設定になっていますが、違う方は適宜読み替えてください。

yt-dlpの導入

先ほど導入したHomebrewを使ってインストールします。以下のコマンドをターミナルで実行してください。

brew install yt-dlp

前章の手順で brew にパスが通っているので、問題なくインストールできると思います。実行後には正しくインストールされたか以下のコマンドで確認してください。

yt-dlp --version

そして動画をダウンロードするときは以下のコマンドを実行してください。

yt-dlp VIDEO_URL

VIDEO_URLにその動画のURLやXのポストのURLが入ります。注意点としては、YouTubeの場合はURLの中に「?」や「&」が含まれているため、そのまま特殊文字を引数として渡すと解釈がうまくいきません。その場合はURLを「"」か「'」で囲ってください。

品質やDL先の指定

上記のコマンドだと実行したときのカレントに落ちてきてしまうのと、デフォルトの品質で取得してしまうので、そのあたりを明確に指定するには次のようにします。

yt-dlp -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best' -o '~/Downloads/%(title)s.%(ext)s' VIDEO_URL

上記オプションの前半部分では、現在利用可能な最高品質のMP4動画とM4A音声を選択し、それらを単一のファイルにマージするよう指定しています。もし適切な組み合わせが見つからない場合は、最高品質のMP4ファイルが選択されます。

また後半部分のプオションでDL先を指定します。僕はDownloadフォルダをよく使っているのでそのようにしていますが、別の領域にしたい人は適宜読み替えてください。

シェルスクリプト化(任意)

最後に例示したコマンドを毎回打つのは大変なので、オプションの部分がいつも同じなのであれば、僕はURLだけを引数に受け取るシェルスクリプトを作成して使っています。

パスが通っている場所、例えば今回の例では '/opt/homebrew/bin' にシェルスクリプトを作成します。nanoを使う例を以下に示します。

cd /opt/homebrew/bin
nano dlvideo.sh

dlvideo.shの部分は好きなファル名で問題ありません。テキストエディタが開いたら次のスクリプトをコピペしてください。

#!/bin/bash

if [ $# -eq 0 ]; then
  echo "URLを引数として指定してください。"
  exit 1
fi

url="$1"

yt-dlp -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best' -o '~/Downloads/%(title)s.%(ext)s' "$url"

コードを入力し終わったら、ファイルを保存してエディタを閉じます。nanoの場合は、Ctrl + Xを押してからYを押し、Enterを押します。

保存できたら、ターミナルで以下のコマンドを実行して、シェルスクリプトに実行権限を与えます。

chmod +x dlvideo.sh

これで準備完了です。後はこのシェルスクリプトに対して引数で動画のURLを渡せばOKです。YouTubeの時は「"」で囲むのを忘れないでくださいね。

#使用例
dlvideo.sh "https://www.youtube.com/watch?v=yIk3j-UvghQ"

これの良い所は、既にdlvideo.shにパスが通っているので、dlvくらい入力したところでタブキーを押すことで一気に'dlvideo.sh 'まで補完されるところです。

その後、クリップボードにコピーしてある動画URLをペーストするだけになるので、動画ダウンロードの手順としては、

dlv → Tabキー → " → command+p → " → Enter

になるので、かなりスムーズにダウロードまでいけると思います。Xの場合は「"」も必要ないですから、

dlT → Tabキー → command+p → Enter

でダウンロードまで行けます。

おわりに

今回のnoteは僕の環境のケースで記載しましたが、おそらく皆さんも同じなのではないかと思います。参考になれば幸いです。

なお、しつこいようですが冒頭でも記載した通り、yt-dlpでDLした動画を別のプラットフォームに撒いたり、インプレゾンビとしてパクツイに利用したりすることは著作権法やその他の法に触れるので絶対にしないでください。

ルールを守って快適な動画ダウンロードライフをお過ごしいただけると幸いです。

サポート代は大好きなスタートアップへの取材費に充てさせていただきます