Boring YouTube Publisher
Upload videos and Shorts to YouTube with full metadata support. Powered by Boring.
Security & Data Handling
- - MCP link is a credential: Your MCP Server URL (
https://boring.aiagent-me.com/mcp/t/xxxxx...) contains an embedded authentication token. Treat it like a password — do not share it publicly. - Token scope: The embedded token grants publish access to your connected social media accounts. It can create posts, upload media, and manage scheduled posts on the platforms you have connected. It cannot access your social media passwords or modify account settings.
- Token storage: The token is stored server-side in Boring's database (MongoDB on DigitalOcean). It is never written to your local filesystem. You can regenerate or revoke it anytime at boring.aiagent-me.com/settings.
- Data flow: Analytics queries are sent from Boring's server (Google Cloud, us-central1) to the platform's API on your behalf. Only performance metrics are retrieved — no content is uploaded or modified.
- No local credentials: No local API keys, environment variables, or secrets are needed. All auth is embedded in the MCP link.
- Third-party service: This skill relies on Boring, an open-source social media management tool. Source code: github.com/snoopyrain.
Prerequisites
- 1. Sign up at boring.aiagent-me.com with Google
- Connect YouTube — select the target channel during OAuth
- Get your MCP link: Go to Settings → copy your MCP Server URL (contains your auth token — treat it like a password)
- Add to Claude: Paste the MCP link as a Connector — no install, no API key needed
Workflow
Step 1: List Accounts
Call boring_list_accounts and filter for youtube platform.
Step 2: Prepare Video Content
YouTube requires a video file. Gather from the user:
- - Video file (required): MP4, MOV, AVI, WMV, FLV — up to 12 hours
- Title (required): Max 100 characters
- Description (optional): Up to 5,000 characters
- Tags (optional): Extracted from hashtags in the description
- Thumbnail (optional): JPG/PNG, min 640x360, max 2MB, recommended 1280x720
- Captions (optional): SRT or VTT file
Step 3: Prepare Media URLs
Upload files to get public URLs:
- - Local video:
boring_upload_file with INLINECODE4 - Video URL:
boring_upload_from_url to re-host - Google Drive: Pass directly
The media_urls array follows a specific order:
CODEBLOCK0
Step 4: Format the Text Field
YouTube uses a special text format — title and description are separated by a double newline:
CODEBLOCK1
- - First line before
\n\n = Title (max 100 chars) - Everything after = Description (max 5,000 chars)
- Hashtags in description are automatically extracted as Tags
Step 5: Publish
Call boring_publish_post:
CODEBLOCK2
For YouTube Shorts: Include #shorts in the title or description, and use vertical (9:16) video under 60 seconds.
Step 6: Report
Show:
- - Video ID and YouTube URL
- Upload status (processing may take a few minutes on YouTube's side)
- Default visibility is Public
YouTube-Specific Notes
- - Video required: YouTube only accepts video uploads (no photo posts)
- Title max: 100 characters
- Description max: 5,000 characters
- Thumbnail: JPG/PNG, 1280x720 recommended, max 2MB
- Captions: SRT or VTT format
- Token: 1-hour access token with auto-refresh (refresh token never expires)
- Default visibility: Public
- Processing: After upload, YouTube may take minutes to process the video
- Permissions:
youtube.upload, INLINECODE11
Error Handling
| Error | Solution |
|---|
| INLINECODE12 | YouTube requires a video file |
| INLINECODE13 |
Check video format (MP4 recommended) or file may be corrupted |
|
MediaTooLarge | Video file too large |
|
TextTooLong | Title max 100 chars, description max 5,000 chars |
|
TokenExpired | Rare — refresh token auto-renews. Reconnect if needed |
Examples
Simple video upload:
CODEBLOCK3
Full upload with thumbnail and captions:
CODEBLOCK4
Documentation
Full API docs: boring-doc.aiagent-me.com
技能名称: youtube-video-publisher
详细描述:
Boring YouTube 发布器
上传视频和Shorts到YouTube,支持完整的元数据。由 Boring 提供技术支持。
安全与数据处理
- - MCP链接即凭证:您的MCP服务器URL(https://boring.aiagent-me.com/mcp/t/xxxxx...)包含一个嵌入式身份验证令牌。请像对待密码一样对待它——不要公开分享。
- 令牌范围:嵌入式令牌授予对您已连接社交媒体账户的发布权限。它可以创建帖子、上传媒体以及管理已连接平台上的定时帖子。它无法访问您的社交媒体密码或修改账户设置。
- 令牌存储:令牌存储在Boring的服务器端数据库中(DigitalOcean上的MongoDB)。它永远不会写入您的本地文件系统。您可以随时在 boring.aiagent-me.com/settings 重新生成或撤销它。
- 数据流:分析查询从Boring的服务器(Google Cloud,us-central1)代表您发送到平台的API。仅检索性能指标——不会上传或修改任何内容。
- 无本地凭证:无需本地API密钥、环境变量或密钥。所有身份验证都嵌入在MCP链接中。
- 第三方服务:此技能依赖于 Boring,一个开源社交媒体管理工具。源代码:github.com/snoopyrain。
前提条件
- 1. 注册 boring.aiagent-me.com(使用Google账号)
- 连接YouTube——在OAuth期间选择目标频道
- 获取您的MCP链接:前往设置 → 复制您的MCP服务器URL(包含您的身份验证令牌——请像对待密码一样对待它)
- 添加到Claude:将MCP链接粘贴为连接器——无需安装,无需API密钥
工作流程
步骤1:列出账户
调用 boringlistaccounts 并筛选 youtube 平台。
步骤2:准备视频内容
YouTube需要一个视频文件。从用户处收集:
- - 视频文件(必填):MP4、MOV、AVI、WMV、FLV——最长12小时
- 标题(必填):最多100个字符
- 描述(可选):最多5,000个字符
- 标签(可选):从描述中的话题标签提取
- 缩略图(可选):JPG/PNG格式,最小640x360,最大2MB,推荐1280x720
- 字幕(可选):SRT或VTT文件
步骤3:准备媒体URL
上传文件以获取公开URL:
- - 本地视频:使用 filepath 调用 boringuploadfile
- 视频URL:调用 boringuploadfromurl 重新托管
- Google Drive:直接传递
media_urls 数组遵循特定顺序:
media_urls: [
https://...video.mp4, // [0] 视频文件(必填)
https://...thumbnail.jpg, // [1] 自定义缩略图(可选)
https://...captions.srt // [2] 字幕文件(可选)
]
步骤4:格式化文本字段
YouTube使用一种特殊的文本格式——标题和描述由双换行符分隔:
text: 我的视频标题\n\n这是视频描述。最多5,000个字符。\n\n#标签1 #标签2 #标签3
- - \n\n 之前的第一行 = 标题(最多100个字符)
- 之后的所有内容 = 描述(最多5,000个字符)
- 描述中的话题标签会自动提取为标签
步骤5:发布
调用 boringpublishpost:
boringpublishpost(
accountid=account_id>,
platform=youtube,
text=视频标题\n\n视频描述\n\n#shorts #trending,
media_urls=[https://...video.mp4, https://...thumb.jpg]
)
对于YouTube Shorts:在标题或描述中包含 #shorts,并使用60秒以下的竖屏(9:16)视频。
步骤6:报告
显示:
- - 视频ID和YouTube URL
- 上传状态(YouTube端处理可能需要几分钟)
- 默认可见性为公开
YouTube 特别说明
- - 视频必填:YouTube仅接受视频上传(不支持照片帖子)
- 标题上限:100个字符
- 描述上限:5,000个字符
- 缩略图:JPG/PNG格式,推荐1280x720,最大2MB
- 字幕:SRT或VTT格式
- 令牌:1小时访问令牌,自动刷新(刷新令牌永不过期)
- 默认可见性:公开
- 处理时间:上传后,YouTube可能需要几分钟来处理视频
- 权限:youtube.upload,youtube.readonly
错误处理
| 错误 | 解决方案 |
|---|
| MediaRequired | YouTube需要一个视频文件 |
| VideoProcessingFailed |
检查视频格式(推荐MP4)或文件可能已损坏 |
| MediaTooLarge | 视频文件过大 |
| TextTooLong | 标题最多100个字符,描述最多5,000个字符 |
| TokenExpired | 很少发生——刷新令牌会自动续期。如有需要请重新连接 |
示例
简单视频上传:
boringpublishpost(
account_id=abc,
platform=youtube,
text=我的精彩视频\n\n来看看这个酷炫的内容!,
media_urls=[https://example.com/video.mp4]
)
带缩略图和字幕的完整上传:
boringpublishpost(
account_id=abc,
platform=youtube,
text=教程:如何使用Boring\n\n社交媒体自动化分步指南。\n\n#教程 #自动化 #社交媒体,
media_urls=[
https://example.com/tutorial.mp4,
https://example.com/thumbnail.jpg,
https://example.com/captions.srt
]
)
文档
完整API文档:boring-doc.aiagent-me.com