mcpField
Y
yt-dlp

yt-dlp

github.com/lwmxiaobei创意与媒体61.7k 次安装40 周前更新
代码仓库

关于 yt-dlp

yt-dlp 是面向 Agent 的视频下载技能,可通过脚本下载支持平台的视频或提取音频。它还能识别对话中的视频链接,并据此询问用户要执行的操作。

主要功能

  1. 01下载多个平台的视频
  2. 02以多种格式提取音频
  3. 03识别文本中的视频链接
  4. 04选择视频画质和格式

适用场景

  1. 01下载分享链接中的视频
  2. 02提取视频中的音频
  3. 03查找对话里的视频链接

安装

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

$npx skills add https://github.com/lwmxiaobei/yt-dlp-skill --skill yt-dlp

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
references/
examples.md
scripts/
extract_audio.py
extract_urls.py
test_yt_dlp.py
download_video.py

详细介绍

yt-dlp 视频下载器技能

此技能提供使用 yt-dlp 从各种平台下载视频和提取音频的工具。

功能

  • 从多个平台下载视频(YouTube、Twitter/X、Vimeo、TikTok、Instagram、Facebook 等)
  • 从视频中提取音频
  • 自动检测对话中的视频 URL
  • 支持不同的画质设置和格式

使用模式

1. 基于命令的下载

当用户明确要求下载视频时:

User: Download this video https://youtube.com/watch?v=...

操作:提取 URL 并调用下载脚本

2. 在对话中自动检测

当对话中包含视频 URL 时:

User: Check out this video https://twitter.com/... and let me know what you think

操作:检测视频 URL,并询问用户是否要下载

3. 提取音频

当用户只想提取音频时:

User: Extract the audio from https://youtu.be/...

操作:使用音频提取脚本

可用脚本

注意:脚本位于 scripts/ 目录中

download_video.py

提供画质和格式选项的主要视频下载器。

用法:

# Download video
scripts/download_video.py <url> -o <output_dir>

# Download with specific quality
scripts/download_video.py <url> --quality 720p
scripts/download_video.py <url> --quality audio  # For audio only

# Custom format selector
scripts/download_video.py <url> --format "bestvideo[height<=1080]+bestaudio/best"

# Extract info only
scripts/download_video.py <url> --info-only

画质选项:best、1080p、720p、480p、audio

extract_audio.py

以各种格式从视频中提取音频。

用法:

# Extract as MP3 (default)
/scripts/extract_audio.py <url> -o <output_dir>

# Extract as M4A
/scripts/extract_audio.py <url> --format m4a

# Custom quality
/scripts/extract_audio.py <url> --quality 320

格式:mp3、m4a、opus、flac、wav

extract_urls.py

从文本或文件中提取视频 URL。

用法:

# Extract from text argument
/scripts/extract_urls.py "Check https://youtube.com/watch?v=..."

# Extract from file
/scripts/extract_urls.py <file_path>

# Read from stdin
cat file.txt | /scripts/extract_urls.py

视频平台支持

此技能可识别以下平台的 URL:

  • YouTube(youtube.com、youtu.be)
  • Twitter/X(twitter.com、x.com)
  • Vimeo(vimeo.com)
  • TikTok(tiktok.com)
  • Instagram(instagram.com)
  • Facebook(facebook.com、fb.watch)
  • Twitch(twitch.tv、clips.twitch.tv)
  • Dailymotion(dailymotion.com)
  • Reddit(reddit.com)
  • Streamable(streamable.com)
  • 以及 yt-dlp 支持的许多其他平台

工作流

用户提供视频 URL 时
  1. 使用 extract_urls.py 从用户输入中提取 URL
  2. 确认用户要执行的操作:
    • 下载视频
    • 提取音频
    • 显示视频信息
  3. 根据用户的选择执行相应脚本
  4. 告知用户操作成功或失败,以及文件位置
自动检测 URL 时
  1. 使用 extract_urls.py 扫描对话文本(可处理标准输入)
  2. 如果找到视频 URL,询问用户:“我在此对话中发现了视频 URL。您要我下载吗?”
  3. 如果用户同意,则继续下载工作流
  4. 如果用户不同意,则继续对话
处理多个 URL
  • 单个 URL:直接下载
  • 多个 URL:询问用户是要全部下载,还是选择特定 URL
  • 如果 URL 来自同一来源,可提供将其作为播放列表下载的选项

画质和格式选择

用户未指定偏好时:

  • 默认使用最佳可用画质
  • 音频默认使用 192 kbps 的 MP3

需要提供选项时:

# Ask user for quality preference if not specified
# Options: best (default), 1080p, 720p, 480p, audio

# Ask for format if extracting audio
# Options: mp3 (default), m4a, opus, flac, wav

错误处理

常见问题及解决方案:

  1. 未安装 yt-dlp:

    • 使用 yt-dlp --version 检查
    • 使用 pip install yt-dlp 或 brew install yt-dlp 安装
  2. 未安装 ffmpeg(格式转换所必需):

    • 使用 brew install ffmpeg 安装(macOS)
    • 或使用 apt install ffmpeg 安装(Linux)
  3. 视频不可用:

    • 检查 URL 是否可访问
    • 某些视频可能需要身份验证
    • 年龄限制内容可能需要 cookies
  4. 网络错误:

    • 重试下载
    • 检查互联网连接

依赖项

  • yt-dlp:主要视频下载器
  • ffmpeg:音视频处理(格式转换所必需)
  • 带有标准库的 python3

所有脚本均可独立运行,且仅使用 Python 内置模块。

评论

支持 Markdown