mcpField
Y
youtube-downloader

youtube-downloader

github.com/jackspace创意与媒体1644 次安装12 周前更新
代码仓库

关于 youtube-downloader

youtube-downloader 是一项基于 yt-dlp 的技能,可从 YouTube 等支持的网站下载视频和音频。它涵盖格式选择、批量下载、字幕、元数据和文件整理。

主要功能

  1. 01下载视频和音频
  2. 02选择格式与画质
  3. 03下载播放列表和频道
  4. 04保存字幕和元数据
  5. 05整理文件并批量下载

适用场景

  1. 01按所需格式保存播放列表
  2. 02从视频提取音频
  3. 03下载课程视频字幕
  4. 04归档频道视频并跳过已下载内容

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jackspace/claudeskillz --skill youtube-downloader

安装后在 Claude Code 中输入/youtube-downloader确认已加载。

附带文件SKILL.json

详细介绍

YouTube 和视频下载器技能

使用 yt-dlp 下载 YouTube 和其他 1000 多个网站的视频和音频。yt-dlp 是功能最强大且仍在积极维护的 YouTube 下载器。

适用场景

在以下情况下使用:

  • 以任意画质下载 YouTube 视频(144p 至 8K、HDR、60fps)
  • 从视频中提取音频(MP3、M4A、FLAC、WAV、Opus)
  • 下载整个播放列表或频道
  • 获取多种语言的视频字幕
  • 下载直播流或首映内容
  • 在内容被删除前将其存档
  • 从 1000 多个网站下载内容(不只是 YouTube)
  • 批量下载多个视频
  • 使用自定义命名和整理方式下载
  • 提取视频元数据和缩略图

支持的网站(1000 多个)

视频平台
  • YouTube(视频、播放列表、频道、Shorts、直播流)
  • Vimeo、Dailymotion、Twitter/X、Facebook
  • TikTok、Instagram(视频、Reels、快拍)
  • Twitch(点播视频、剪辑、直播流)
  • Reddit(v.redd.it 视频)
  • Pornhub(视频)
  • Youporn(视频)
教育平台
  • Coursera、Udemy、Khan Academy
  • edX、Pluralsight、LinkedIn Learning
新闻和媒体
  • CNN、BBC、NBC、CBS
  • ESPN、Sky Sports
以及其他 1000 多个网站……

安装

yt-dlp 需要 Python 3.7+ 和用于格式转换的 ffmpeg:

# Install yt-dlp (if not already installed)
pip install -U yt-dlp

# Install ffmpeg (required for format conversion)
# Ubuntu/Debian:
sudo apt install ffmpeg

# macOS:
brew install ffmpeg

# Verify installation
yt-dlp --version
ffmpeg -version

基本用法

下载最高画质视频
yt-dlp "https://www.youtube.com/watch?v=VIDEO_ID"
下载最高音质的音频(M4A 格式)
yt-dlp -f "bestaudio" "https://www.youtube.com/watch?v=VIDEO_ID"
下载并转换为 MP3
yt-dlp -x --audio-format mp3 --audio-quality 0 "https://www.youtube.com/watch?v=VIDEO_ID"
下载指定画质
# 1080p video with best audio
yt-dlp -f "bestvideo[height<=1080]+bestaudio/best[height<=1080]" "URL"

# 4K video
yt-dlp -f "bestvideo[height<=2160]+bestaudio/best" "URL"

# 720p video
yt-dlp -f "bestvideo[height<=720]+bestaudio/best[height<=720]" "URL"

高级功能

下载整个播放列表
yt-dlp "https://www.youtube.com/playlist?list=PLAYLIST_ID"
下载播放列表指定范围
# Videos 1-10
yt-dlp --playlist-start 1 --playlist-end 10 "PLAYLIST_URL"

# Videos from #5 onwards
yt-dlp --playlist-start 5 "PLAYLIST_URL"
下载频道中的所有视频
yt-dlp "https://www.youtube.com/@ChannelName/videos"
下载字幕
# Download all available subtitles
yt-dlp --write-subs --write-auto-subs --sub-langs "en,es,fr" "URL"

# Download and embed subtitles
yt-dlp --write-subs --embed-subs --sub-langs "en.*" "URL"

# Download only subtitles (no video)
yt-dlp --skip-download --write-subs --write-auto-subs "URL"
自定义命名和整理方式
# Custom filename template
yt-dlp -o "%(uploader)s/%(playlist)s/%(title)s.%(ext)s" "PLAYLIST_URL"

# By date uploaded
yt-dlp -o "%(upload_date)s - %(title)s.%(ext)s" "URL"

# With video ID
yt-dlp -o "%(title)s [%(id)s].%(ext)s" "URL"
下载缩略图
# Download and embed thumbnail
yt-dlp --write-thumbnail --embed-thumbnail "URL"

# Download thumbnail only
yt-dlp --write-thumbnail --skip-download "URL"
下载元数据
# Write metadata to JSON file
yt-dlp --write-info-json "URL"

# Write metadata to description file
yt-dlp --write-description "URL"

画质选择指南

视频画质格式
# Best overall quality (may be WebM)
yt-dlp -f "bestvideo+bestaudio/best" "URL"

# Best MP4 format (most compatible)
yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]" "URL"

# 4K (2160p) maximum
yt-dlp -f "bestvideo[height<=2160]+bestaudio" "URL"

# 1080p maximum
yt-dlp -f "bestvideo[height<=1080]+bestaudio" "URL"

# 720p maximum
yt-dlp -f "bestvideo[height<=720]+bestaudio" "URL"

# 60fps preferred
yt-dlp -f "bestvideo[fps>30]+bestaudio/best" "URL"
音频画质格式
# Best audio quality (extract as M4A)
yt-dlp -f "bestaudio" "URL"

# Extract as MP3 (best quality)
yt-dlp -x --audio-format mp3 --audio-quality 0 "URL"

# Extract as FLAC (lossless)
yt-dlp -x --audio-format flac "URL"

# Extract as Opus (efficient)
yt-dlp -x --audio-format opus "URL"

# Extract as WAV (uncompressed)
yt-dlp -x --audio-format wav "URL"

列出可用格式

下载前,查看有哪些可用格式:

yt-dlp -F "URL"

这会列出所有可用的视频和音频流及其:

  • 格式 ID
  • 扩展名
  • 分辨率
  • FPS
  • 编码格式
  • 文件大小
  • 比特率

然后下载指定格式:

yt-dlp -f FORMAT_ID "URL"

批量下载

从文件下载

创建一个包含 URL 的文本文件(每行一个):

https://www.youtube.com/watch?v=VIDEO1
https://www.youtube.com/watch?v=VIDEO2
https://www.youtube.com/watch?v=VIDEO3

下载全部内容:

yt-dlp -a urls.txt
使用存档记录

记录已下载的视频,避免重复下载:

yt-dlp --download-archive archive.txt "PLAYLIST_URL"

这会创建 archive.txt,其中包含已下载视频的 ID。后续运行时,yt-dlp 会跳过已下载的视频。

筛选和选择

日期筛选
# Videos from 2024
yt-dlp --dateafter 20240101 "CHANNEL_URL"

# Videos before 2023
yt-dlp --datebefore 20230101 "CHANNEL_URL"

# Videos between dates
yt-dlp --dateafter 20230101 --datebefore 20231231 "CHANNEL_URL"
观看次数筛选
# Videos with 1M+ views
yt-dlp --match-filter "view_count > 1000000" "CHANNEL_URL"

# Videos with less than 10K views
yt-dlp --match-filter "view_count < 10000" "CHANNEL_URL"
时长筛选
# Videos longer than 10 minutes
yt-dlp --match-filter "duration > 600" "PLAYLIST_URL"

# Videos shorter than 5 minutes
yt-dlp --match-filter "duration < 300" "PLAYLIST_URL"

直播流

下载直播流
# Wait for stream to start and download
yt-dlp --wait-for-video 60 "LIVE_STREAM_URL"

# Download stream as it's happening (may be incomplete if interrupted)
yt-dlp "LIVE_STREAM_URL"

速率限制和网络选项

# Limit download speed (e.g., 1MB/s)
yt-dlp --limit-rate 1M "URL"

# Set number of retries
yt-dlp --retries 10 "URL"

# Wait between downloads (in seconds)
yt-dlp --sleep-interval 5 "PLAYLIST_URL"

# Use specific proxy
yt-dlp --proxy "http://proxy.server:port" "URL"

# Use cookies from browser (bypass age restrictions)
yt-dlp --cookies-from-browser chrome "URL"

绕过地理限制

# Use proxy
yt-dlp --proxy "socks5://proxy.server:1080" "URL"

# Use specific geo-bypass country
yt-dlp --geo-bypass-country US "URL"

后期处理

视频后期处理
# Merge video and audio to MP4
yt-dlp --merge-output-format mp4 "URL"

# Re-encode to H.264
yt-dlp --recode-video mp4 "URL"

# Add metadata
yt-dlp --add-metadata "URL"

# Embed thumbnail
yt-dlp --embed-thumbnail "URL"
音频后期处理
# Extract audio and convert to MP3
yt-dlp -x --audio-format mp3 --audio-quality 0 "URL"

# Add metadata to audio file
yt-dlp -x --audio-format mp3 --add-metadata "URL"

常见用例

1. 从 YouTube 下载音乐
yt-dlp -x --audio-format mp3 --audio-quality 0 \
  -o "%(artist)s - %(title)s.%(ext)s" \
  --add-metadata \
  --embed-thumbnail \
  "MUSIC_VIDEO_URL"
2. 下载教育课程
yt-dlp -o "%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s" \
  --write-subs --embed-subs \
  --write-info-json \
  "COURSE_PLAYLIST_URL"
3. 存档频道(仅下载新视频)
yt-dlp --download-archive downloaded.txt \
  -o "%(uploader)s/%(upload_date)s - %(title)s.%(ext)s" \
  -f "bestvideo[height<=1080]+bestaudio/best" \
  "https://www.youtube.com/@ChannelName/videos"
4. 将播客下载为音频
yt-dlp -x --audio-format mp3 --audio-quality 0 \
  -o "%(playlist)s/%(playlist_index)s. %(title)s.%(ext)s" \
  --add-metadata \
  "PODCAST_PLAYLIST_URL"
5. 下载会议演讲
yt-dlp -f "bestvideo[height<=720]+bestaudio" \
  -o "Conference/%(title)s.%(ext)s" \
  --write-subs --embed-subs --sub-langs en \
  "CONFERENCE_PLAYLIST_URL"
6. 从多个网站批量下载
# Create urls.txt with mixed URLs (YouTube, Vimeo, etc.)
yt-dlp -a urls.txt \
  -f "bestvideo+bestaudio/best" \
  -o "%(extractor)s/%(uploader)s/%(title)s.%(ext)s"

配置文件

创建 ~/.config/yt-dlp/config 以设置默认选项:

# Default format
-f bestvideo[height<=1080]+bestaudio/best

# Output template
-o ~/Downloads/%(uploader)s/%(title)s.%(ext)s

# Embed metadata
--add-metadata
--embed-thumbnail

# Write subtitles
--write-subs
--sub-langs en

# Continue on errors
--ignore-errors

# Rate limit
--limit-rate 5M

故障排除

视频不可用
# Try with cookies from browser
yt-dlp --cookies-from-browser chrome "URL"

# Update yt-dlp
pip install -U yt-dlp
年龄限制内容
# Use browser cookies
yt-dlp --cookies-from-browser firefox "URL"

# Or login with credentials
yt-dlp --username YOUR_USERNAME --password YOUR_PASSWORD "URL"
格式不可用
# List all formats first
yt-dlp -F "URL"

# Then select specific format
yt-dlp -f FORMAT_ID "URL"
下载速度慢
# Use multiple connections
yt-dlp --concurrent-fragments 4 "URL"

# Or use external downloader
yt-dlp --external-downloader aria2c "URL"

与其他工具集成

FFmpeg 集成

安装 ffmpeg 后,yt-dlp 会自动使用它来:

  • 合并视频和音频流
  • 转换格式
  • 嵌入缩略图和元数据
  • 执行后期处理
使用 Aria2c 加速下载
yt-dlp --external-downloader aria2c \
  --external-downloader-args "-x 16 -s 16 -k 1M" \
  "URL"

法律和道德方面的注意事项

⚠️ 重要提示:

  • 仅下载您有权下载的内容
  • 尊重版权和服务条款
  • 不要传播受版权保护的内容
  • YouTube 的服务条款禁止下载大多数内容
  • 请将其用于个人存档和教育用途
  • 许多创作者提供官方的下载选项
  • 考虑通过官方渠道支持创作者

性能提示

  1. 使用归档文件:跟踪下载内容,避免重复下载
  2. 限制速率:使用 --limit-rate 防止网络拥塞
  3. 并发片段:使用 --concurrent-fragments 4 提高速度
  4. 明智选择格式:质量越低,下载速度越快
  5. 使用外部下载器:aria2c 可能比内置下载器更快
  6. 合理分批:分批处理,而不是一次处理全部内容

更新

保持 yt-dlp 更新,以获得最佳兼容性:

# Update via pip
pip install -U yt-dlp

# Check version
yt-dlp --version

资源


版本:1.0.0 最后更新:2025-11-07 维护者:Claude Code Skills Collection

评论

支持 Markdown