• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

python yt-dlp

date: 2024-08-11 excerpt: python yt-dlpの使い方

tag: pythonyt-dlp


python yt-dlpの使い方

概要

  • youtube-dlのフォーク
  • youtube-dlよりも高速で、多機能
    • 動画のダウンロード以外にもでYouTube上の検索結果を取得することも可能

インストール

$ pipx install yt-dlp

ユースケース別使い方

特定のキーワードで検索

import subprocess
import json
import pandas as pd

result = subprocess.run(['yt-dlp', f'ytsearch10:キーワード', '--print-json', '--skip-download'], 
                        capture_output=True, text=True)
data = [json.loads(line) for line in lines]
df = pd.DataFrame(data)

トレンドの動画の情報を取得

import subprocess
import json

channel_url = "https://www.youtube.com/feed/trending?gl=JP"
result = subprocess.run(['yt-dlp', '-J', '--flat-playlist', channel_url], 
                        capture_output=True, text=True)
data = json.loads(result.stdout)

音声のみをダウンロード

$ yt-dlp -f bestaudio \
       -x --audio-format mp3 \
       --postprocessor-args "-ac 2 -ar 16000" \
       -o "%(title)s.%(ext)s" \
       "https://www.youtube.com/watch?v=<動画ID>"

cookies.txtを使ってダウンロード

  • ブラウザ拡張Get cookies.txt LOCALLYなどで取得したcookies.txtを使うとログインが必要な動画もダウンロードできる
  • cookies.txtはyoutubeにログイン済みのブラウザプロファイルから保存する
$ yt-dlp --cookies cookies.txt \
         -f bestvideo+bestaudio \
         -o "%(title)s.%(ext)s" \
         "https://www.youtube.com/watch?v=<動画ID>"

Pythonからsubprocess.runで呼び出す場合の例

import subprocess

url = "https://www.youtube.com/watch?v=<動画ID>"
subprocess.run(
    [
        "yt-dlp",
        "--cookies", "cookies.txt",
        "-f", "bestvideo+bestaudio",
        "-o", "%(title)s.%(ext)s",
        url,
    ],
    check=True,
)


pythonyt-dlp Share Tweet