SuperAPI AI 工具集

youtube-video-search

通用与其它

查看项目

更新于 10-16 04:02

技能介绍

用途

youtube-video-search 的核心目标是检索公开的 YouTube 视频,用于主题或领域发现。它通过显式的查询字符串执行搜索,并支持可选的频道过滤与发布时间窗口过滤。检索到的视频可以使用 videos.list 补充元数据与统计数据。技能返回机器可读的 JSON,并可选地保存 JSONL 候选视频产物。执行过程通过结构化日志和可选日志文件保持可观测。

主要能力

  • 使用 search.list 搜索公开 YouTube 视频。
  • 支持基于灵活查询字符串的领域发现,并可附加可选的频道与时间过滤条件。
  • 使用 videos.list 的元数据与统计数据对发现的视频进行 enrichment(补充信息)。
  • 返回机器可读的 JSON,并可选保存 JSONL 候选产物。
  • 通过结构化日志与可选日志文件保持执行可观测。
  • 内置健壮性机制:对瞬时失败进行指数退避重试;遵守 Retry-After,并在其超过配置上限时快速失败;通过最小请求间隔限制请求速率;执行运行安全上限(最大页数、最大结果数、最大 enrichment 视频数);对传输进行校验(JSON 内容类型、UTF-8 解码、JSON 对象解析);对结构进行校验(搜索响应结构、videoId 是否存在及 datetime 字段、详情批次的完整性及重复 ID)。
  • 输出 JSON 结果,同时将操作日志写入 stderr 与可选日志文件。

使用方式

必需环境

通过环境变量配置运行时(参见 references/env.md)。从 assets/config.example.env 开始,并将真实密钥保存在 assets/config.env 中。运行命令前加载环境变量:

set -a
source assets/config.env
set +a

工作流

  1. 校验有效配置:
python3 scripts/youtube_video_search.py check-config --pretty
  1. 先对搜索计划做 dry-run:
python3 scripts/youtube_video_search.py search \
  --query "climate change pollution" \
  --published-after 2026-03-01 \
  --published-before 2026-03-08 \
  --order date \
  --max-pages 2 \
  --max-results 50 \
  --dry-run \
  --pretty
  1. 运行领域搜索并保存候选视频,供下游评论抓取使用:
python3 scripts/youtube_video_search.py search \
  --query "climate change pollution" \
  --published-after 2026-03-01 \
  --published-before 2026-03-08 \
  --order date \
  --max-pages 4 \
  --max-results 120 \
  --comment-count-min 20 \
  --output-dir ./data/youtube-videos \
  --log-level INFO \
  --log-file ./logs/youtube-video-search.log \
  --pretty

OpenClaw 调用兼容性

  • 将触发元数据保留在 name、description 和 agents/openai.yaml 中。
  • 使用 $youtube-video-search 调用。
  • 保持技能原子化:每次调用只执行一个查询。
  • 使用脚本参数设置检索条件(--query、发布时间窗口、频道过滤、上限)。
  • 将其 JSONL 输出通过 --video-ids-file 直接喂给 $youtube-comments-fetch。

OpenClaw 提示模板可直接在 OpenClaw 中使用,只需替换方括号中的占位符。

Recon(查询计划检查)模板:

Use $youtube-video-search.
Run:
python3 scripts/youtube_video_search.py search \
  --query "[QUERY_STRING]" \
  --published-after [YYYY-MM-DDTHH:MM:SSZ] \
  --published-before [YYYY-MM-DDTHH:MM:SSZ] \
  --order date \
  --max-pages [N] \
  --max-results [M] \
  --dry-run \
  --pretty
Return only the JSON result.

Search(候选视频)模板:

Use $youtube-video-search.
Run:
python3 scripts/youtube_video_search.py search \
  --query "[QUERY_STRING]" \
  --published-after [YYYY-MM-DDTHH:MM:SSZ] \
  --published-before [YYYY-MM-DDTHH:MM:SSZ] \
  --order date \
  --max-pages [N] \
  --max-results [M] \
  --comment-count-min [K] \
  --output-dir [OUTPUT_DIR] \
  --pretty
Return only the JSON result.

Chain(为下游评论抓取做准备)模板:

Use $youtube-video-search.
Run:
python3 scripts/youtube_video_search.py search \
  --query "[QUERY_STRING]" \
  --published-after [YYYY-MM-DDTHH:MM:SSZ] \
  --published-before [YYYY-MM-DDTHH:MM:SSZ] \
  --order date \
  --max-pages [N] \
  --max-results [M] \
  --output-dir [OUTPUT_DIR] \
  --pretty
Take artifacts.output_jsonl and pass it to $youtube-comments-fetch as --video-ids-file.
Return JSON plus the artifact path.

范围决策

  • 保持单一原子操作:公开视频发现加上可选的详情 enrichment。
  • 由 OpenClaw 决定查询策略,并通过重复调用来迭代。
  • 不在本技能中嵌入调度/轮询循环或评论抓取。

参考

  • references/env.md
  • references/youtube-search-api-notes.md
  • references/youtube-limitations.md
  • references/openclaw-chaining-templates.md
  • scripts/youtube_video_search.py

适用场景与限制

适用于按主题或领域检索公开 YouTube 视频、按发布时间窗口与频道过滤筛选候选视频、为下游评论抓取准备视频 ID 列表,以及在 OpenClaw 中以多次原子调用组合检索流程。限制方面:单次调用只执行一个查询,不包含调度/轮询循环与评论抓取;具体收费、价格、平台支持范围与效果等事实暂未提供。