#はじめに
GoogleColaboratoryからyoutube-dlを利用する方法について書きます。
動画と音声を別々でDLします。
なんでColab使うの
GoogleDriveに直接保存するのが簡単だからです。
SSDの小さいPCから実行したかったんです。
#コード
###youtube-dlインストール
Colabで新規ファイルを作成したら、まずはyoutube-dlをインストールします
"!"を先頭につけることで、コマンドプロンプトと同じコマンドが使えます。
!pip install youtube-dl
このコマンドはColabを開くたびに1度だけ実行しないといけません。
###Driveマウント
次にGoogleDriveをマウントします。
このノートブックに自分のDriveを使ってもいいよと許可するイメージです。
from google.colab import drive
drive.mount('/content/drive')
これを実行するとURLを提示されるので、そこにアクセスして色々許可します。
すると文字列が提示されるので、それをコピーしてColabに戻り、コードの下の入力欄に入力すればマウント完了です。
###動画(音声なし)のダウンロード
マイドライブ(Driveのトップのフォルダ)の下にprojectsフォルダを作成していることを前提とします。
def videodl(url:str):
vdl_opts = {'outtmpl':'/content/drive/My Drive/projects/%(title)s_video.%(ext)s','format':'bestvideo'}
vdl = youtube_dl.YoutubeDL(vdl_opts)
vdl.extract_info(url,download=True)
youtube-dlのディレクトリ指定は、outtmpl
オプションから行います。
このオプションは保存するファイルの名前を指定するものですが、保存先の指定にも使えます。
更にフォーマットをbestvideo
にすることで、最も画質の高い動画をDLできます。
###音声のダウンロード
マイドライブ(Driveのトップのフォルダ)の下にprojectsフォルダを作成していることを前提とします。
def audiodl(url:str):
adl_opts = {'outtmpl':'/content/drive/My Drive/projects/%(title)s_audio.%(ext)s', 'format':'bestaudio/best'}
adl = youtube_dl.YoutubeDL(adl_opts)
adl.extract_info(url, download=True)
動画の場合と同様です。
本来音声のみのDLはffmpegのインストールが必要なのですが、GoogleColaboratoryにはデフォルトで入っているようなので、このままで通ります。
Colab素晴らしいですね。
###実行
def main():
url = "https://www.youtube.com/watch?v=hogehoge"
videodl(url)
audiodl(url)
print("DL完了")
if __name__ == "__main__":
main()
url =
以下にYoutubeのURLを貼り付けてください。
そしたら実行できます。お疲れさまでした。
#その他
動画と音声をくっつけたいなら、
How to get information from youtube-dl in python ??
https://stackoverflow.com/questions/23727943/how-to-get-information-from-youtube-dl-in-python
このあたりを参考に保存する動画/音声のファイル名を取得して、ffmpegで合成すれば出来ると思います。