SuperAPI AI 工具集

youtube-search

写作与研究

查看项目

更新于 10-20 09:59

技能介绍

用途

该技能通过 yt-dlp 搜索 YouTube 并以 Markdown 或 JSON 形式返回结构化结果,字段包括标题、频道、播放量、时长、上传日期和链接。适合在对话中快速查找视频、比较候选内容,或在选定视频后进一步获取字幕或音频。

主要能力

  • 关键词搜索,默认返回 10 条结果,可调整数量。
  • 筛选与排序:
    • --months N:仅保留最近 N 个月(隐含 --full)。
    • --sort:按 relevance、views 或 date 排序,date 隐含 --full。
    • --min-views:最低播放量。
    • --min-duration / --max-duration:时长上下限(秒)。
    • --channel:按频道名不区分大小写子串匹配。
  • --json:输出干净 JSON,可管道给 jq。
  • --full:逐条访问视频页,补充上传日期、点赞、评论、标签和描述。
  • 获取单条视频详情:yt-dlp "<url>" --dump-json --no-download --no-warnings。
  • 字幕:先 yt-dlp --list-subs "<url>" 检查;有字幕时用 yt-dlp --skip-download --write-subs --write-auto-subs --sub-langs en -P "<dir>" -o "%(id)s.%(ext)s" "<url>" 下载 .vtt。
  • 仅下载音频:yt-dlp -x --audio-format m4a -P "<dir>" -o "%(id)s.%(ext)s" --print after_move:filepath "<url>",将打印的路径交给转写技能。
  • 长视频可按时间段下载:--download-sections "*10:00-25:00"。

使用方式

前置条件:yt-dlp 在 PATH 中。可用 brew install yt-dlp(Homebrew 同时安装 Deno),或 python3 -m pip install -U "yt-dlp[default]"。搜索和元数据可独立使用;下载还需 ffmpeg(用于 -x)以及 JavaScript 运行时(如 Deno)以应对 YouTube 的挑战验证。若下载遇到 challenge 或 “n function” 错误,可参考 EJS 文档。

执行搜索:

uv run "${CLAUDE_SKILL_DIR}/scripts/yt_search.py" "<query>" -n 10 [options]

--full 运行最多可等待 300 秒。若输出 “No results”,可用更宽松的筛选重试一次。需要单条视频更多信息时,运行上面的 --dump-json 命令并取所需字段。若用户要的是视频内容而非链接,则转入字幕或音频获取流程。

模式说明

快速模式只请求一次搜索结果页,几秒内完成,但结果页不含上传日期(Date 列显示 ?)。完整模式逐条访问视频(每条约 3-5 秒,并会多取约 3 倍数量以应对筛选),是按日期筛选或排序的唯一方式。仅在时效性确实重要时使用 --months;对于讲座、教程、基础知识等常青内容,经典视频往往是多年前的。

使用建议

  • --min-duration 600 可过滤 Shorts、片段和宣传片;--min-duration 1800 只保留长视频、访谈和播客。
  • 播放量衡量的是人气而非质量,也应考察频道;会议、大学和作者官方频道通常噪声较少。
  • "<person> <topic>" 会返回该人物的相关视频及其本人内容;要只看其上传,加上 --channel "<exact channel name>"。

适用场景与限制

适用于视频检索、候选比较、元数据查看、字幕获取和音频提取后转写。搜索与元数据不依赖 ffmpeg;下载功能需要 ffmpeg 和 JavaScript 运行时。下载和使用内容时须遵守 YouTube 服务条款与版权规定。工具不提供质量判断或内容摘要,转写依赖外部转写技能;对已下载文件的裁剪、分割或重编码需使用 ffmpeg 相关技能。