SuperAPI AI 工具集

yt-dlp-downloader

通用与其它

查看项目

更新于 10-15 16:35

技能介绍

yt-dlp-downloader 是一个视频下载技能,底层使用 yt-dlp 工具,可从数千个网站下载视频。

用途 当用户提供视频 URL 并希望下载时使用该技能。支持的站点包括 YouTube、YouTube Music、Bilibili(B站)、Twitter/X、TikTok、抖音、Vimeo、Twitch 等,完整列表见 https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md。

前置依赖 使用前需确认依赖已安装:

  • 检查 yt-dlp:which yt-dlp || echo "yt-dlp not installed. Install with: pip install yt-dlp"
  • 检查 ffmpeg(音频提取与格式合并所需):which ffmpeg || echo "ffmpeg not installed. Install with: brew install ffmpeg" 如未安装,先安装: pip install yt-dlp brew install ffmpeg # macOS

主要能力与使用方式

  1. 基础下载(最佳画质):yt-dlp -P "~/Downloads/yt-dlp" "VIDEO_URL"
  2. YouTube 下载(推荐带 cookies):YouTube 常以 403 错误阻止直接下载,建议始终使用浏览器 cookies:yt-dlp -P "~/Downloads/yt-dlp" --cookies-from-browser chrome "YOUTUBE_URL"。支持的浏览器:chrome、firefox、safari、edge、brave、opera。
  3. 自定义输出路径:yt-dlp -P "/path/to/save" -o "%(title)s.%(ext)s" "VIDEO_URL"
  4. 仅提取音频(MP3):yt-dlp -P "~/Downloads/yt-dlp" -x --audio-format mp3 "VIDEO_URL"
  5. 下载字幕:yt-dlp -P "~/Downloads/yt-dlp" --write-subs --sub-langs all "VIDEO_URL"
  6. 指定画质:
    • 720p:yt-dlp -P "~/Downloads/yt-dlp" -f "bestvideo[height<=720]+bestaudio/best[height<=720]" "VIDEO_URL"
    • 1080p:yt-dlp -P "~/Downloads/yt-dlp" -f "bestvideo[height<=1080]+bestaudio/best[height<=1080]" "VIDEO_URL"
    • 最佳可用:yt-dlp -P "~/Downloads/yt-dlp" -f "bestvideo+bestaudio/best" "VIDEO_URL"
  7. 下载前列出可用格式:yt-dlp -F "VIDEO_URL",然后按格式 ID 下载:yt-dlp -P "~/Downloads/yt-dlp" -f FORMAT_ID "VIDEO_URL"
  8. 下载播放列表:
    • 整个播放列表:yt-dlp -P "~/Downloads/yt-dlp" -o "%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s" "PLAYLIST_URL"
    • 指定范围(如第 1-5 项):yt-dlp -P "~/Downloads/yt-dlp" -I 1:5 "PLAYLIST_URL"
  9. 附带缩略图:yt-dlp -P "~/Downloads/yt-dlp" --write-thumbnail "VIDEO_URL"

工作流程 当用户提供视频 URL 时:

  1. 识别平台:YouTube/YouTube Music 始终使用 --cookies-from-browser chrome;其他站点先尝试不带 cookies。
  2. 如未指定需求,询问用户:仅下载视频、仅提取音频、需要字幕、还是指定画质。
  3. 根据需求构造命令。
  4. 使用 Shell 工具执行下载,required_permissions: ["all", "network"]。
  5. 处理错误:403 Forbidden 时用 --cookies-from-browser 重试;连接问题 yt-dlp 会自动续传,直接重试;格式不可用时用 -F 列出格式后再选择。
  6. 报告结果:文件位置及任何错误。

示例交互

  • 用户:“帮我下载这个视频 https://www.youtube.com/watch?v=xxx” → 使用 cookies 避免 403:yt-dlp -P "~/Downloads/yt-dlp" --cookies-from-browser chrome "https://www.youtube.com/watch?v=xxx"
  • 用户:“下载这个视频的音频 https://www.bilibili.com/video/xxx” → 提取音频为 MP3:yt-dlp -P "~/Downloads/yt-dlp" -x --audio-format mp3 "https://www.bilibili.com/video/xxx"
  • 用户:“下载这个 Twitter 视频 https://twitter.com/xxx/status/123” → 直接下载通常可行:yt-dlp -P "~/Downloads/yt-dlp" "https://twitter.com/xxx/status/123"

常见错误与解决

  • HTTP 403 Forbidden:YouTube 阻止未认证请求,使用 --cookies-from-browser chrome。
  • Video unavailable:地区限制或私密,使用 cookies 或 VPN。
  • Download interrupted:网络问题,重试即可,yt-dlp 自动续传。
  • Format not available:请求格式不存在,用 -F 列出格式。
  • “yt-dlp: command not found”:pip install yt-dlp。
  • “ffmpeg not found”(音频提取时):brew install ffmpeg # macOS。
  • 下载持续失败:更新 yt-dlp(pip install -U yt-dlp);强制 IPv4(yt-dlp -4 "VIDEO_URL")。

最佳实践

  • YouTube 下载:始终使用 --cookies-from-browser chrome。
  • 大文件:yt-dlp 自动续传,中断后重试即可。
  • 保持 yt-dlp 更新:pip install -U yt-dlp。
  • 不确定时先检查格式:下载前使用 -F。

限制 资料未提供该技能的具体收费、价格、平台兼容性范围、下载速度或成功率等额外信息。使用需自行确保已安装 yt-dlp 与 ffmpeg,并遵守目标网站的服务条款与版权规定。