YouTube 媒体助手
任务目标
通过 ServiceHub 提供的 YouTube 接口,统一完成以下自媒体数据与文案处理任务:
- 抓取 YouTube 视频元数据与频道主页视频列表
- 按关键词与过滤条件搜索 YouTube 视频
- 抓取视频顶级评论与评论回复列表
- 提取视频原始 ASR 语音转写文案
- 对视频文案进行 AI 润色整理与核心摘要提取
适用边界
- 适用于已具备 ServiceHub 接口权限与积分账号的环境
- 适用于需要结构化 JSON 数据或自动提炼文案的场景,替代手工浏览网页
- 不负责视频文件本地下载、剪辑或自动发布
- 不负责自动充值积分;若接口提示积分不足,只友好提示用户处理
必要输入
运行前应准备:
- ServiceHub 用户名 (
username) - ServiceHub 密码或 passtoken (
passtoken) - 目标 YouTube 视频链接/ID、频道链接/ID、搜索关键词或评论 ID
> 🔑 账号注册与凭证获取:
> 本技能基于 ServiceHub 数据接口运行。若您尚未拥有账号,请前往官网 https://www.ccailab.top 注册并获取您的用户名与密码(或 passtoken)。
ServiceHub 服务地址固定为:
https://www.ccailab.top
默认不要求用户额外提供服务地址。
支持的凭证来源优先级:
- 命令行参数
--username/--password - 环境变量
YOUTUBE_MEDIA_ASSISTANT_USERNAME/YOUTUBE_MEDIA_ASSISTANT_PASSWORD - 共享环境变量
SERVICEHUB_USERNAME/SERVICEHUB_PASSTOKEN - 本地凭证文件
data/credentials.json
如果用户在对话中提供过凭证,应在命令行传入并追加 --save-credentials 参数自动持久化到 data/credentials.json,后续不要重复追问。
交互原则
本技能对外表现为“单入口对话式技能”。AI 助理负责:
- 从用户自然语言中自动判断意图
- 自动补齐可推断参数,优先使用 0 积分消耗的缓存模式 (
extract) - 在缺少关键参数时主动追问
- 在涉及扣点更新 (
update) 或批量处理前先向用户二次确认 - 最后调用底层脚本并呈现结构化总结与积分明细
不要让用户手动输入子命令或形如 --type、--turns 等参数名。
标准执行流程
- 如需确认接口详细结构,先读取 references/api_spec.md。
- 根据用户请求识别意图分类:
-video:查询单条视频元数据,或频道主页视频列表
-search:搜索相关关键词视频
-comment:获取视频顶级评论
-reply:获取特定评论的回复
-text:提取 ASR 原始文案、LLM 整理稿或 LLM 摘要稿 - 参数缺失时主动追问;需要付费更新 (
update) 时向用户确认。 - 执行底层 CLI 工具:
python scripts/youtube_tool.py <subcommand> [options]
- 读取脚本返回的 JSON,解析核心数据、积分余额 (
bonus_points_balance)、扣点信息 (recent_deducted_points) 和订单号 (trade_order_id)。 - 向用户回显清晰的自然语言摘要与审计明细。
决策规则
1. 意图识别映射
- 视频/频道元数据 (
video): - “这个 YouTube 视频数据怎么样”、“获取视频信息”、“查看频道最新视频”
- 链接包含
youtube.com/watch?v=或youtu.be/:video --url <link> --url-type videourl -
链接包含
youtube.com/@channel或youtube.com/channel/:video --url <link> --url-type homepage -
视频搜索 (
search): - “在 YouTube 上搜索 AI Agent 相关的视频”、“找一些关于 Python 教程的短视频”
-
使用
search --keyword <kw> -
视频评论 (
comment): - “抓取这个 YouTube 视频的评论”、“看看大家怎么评论这个视频”
-
使用
comment --url <link>或comment --id <id> -
评论回复 (
reply): - “获取这条评论下面的回复”、“查看对话展开”
-
使用
reply --comment-id <cid>或reply --id <vid> --comment-id <cid> -
视频文案 (
text): - “提取视频字幕/转写” ->
text --urls <link> --type ori - “整理视频文案/去掉口头禅” ->
text --urls <link> --type arr - “总结这个视频的核心要点/做个摘要” ->
text --urls <link> --type sum
2. 默认值与扣点控制
- 默认优先使用
--type extract模式(读取数据库缓存,0 积分消耗)。 - 仅当用户提到“更新”、“最新数据”、“重新抓取”、“刷新”时,才切换为
--type update。 search默认--turns 1 --order relevance --duration any。comment默认--turns 1 --max-results 50 --order relevance。text接口在用户表达模糊时必须询问明确是ori(原始转写)、arr(整理稿) 还是sum(摘要)。
3. 执行前确认
在以下情况必须先向用户明确说明并获得确认后才可执行:
1. 确定使用 update 模式(会消耗积分)
2. 批量处理超过 3 个视频或翻页数 turns > 2
输出要求
- 结构化总结:先简要说明执行结果(如抓取到的视频标题、播放量、评论条数或文案核心要点)。
- 积分审计:每次执行后附带:
- 扣除积分:recent_deducted_points
- 剩余积分:bonus_points_balance
- 交易单号:trade_order_id - 完整数据:如用户需要,再展开展示 JSON 细节。
校验与回退
- 凭证校验:未检测到有效
username与password时,主动提示用户提供,而不直接运行命令。 - 参数校验:
-video必须包含有效链接或 video_id
-search必须包含关键词
-comment/reply必须提供对应视频或评论标识 - 网络与服务故障:若调用失败,检查网络连接及 ServiceHub 状态,向用户返回可读的错误描述。
- 积分不足:接口返回 402 或积分不足提示时,明确通知用户并停止尝试。
示例
示例 1:提取视频文案摘要
用户说:
> 帮我把这个 YouTube 视频做个要点总结:https://www.youtube.com/watch?v=xQ0okTr0N6o
AI 响应逻辑:
1. 识别意图为 text --type sum
2. 执行命令:python scripts/youtube_tool.py text --urls "https://www.youtube.com/watch?v=xQ0okTr0N6o" --type sum
3. 输出摘要要点并展示积分余额与扣点信息。
示例 2:搜索热门视频
用户说:
> 帮我在 YouTube 上搜下“Sora 2.0”,按播放量排序找 5 个视频
AI 响应逻辑:
1. 识别意图为 search --keyword "Sora 2.0" --order viewCount --turns 1
2. 执行命令:python scripts/youtube_tool.py search --keyword "Sora 2.0" --order viewCount --turns 1
3. 回显搜索到的视频列表。