Webエンジニアのメモ帳

技術的な話を中心に書いています。

【pytube】HTTP Error 400: Bad Request のエラーの対処法

short answer

pytubeの代わりにpytubefixを使いましょう。

発生したエラー

pytubeYouTubeの動画をダウンロードしようとしたところ、以下のようなエラーが発生しました。

urllib.error.HTTPError: HTTP Error 400: Bad Request

調べてみると、pytubeはメンテナンスされていないので、pytubefixを使うように、という記事がいくつか見つかりました。

pytubefixの使い方

ドキュメントは以下です。

pypi.org

ここにも使い方を書いておくと、以下のコードで動画がダウンロードできます。

from pytubefix import YouTube
from pytubefix.cli import on_progress
 
url = "{ダウンロードしたい動画のURL}"
 
yt = YouTube(url, on_progress_callback = on_progress)
ys = yt.streams.get_highest_resolution()
ys.download()

備考

このコードを実行するとmp4でダウンロードされますが、YouTubeで見るのと比べて画質が落ちます。

最高画質でダウンロードしたい場合は、以下の記事を参考にwebm形式でダウンロードするのが良いと思います。(mp4への変換についても触れています)

itechblog.hatenablog.com