今回は2025年1月時点でのPythonによるYouTubeダウンロード方法を紹介します。
以前はpytybe等のパッケージを使っている人もいたかと思うのですが、メインテナンスが行われておらず、YouTubeの仕様変更に伴って使えなくなってしまったので今回はyt-dlpというパッケージを使用します。
あくまでもYouTubeのPythonのダウンロード方法を紹介するもので、実際にダウンロード等を行う場合はYouTubeの利用規定を確認したうえでご自身で行ってください。
GitHub
GitHubのリンクは以下です。
詳細はこちらの記事で解説します。
環境
環境は
となっています。
前準備
今回は以下のpythonパッケージを使います。
ということでインストールします。
python -m pip install ffmpeg-python yt_dlp
また、こちらのyt_dltだとmp4等の使いやすいフォーマットではダウンロードできないのでffmpegを使用してmp4へ変換(エンコード)します。
なので以下のページからffmepgをダウンロードしてPathを通しておく必要があります。
コマンドラインやPowerShell等のターミナル上で
と打って、バージョン情報や使い方が表示されたらPathが問題なく通っています。
使い方
使い方は以下のようにurlとoutput_dirの引数を指定して実行します。
python youtube_download.py --url <YouTubeの動画URL> --output-dir <出力先ディレクトリ>
ソースコード
ソースコードは以下になります。
内容を解説します。
まず、パス操作ではpathlibを使用しています。
Pathlibを使うとLinux/Windows間でのパスの違いを意識しないでもどちらでも使えるので使用しています。
あとは10~15行目でYoutubeの動画をyt_dlpでダウンロードします。
webmというフォーマットで保存されるので、これを21、22行目でffmpegを使用してmp4とmp3に変換しています。
ここのmp4への変換処理が結構重いので、Nvidia系のGPUを積んでいる人であればnvencのエンコーダーを使うと高速化できます。
今回のコードはlibx264というCPUのエンコーダーを使用しています。
出力ディレクトリに過去に出力されたファイルがあると上手く動かないので、そこだけ暇なときに直します。
以上、最新のPythonでのYouTubeダウンロード方法でした。