PythonでYouTube動画をダウンロード:ytdl-nightlyを使った最新の方法
By JoeVu, at: 2025年1月1日21:22
Estimated Reading Time: __READING_TIME__ minutes


以前のブログ記事で、YouTube動画をPythonパッケージpytube
を使用してダウンロードする方法を説明しました。しかし、最近のアップデートにより、pytube
は信頼性が低下し、多くの場合機能しなくなっています。同様に、もう1つの一般的なツールであるyoutube-dl
は3年以上更新されておらず、特にmacOSでは問題が発生しています(issue link)。
幸いにも、新しいフォークであるytdl-nightly
は、YouTubeの動画やプレイリストをダウンロードするための優れたソリューションを提供します。このガイドでは、ytdl-nightly
のセットアップ方法と、プレイリストを含む動画をYouTubeからダウンロードする方法を説明します。
なぜytdl-nightly
を使うのか?
ytdl-nightly
は、youtube-dl
のメンテナンスされ、積極的に更新されているフォークです。古いツールで発生していた多くの問題に対する修正が含まれており、macOSを含むさまざまなプラットフォームでシームレスに動作します。
主な機能:
-
アクティブな開発:頻繁なアップデートにより、絶えず変化するYouTubeのAPIとの互換性が確保されます。
-
プレイリストのサポート:1つのコマンドで、プレイリスト全体をダウンロードできます。
-
シンプルな統合:Pythonとpipとシームレスに動作します。
ytdl-nightly
の始め方
ytdl-nightly
をセットアップしてYouTube動画をダウンロードするには、次の手順に従ってください。
1. ytdl-nightly
のインストール
ytdl-nightly
はPyPIでは利用できないため、リリースページからパッケージを手動でダウンロードしてインストールする必要があります。
インストール手順:
-
ytdl-nightlyリリースから最新のリリースZIPファイルをダウンロードします。
-
ZIPファイルを解凍します。
-
ターミナルを開き、解凍したフォルダに移動します。
-
次のコマンドを実行してパッケージをインストールします。
pip install .
これにより、マシンにytdl-nightly
がグローバルにインストールされます。
2. インストールの確認
インストール後、ytdl-nightly
が正しくインストールされていることを確認します。
python -m ytdl-nightly --version
インストールが成功した場合は、ytdl-nightly
のバージョン番号が表示されます。
動画またはプレイリストのダウンロード
ytdl-nightly
を使用して単一の動画またはプレイリスト全体をダウンロードする方法は次のとおりです。
単一の動画のダウンロード
単一の動画をダウンロードするには、次を実行します。
python -m ytdl-nightly https://www.youtube.com/watch?v=EPo5wWmKEaI
動画は現在のディレクトリにダウンロードされます。
プレイリストのダウンロード
プレイリスト全体をダウンロードするには、プレイリストのURLを使用します。
python -m ytdl-nightly https://www.youtube.com/watch?v=EPo5wWmKEaI&list=PLmIUqzJB87sZ35ayTIjagy9gQuw8ueKQC
このコマンドは、プレイリスト内のすべての動画を順番にダウンロードします。
Pythonスクリプトの例
Pythonでダウンロードプロセスを自動化したい場合は、次のスクリプト例を使用してください。
import subprocess
def download_video(video_url):
try:
subprocess.run([
"python", "-m", "ytdl-nightly", video_url
], check=True)
print(f"Downloaded: {video_url}")
except subprocess.CalledProcessError as e:
print(f"Failed to download {video_url}: {e}")
if __name__ == "__main__":
# 例:単一の動画
video_url = "https://www.youtube.com/watch?v=EPo5wWmKEaI"
download_video(video_url)
# 例:プレイリスト
playlist_url = "https://www.youtube.com/watch?v=EPo5wWmKEaI&list=PLmIUqzJB87sZ35ayTIjagy9gQuw8ueKQC"
download_video(playlist_url)
このスクリプトをdownload_youtube.py
として保存し、ターミナルで実行して動画またはプレイリストをダウンロードします。
結論
ytdl-nightly
パッケージは、YouTubeの動画やプレイリストをダウンロードするための信頼性が高く最新のソリューションを提供し、pytube
やyoutube-dl
などの古いツールの制限を克服します。シンプルなインストールと堅牢なパフォーマンスにより、動画のダウンロードを簡単に自動化したり、個人プロジェクトに使用したりできます。
問題が発生した場合やご提案がある場合は、下記のコメント欄でご共有いただくか、GitHubのytdl-nightly
プロジェクトにご協力ください。