Boring YouTube Publisher

v1.0.3

Upload videos and Shorts to YouTube using Boring. Use when the user says 'upload to YouTube', 'publish YouTube video', 'post a YouTube Short', 'upload video...

0· 136· 3 versions· 0 current· 0 all-time· Updated 1mo ago· MIT-0

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 contains an embedded authentication token. Treat it like a password — do not share it publicly. Regenerate anytime in Settings.
  • Media uploads: Video files and thumbnails are uploaded to Boring's Google Cloud Storage to make them accessible for YouTube's API. YouTube requires publicly accessible media URLs for uploads.
  • Data flow: Your video, title, description, and media are sent from Boring's server to YouTube's API on your behalf via your connected OAuth token.
  • No local credentials: No local API keys or environment variables needed. All auth is embedded in the MCP link.

Prerequisites

  1. Sign up at boring.aiagent-me.com with Google
  2. Connect YouTube — select the target channel during OAuth
  3. Get your MCP link: Go to Settings → copy your MCP Server URL (contains your auth token — treat it like a password)
  4. 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 file_path
  • Video URL: boring_upload_from_url to re-host
  • Google Drive: Pass directly

The media_urls array follows a specific order:

media_urls: [
  "https://...video.mp4",           // [0] Video file (required)
  "https://...thumbnail.jpg",       // [1] Custom thumbnail (optional)
  "https://...captions.srt"         // [2] Caption/subtitle file (optional)
]

Step 4: Format the Text Field

YouTube uses a special text format — title and description are separated by a double newline:

text: "My Video Title\n\nThis is the video description. It can be up to 5,000 characters.\n\n#tag1 #tag2 #tag3"
  • 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:

boring_publish_post(
  account_id="<youtube_account_id>",
  platform="youtube",
  text="Video Title\n\nDescription of the video\n\n#shorts #trending",
  media_urls=["https://...video.mp4", "https://...thumb.jpg"]
)

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, youtube.readonly

Error Handling

ErrorSolution
MediaRequiredYouTube requires a video file
VideoProcessingFailedCheck video format (MP4 recommended) or file may be corrupted
MediaTooLargeVideo file too large
TextTooLongTitle max 100 chars, description max 5,000 chars
TokenExpiredRare — refresh token auto-renews. Reconnect if needed

Examples

Simple video upload:

boring_publish_post(
  account_id="abc",
  platform="youtube",
  text="My Amazing Video\n\nCheck out this cool content!",
  media_urls=["https://example.com/video.mp4"]
)

Full upload with thumbnail and captions:

boring_publish_post(
  account_id="abc",
  platform="youtube",
  text="Tutorial: How to Use Boring\n\nStep-by-step guide to social media automation.\n\n#tutorial #automation #socialmedia",
  media_urls=[
    "https://example.com/tutorial.mp4",
    "https://example.com/thumbnail.jpg",
    "https://example.com/captions.srt"
  ]
)

Documentation

Full API docs: boring-doc.aiagent-me.com

Version tags

latestvk97d7bafc90htt5nmpamyqma3183qa4f

Runtime requirements

🎬 Clawdis
ConfigMCP Connector link from boring.aiagent-me.com (contains embedded auth token)