以前のブログ記事で、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では利用できないため、リリースページからパッケージを手動でダウンロードしてインストールする必要があります。

インストール手順:

  1. ytdl-nightlyリリースから最新のリリースZIPファイルをダウンロードします。
     

  2. ZIPファイルを解凍します。
     

  3. ターミナルを開き、解凍したフォルダに移動します。
     

  4. 次のコマンドを実行してパッケージをインストールします。

    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プロジェクトにご協力ください。