LoginSignup
5
5

More than 3 years have passed since last update.

GoogleColabからyoutube-dl、最高画質・音質で

Last updated at Posted at 2020-07-21

はじめに

GoogleColaboratoryからyoutube-dlを利用する方法について書きます。
動画と音声を別々でDLします。

なんでColab使うの

GoogleDriveに直接保存するのが簡単だからです。
SSDの小さいPCから実行したかったんです。

コード

youtube-dlインストール

Colabで新規ファイルを作成したら、まずはyoutube-dlをインストールします
"!"を先頭につけることで、コマンドプロンプトと同じコマンドが使えます。

!pip install youtube-dl

このコマンドはColabを開くたびに1度だけ実行しないといけません。

Driveマウント

次にGoogleDriveをマウントします。
このノートブックに自分のDriveを使ってもいいよと許可するイメージです。

ytdlbest.py
from google.colab import drive
drive.mount('/content/drive')

これを実行するとURLを提示されるので、そこにアクセスして色々許可します。
すると文字列が提示されるので、それをコピーしてColabに戻り、コードの下の入力欄に入力すればマウント完了です。

動画(音声なし)のダウンロード

マイドライブ(Driveのトップのフォルダ)の下にprojectsフォルダを作成していることを前提とします。

ytdlbest.py
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フォルダを作成していることを前提とします。

ytdlbest.py
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素晴らしいですね。

実行

ytdlbest.py
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で合成すれば出来ると思います。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5