yt-dlp Video Downloader Skill 是一个用于下载视频和提取音频的技能,底层使用 yt-dlp 工具。
一、用途 该技能适用于用户提供视频 URL、要求下载视频,或对话中出现视频链接的场景。可从多个平台下载视频或提取其中的音频。
二、支持的平台 技能可识别以下平台的 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 并调用下载脚本。
- 对话中自动检测:当对话包含视频 URL 时,检测 URL 并询问用户是否要下载。
- 音频提取:当用户只想提取音频时,使用音频提取脚本。
可用脚本位于 scripts/ 目录:
download_video.py:主视频下载器,支持质量和格式选项。 用法:
下载视频
scripts/download_video.py <url> -o <output_dir>
指定质量下载
scripts/download_video.py <url> --quality 720p scripts/download_video.py <url> --quality audio # 仅音频
自定义格式选择器
scripts/download_video.py <url> --format "bestvideo[height<=1080]+bestaudio/best"
仅提取信息
scripts/download_video.py <url> --info-only 质量选项:best、1080p、720p、480p、audio
extract_audio.py:从视频中提取音频,支持多种格式。 用法:
提取为 MP3(默认)
/scripts/extract_audio.py <url> -o <output_dir>
提取为 M4A
/scripts/extract_audio.py <url> --format m4a
自定义质量
/scripts/extract_audio.py <url> --quality 320 格式:mp3、m4a、opus、flac、wav
extract_urls.py:从文本或文件中提取视频 URL。 用法:
从文本参数提取
/scripts/extract_urls.py "Check https://youtube.com/watch?v=..."
从文件提取
/scripts/extract_urls.py <file_path>
从标准输入读取
cat file.txt | /scripts/extract_urls.py
四、工作流程 当用户提供视频 URL 时:
- 使用 extract_urls.py 从用户输入中提取 URL;
- 与用户确认操作:下载视频、提取音频或显示视频信息;
- 根据用户选择执行相应脚本;
- 通知用户成功或失败以及文件位置。
当自动检测 URL 时:
- 使用 extract_urls.py 扫描对话文本(可处理标准输入);
- 若发现视频 URL,询问用户:“I found video URLs in this conversation. Would you like me to download them?”;
- 若同意,进入下载流程;若拒绝,继续对话。
处理多个 URL:
- 单个 URL:直接下载;
- 多个 URL:询问用户是全部下载还是选择特定项;
- 如 URL 来自同一来源,提供按播放列表下载的选项。
质量与格式选择:
- 用户未指定时:默认最佳可用质量;音频默认 MP3 192kbps;
- 需要选项时:质量选项 best(默认)、1080p、720p、480p、audio;音频格式选项 mp3(默认)、m4a、opus、flac、wav。
五、适用场景 适合需要从多个平台保存视频或提取音频的场景,例如保存参考素材、提取音频用于后续处理等。
六、错误处理与依赖 常见问题:
- yt-dlp 未安装:用 yt-dlp --version 检查,安装方式 pip install yt-dlp 或 brew install yt-dlp;
- ffmpeg 未安装(格式转换需要):macOS 用 brew install ffmpeg,Linux 用 apt install ffmpeg;
- 视频不可用:检查 URL 是否可访问,部分视频可能需要认证,年龄限制内容可能需要 cookies;
- 网络错误:重试下载,检查网络连接。
依赖: yt-dlp:主视频下载器; ffmpeg:音频/视频处理(格式转换所需); python3 及标准库。 所有脚本自包含,仅使用 Python 内置模块。
七、限制 部分视频可能受认证或年龄限制,需要 cookies;格式转换依赖 ffmpeg;具体下载成功率受平台和网络影响。