brew install yt-dlp/taps/yt-dlp

mp4 でダウンロード

yt-dlp --remux-video mp4 'https://www.youtube.com/watch?v=xxxx'

高速にダウンロード

yt-dlp --concurrent-fragments 8 --downloader aria2c 'https://www.youtube.com/watch?v=xxxx'

firefox のクッキーを使って認証を行い mp4 でダウンロード

メン限もダウンロードも可能。

yt-dlp --cookies-from-browser firefox 'https://www.youtube.com/watch?v=xxxx'

mp4 でダウンロードしてトリミング

75秒目から75+3秒目までをトリミング。

yt-dlp --remux-video mp4 --exec 'ffmpeg -ss 75 -i %(filepath)q -t 3 -c copy output.mp4' 'https://www.youtube.com/watch?v=xxxx'

スケジュールされた配信を10秒おきにポーリングして、配信が開始されたらダウンロード開始

yt-dlp --wait-for-video 10 'https://www.youtube.com/watch?v=xxxx'

mp3 でダウンロード

yt-dlp --extract-audio --audio-format mp3 'https://www.youtube.com/watch?v=xxxx'

mp3 でダウンロードしてトリミング

75秒目から75+3秒目までをトリミング。

yt-dlp --extract-audio --audio-format mp3 --exec 'sox %(filepath)q output.mp3 trim 75 3' 'https://www.youtube.com/watch?v=xxxx'

チャットだけ取得

yt-dlp --write-subs --no-download 'https://www.youtube.com/watch?v=xxxx'
cat *.json | jq -s

コメントだけ取得

yt-dlp --write-comment --no-download 'https://www.youtube.com/watch?v=xxxx'
cat *.json | jq -s

良い感じにダウンロード

yt-dlp --cookies-from-browser firefox --wait-for-video 10 --remux-video mp4 --write-info-json --write-subs 'https://www.youtube.com/watch?v=xxxx'

配信のチャットをダウンロードしてスパチャの合計額 (JPYのみ) を集計

yt-dlp --write-subs --no-download 'https://www.youtube.com/watch?v=xxxx'
cat *live_chat.json | jq -s | gron | grep 'purchaseAmountText.simpleText' | sed -E 's/.*= "(.*)".*/\1/g' | sed -E 's/[¥,]//g' | jq -s 'add'

クリップのメタデータを取得

$ yt-dlp -j https://www.youtube.com/clip/xxxx | jq '{start: .section_start, end: .section_end, url: .original_url}'
{
  "start": 20818.6,
  "end": 20833.6,
  "url": "https://www.youtube.com/clip/xxxx"
}

クリップの URL 一覧を取得

open https://www.youtube.com/feed/clips
[...document.querySelectorAll('.yt-simple-endpoint.style-scope.ytd-grid-video-renderer')].map(e => ({link: e.href, title: e.title}))