このシリーズでは、Pythonの様々な活用の方法を紹介しています。
今回は、PythonでYouTube動画を簡単にダウンロードする方法を紹介します。
Google colabを使用して簡単に実装することができますので、ぜひ最後までご覧ください。
Google Colabの使い方はこちら
本記事で紹介するライブラリは違法性はないとのことですが、YouTubeのダウンロードは自己責任でお願いいたします。
今回の目標
・yt-dlpとは
・動画のダウンロード
・音声ファイルのダウンロード
・ダウンロードのオプション
yt-dlpとは
yt-dlpはYou Tubeなどのサイトから動画や音声をダウンロードするためのツールです。
同様のツールとして「youtube-dl」が有名でしたが、現在開発が活発でなくダウンロード速度も低下してきました。
yt-dlpはyoutube-dlの改良版に当たり、youtube-dlよりもダウンロードの速度が速いことが特徴です。
yt-dlpを使うことで、動画だけでなく音声ファイルのみ抽出などの処理も可能です。
公式の実装は以下のリンクからご覧ください。
コード:https://github.com/yt-dlp/yt-dlp
yt-dlpの導入
早速yt-dlpを使用していきましょう。
以下、Google colab環境で進めていきます。
ダウンロードした動画を保存できるよう、Googleドライブをマウントします。
from google.colab import drive
drive.mount('/content/drive')
%cd ./drive/MyDrive
yt-dlpはpipでインストールすることができます。
!python -m pip install -U yt-dlp
以上で導入が完了しました。
動画のダウンロード
まずは動画をダウンロードしましょう。
今回はこの動画を対象にします。
まずは動画のURLを取得しましょう。
上記のYoTubeサイトから動画の「共有ボタン」を押して、リンクをコピーします。
この動画のURLは「https://youtu.be/5wEtefq9VzM」であることがわかりました。
Pythonで実行する
上でコピーしたURLを以下のように指定して実行します。
from yt_dlp import YoutubeDL
# ダウンロード条件を設定する。今回は画質・音質ともに最高の動画をダウンロードする
ydl_opts = {'format': 'best'}
# 動画のURLを指定
with YoutubeDL(ydl_opts) as ydl:
ydl.download(['https://youtu.be/5wEtefq9VzM'])
これで動画をダウンロードすることができました。
画質・音質とも最高の設定の動画となっています。
動画はGoogleドライブに保存されますので、確認してみてください。
コマンドラインから実行する(動画ダウンロード)
先ほどと同様の処理をコマンドラインから実行することも可能です。
!yt-dlp -f best https://youtu.be/5wEtefq9VzM
これを実行することで先ほどと同様に動画をダウンロードすることができます。
プレイリスト内の全ての動画をダウンロードする
プレイリスト内の動画を全てダウンロードする方法を紹介します。
プレイリストによっては動画の数が多く、実行に時間がかかる場合がありますのでご注意ください。
!yt-dlp -f best -v https://youtube.com/playlist?list=PLTzA7a6XdKGarfpzpuSt6ROmffmfDRUmC
これを実行することでプレイリスト内の全ての動画をダウンロードすることができます。
チャンネル内の全ての動画をダウンロードする
次にチャンネル内の動画を全てダウンロードする方法を紹介します。
チャンネルによっては動画の数が多く、実行に時間がかかる場合がありますのでご注意ください。
!yt-dlp -f best -v https://www.youtube.com/channel/UC8_3lTCFxGQISHc7hgf94gw/videos
これを実行することでチャンネル内の全ての動画をダウンロードすることができます。
ダウンロード後のファイル名を指定してダウンロードする
最後に、ダウンロード後のファイル名を指定してダウンロードする方法を紹介します。
-o ファイル名 とすることで、任意のファイル名で動画をダウンロードすることができます。
!yt-dlp -f best -v https://youtu.be/5wEtefq9VzM -o test.mp4
音楽ファイルとしてダウンロードする
今度はYouTube動画から音声のみを音声ファイルとしてダウンロードしてみましょう。
ここでは音声ファイルの拡張子としてmp3としています。
!yt-dlp -x --audio-format mp3 https://youtu.be/5wEtefq9VzM
音楽をmp3ファイルをダウンロードすることができました。
ファイル名を指定したい場合は、動画の際と同様に「-o ファイル名」とします。
!yt-dlp -x --audio-format mp3 https://youtu.be/5wEtefq9VzM -o test.mp3
音声ファイルから文字起こしをする
2022年9月に公開された、音声認識モデルである「Whisper」を使用することで、YouTube動画から文字起こしをすることができます。
字幕の自動作成やニュース動画のテキスト化など、様々な用途で活用が期待されます。
詳細は以下の記事をご覧ください。
まとめ
最後までご覧いただきありがとうございました。
今回はPythonでYouTube動画を簡単にダウンロードする方法を紹介しました。
yt-dlpは簡単に使うことができますが、オプションを活用することで高度な設定も可能となります。
興味がある方はリンク先より公式実装も確認してみてください。