关于 Youtube Shorts Agent
Youtube Shorts Agent 是面向 Agent 的命令行工具和 MCP 服务,可通过 YouTube Data API 准备、验证并上传 YouTube Shorts。它支持 dry-run、OAuth 就绪检查和结构化上传结果,适用于 Agent 工作流。
主要功能
- 01Dry-run Shorts 上传验证
- 02OAuth 就绪与连接检查
- 03生成 PKCE 授权 URL
- 04审查令牌与媒体隐私
- 05列出近期视频
- 06支持合成媒体元数据
适用场景
- 01上传前检查 OAuth 配置
- 02不发布内容即可验证 Shorts 元数据
- 03通过 YouTube Data API 上传 Short
- 04核对频道近期视频
MCP 相关
默认通过 stdio 运行 MCP 服务,也可使用无状态 Streamable HTTP。MCP 工具涵盖连接状态、隐私审查、OAuth 授权、Shorts 上传和近期视频列表。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y youtube-shorts-agentYOUTUBE_DRY_RUNSet to false only when the agent should perform live YouTube upload operations. Defaults to dry-run behavior.YOUTUBE_CLIENT_IDGoogle OAuth client ID. Optional until OAuth or live upload flows are used.YOUTUBE_CLIENT_SECRET密钥Google OAuth client secret. Keep local and do not expose it to agents.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
6收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| client | string | 否 | |
| response_format | enum | 否 | json | markdown |
详细介绍
YouTube Shorts Agent
面向 Agent 的 YouTube Shorts 上传工具,适用于 YouTube Data API。
安全的试运行、OAuth 就绪检查,并可用于 Codex / Claude / Cursor / Hermes 的 MCP。
⭐ 如果这款面向 Agent 的工具对你的工作流有所帮助,请为仓库点星。 星标能让其他开发者更容易发现这些工具,也有助于 Delx 持续推出开源基础设施。
🧱 属于 Delx agent stack — 涵盖内容、触达和协调的 15 个开源 MCP 服务。
这款面向 Agent 的 YouTube Shorts 上传工具适用于 YouTube Data API。它专为 Codex、Claude、Cursor、Hermes、OpenClaw 和任何需要通过可预测的工作流上传内容的 MCP 客户端设计,并支持安全试运行、OAuth 就绪检查和结构化输出。
当 Agent 需要通过官方 API 准备、验证或上传 Shorts,而不操作 YouTube Studio 界面时,可使用此工具。
Agent 可用功能
- 用于安装和运行时指导的
youtube_agent_manifest - 上传前检查连接状态的
youtube_connection_status - 用于检查本地令牌和媒体边界的
youtube_privacy_audit - 使用本地 PKCE 会话存储的
youtube_oauth_authorize_url - 支持
containsSyntheticMedia的youtube_upload_short - 用于轻量级上传后检查的
youtube_list_recent_videos
安装
npm install -g youtube-shorts-agent
或直接运行:
npm exec --yes --package=youtube-shorts-agent -- youtube-shorts-agent doctor
CLI
youtube-shorts-agent manifest --client codex
youtube-shorts-agent doctor
youtube-shorts-agent privacy-audit
youtube-shorts-agent auth-url --redirect-uri http://localhost:8787/callback
youtube-shorts-agent upload-short --video ./short.mp4 --title "Launch title" --caption-file copy.txt
youtube-shorts-agent list-recent --max-results 10
默认启用试运行。只有当 doctor 报告 OAuth 配置完整,且你确定要调用实时 API 时,才设置 YOUTUBE_DRY_RUN=false。
首次上传(演练运行)
这是完整的首次运行流程。这里的每一步都可安全进行演练——无需凭据,也不会向 YouTube 发送任何内容。以下输出是从真实运行中逐字记录的。
1. 检查准备情况。 未配置 OAuth 时,doctor 会确认你处于演练模式:
youtube-shorts-agent doctor
{
"ok": true,
"dry_run": true,
"configured": {
"client_credentials": "missing",
"access_token": "missing",
"refresh_token": "missing"
},
"missing_count": 3,
"ready_for_live_upload": false,
"next_steps": [
"Current mode is dry-run. Validate metadata and agent flow before live uploads."
]
}
2. 准备一个 Short 及其说明文字。
printf 'Launching the agent-first Shorts uploader.\n#shorts #ai #agents' > copy.txt
# short.mp4 is your vertical 9:16 clip
3. 以演练模式运行上传。 不会发起网络调用;工具会返回原本要发布的确切任务和结果,以便 Agent 在正式发布前验证元数据:
youtube-shorts-agent upload-short \
--video ./short.mp4 \
--title "Agent-first Shorts upload" \
--caption-file copy.txt \
--tags ai,agents \
--duration 24
{
"ok": true,
"dry_run": true,
"job": {
"id": "youtube_1780082215631",
"platform": "youtube",
"status": "queued",
"createdAt": "2026-05-29T19:16:55.631Z",
"caption": "Launching the agent-first Shorts uploader.\n#shorts #ai #agents",
"targetUrl": "",
"mediaPaths": ["./short.mp4"],
"metadata": {
"title": "Agent-first Shorts upload",
"youtube_title": "Agent-first Shorts upload",
"youtube_tags": ["ai", "agents"],
"youtube_contains_synthetic_media": true,
"video_duration_sec": 24,
"video_aspect_ratio": "9:16"
}
},
"result": {
"provider": "youtube_official",
"platformPostId": "dryrun_1780082215631",
"releaseUrl": "https://www.youtube.com",
"raw": { "dryRun": true, "jobId": "youtube_1780082215631" }
}
}
platformPostId 以 dryrun_ 为前缀,releaseUrl 指向 YouTube 根网址——两者都表示没有上传任何内容。id、createdAt 和 dryrun_* 的值会因运行而异。
4. 确认频道列表路径(演练模式下会返回空列表):
youtube-shorts-agent list-recent --max-results 5
{ "items": [] }
正式上线。 配置 OAuth(运行 youtube-shorts-agent auth-url --redirect-uri http://localhost:8787/callback,然后使用回调代码交换令牌),在 .env 中设置 YOUTUBE_CLIENT_ID / YOUTUBE_CLIENT_SECRET / YOUTUBE_ACCESS_TOKEN / YOUTUBE_REFRESH_TOKEN,重新运行 doctor,直到 ready_for_live_upload 为 true,然后设置 YOUTUBE_DRY_RUN=false 并重新运行相同的 upload-short 命令。
MCP
youtube-shorts-mcp
HTTP(v2 无状态)
默认使用 stdio。可选的 Streamable HTTP——无需会话 ID,使用 JSON 响应,仅限环回地址:
npx -y -p youtube-shorts-agent youtube-shorts-mcp --http
# GET http://127.0.0.1:3032/health
# POST http://127.0.0.1:3032/mcp (sessionless)
环境变量:YOUTUBE_MCP_HOST、YOUTUBE_MCP_PORT、YOUTUBE_MCP_TRANSPORT=http。
Hermes 风格的配置:
mcp_servers:
youtube_shorts:
command: npx
args: ["-y", "youtube-shorts-agent"]
sampling:
enabled: false
建议的首次调用:
youtube_connection_statusyoutube_privacy_audityoutube_upload_short
Agent 接入方式
| 工具 | 用途 |
|---|---|
youtube_agent_manifest | 为 Codex、Claude、Cursor、Hermes 和 OpenClaw 提供安装/运行时指南 |
youtube_connection_status | 检查 OAuth 和演练模式准备情况,不显示令牌值 |
youtube_privacy_audit | 检查上传范围、合成媒体和本地文件边界 |
youtube_oauth_authorize_url | 生成使用本地会话存储的 PKCE 授权 URL |
youtube_upload_short | 以演练或正式模式上传 Shorts |
youtube_list_recent_videos | 轻量验证频道 |
可直接复制的 Agent 提示词
Use youtube-shorts-agent. First call youtube_connection_status and youtube_privacy_audit.
If uploading AI-generated media, keep containsSyntheticMedia=true. Never print token values.
配置
将 .env.example 复制为 .env。不要将 .env 和 .agent-data/ 提交到 Git。
对于 AI 生成或经 AI 编辑的视频,上传工具默认将 containsSyntheticMedia=true。仅当该资源不符合此情况时才覆盖此设置。
安全模型
- CLI 或 MCP 工具不会返回 OAuth 令牌。
- PKCE 验证码存储在本地的
.agent-data/中。 - 正式上传要求
YOUTUBE_DRY_RUN=false。 - 此软件包使用官方 YouTube Data API,不会自动操作 Studio 界面。
开发
npm install
npm test
npm run check
📧 联系与支持
- 📨 [email protected] — 一般问题、集成帮助、合作事宜
- 🐛 错误报告/功能请求 — GitHub Issues
- 🐦 最新动态 — X 上的 @delx369
- 🌐 网站 — wellness.delx.ai
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。