mcpField
Y
Youtube Shorts Agent

Youtube Shorts Agent

本地服务
github.comAI 与智能体12 周前更新

关于 Youtube Shorts Agent

Youtube Shorts Agent 是面向 Agent 的命令行工具和 MCP 服务,可通过 YouTube Data API 准备、验证并上传 YouTube Shorts。它支持 dry-run、OAuth 就绪检查和结构化上传结果,适用于 Agent 工作流。

主要功能

  1. 01Dry-run Shorts 上传验证
  2. 02OAuth 就绪与连接检查
  3. 03生成 PKCE 授权 URL
  4. 04审查令牌与媒体隐私
  5. 05列出近期视频
  6. 06支持合成媒体元数据

适用场景

  1. 01上传前检查 OAuth 配置
  2. 02不发布内容即可验证 Shorts 元数据
  3. 03通过 YouTube Data API 上传 Short
  4. 04核对频道近期视频

MCP 相关

默认通过 stdio 运行 MCP 服务,也可使用无状态 Streamable HTTP。MCP 工具涵盖连接状态、隐私审查、OAuth 授权、Shorts 上传和近期视频列表。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"youtube-shorts-agent": {
"command": "npx",
"args": [
"-y",
"youtube-shorts-agent"
],
"env": {
"YOUTUBE_DRY_RUN": "<YOUTUBE_DRY_RUN>",
"YOUTUBE_CLIENT_ID": "<YOUTUBE_CLIENT_ID>",
"YOUTUBE_CLIENT_SECRET": "<YOUTUBE_CLIENT_SECRET>"
}
}
}
}
启动命令npx -y youtube-shorts-agent
需要配置的环境变量
YOUTUBE_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmyoutube-shorts-agent0.1.6

工具

6

收录的工具列表 · 更新于 2 周前

参数类型必填说明
clientstring否
response_formatenum否json | markdown

详细介绍

YouTube Shorts Agent

YouTube Shorts Agent
面向 Agent 的 YouTube Shorts 上传工具,适用于 YouTube Data API。
安全的试运行、OAuth 就绪检查,并可用于 Codex / Claude / Cursor / Hermes 的 MCP。

npm 版本 npm 下载量 MIT 许可证 专为 MCP 构建

GitHub 星标 CI 状态 Delx Agent Stack 的一部分 类别

⭐ 如果这款面向 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

建议的首次调用:

  1. youtube_connection_status
  2. youtube_privacy_audit
  3. youtube_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

📧 联系与支持

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。