メモです

メモです

PythonでYouTubeの動画や音声を保存する

インストール

pip3 install youtube-dl

動画を保存

outtmplでファイル名指定(省略可)

from __future__ import unicode_literals
import youtube_dl

url = 'https://www.youtube.com/watch?v=ANbGAMsEwSg'

ydl_opts = {
     'outtmpl':'hoge',
}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    ydl.download([url])

音声のみを保存

outtmplでファイル名指定(省略可/拡張子必須)

from __future__ import unicode_literals
import youtube_dl

url = 'https://www.youtube.com/watch?v=ANbGAMsEwSg'

ydl_opts = {
    'format': 'bestaudio/best',
    'postprocessors': [{
        'key': 'FFmpegExtractAudio',
        'preferredcodec': 'mp3',
        'preferredquality': '192',
    }],
    'outtmpl':'hoge.mp3',
}

with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    ydl.download([url])

example

・リストで一括ダウンロード
・音声だけを取り出す
・ファイル名は動画のタイトル

from __future__ import unicode_literals
import youtube_dl

url = ['https://youtu.be/TplaQhVNUKk','https://www.youtube.com/watch?v=CBKQoqTI2iE']

ydl_opts = {
    'format': 'bestaudio/best',
    'postprocessors': [{
        'key': 'FFmpegExtractAudio',
        'preferredcodec': 'mp3',
        'preferredquality': '192',
    }],
    'outtmpl':'%(title)s.mp3',
}

with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    ydl.download(url)

exampl2

・動画のタイトルや再生回数などのメタデータだけ取得する
・extract_infoはurlのリストを受け付けないので注意

import youtube_dl

url = 'https://www.youtube.com/watch?v=2tA1rVKv4EE'


ydl_opts = {
    'writeautomaticsub': 'False',
}

with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    res = ydl.extract_info(url, download=False)

print(res['title'])  # タイトル
print(res['view_count'])  # 視聴回数
print(res['automatic_captions']['ja'])  # 自動生成の日本語字幕