yt-dlpを使ってyoutubeの動画(音声)をダウンロードする

開発環境

ライブラリのインストール

以下でライブラリのインストールできます

pip install yt-dlp

動画および再生リストのダウンロード

まずは単体の動画のダウンロードです。音声ファイルのみをダウンロードする場合は以下になります

import yt_dlp

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

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

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

次に再生リストを一括で音声ファイルとしてダウンロードしてみます

import yt_dlp

def download_playlist(url, output_path='./%(playlist)s/%(title)s.%(ext)s'):
    ydl_opts = {
        'format': 'bestvideo+bestaudio/best',
        'outtmpl': output_path,
        'ignoreerrors': True,  # エラーが発生しても続行
        'nooverwrites': True,  # 既存のファイルを上書きしない
        'playlist_items': '',  # すべての動画をダウンロード
        'writethumbnail': True,  # サムネイルも保存
    }

    with yt_dlp.YoutubeDL(ydl_opts) as ydl:
        try:
            ydl.download([url])
            print("プレイリストのダウンロードが完了しました。")
        except Exception as e:
            print(f"エラーが発生しました: {str(e)}")

# 使用例
playlist_url = input("YouTubeプレイリストのURLを入力してください: ")
download_playlist(playlist_url)