LabscoMCP early access ↗
anwerjMCP SERVER

YouTube Uploader MCP

Upload a video to YouTube from Claude, Cursor or VS Code — with the title, description and tags written in the same conversation.

by anwerj ↗Social Media Accounts & PostingCommunity

LABSCO SUMMARY

The upload and the post-upload work are deliberately separate calls.

Uploading sets the video's own details; playlists, thumbnails and captions come afterwards through the second tool, which means a failed thumbnail does not cost you the upload. The scope change around captions is the one gotcha worth handling before your first attempt — an existing token will not carry it, and the failure looks like a permissions bug rather than a stale grant.

What it is

A Go binary that publishes to YouTube from any MCP client. It runs the OAuth2 flow locally, keeps the tokens on your machine, and uploads through the YouTube Data API — the credentials never reach the model.

What you get

  • upload_video — uploads the file and sets title, description, tags, category, optional language, privacy status, made-for-kids flags and a scheduled publish time
  • update_video — the post-upload pass: add the video to a playlist, upload a custom thumbnail, and attach subtitle tracks
  • authenticate and accesstoken — generate the authorization URL, then exchange the code for credentials and channel info
  • channels and refreshtoken — list the authorized channels and force a token refresh, so multiple channels work from one install
  • Metadata written by the assistant, so titles, descriptions and tags come out of the conversation rather than a form

Requirements

A Google Cloud OAuth 2.0 client secret file, which you point the binary at with -client_secret_file. One install command downloads the binary, sets permissions and writes the Claude Desktop entry for you, then prints the config for other clients. Custom thumbnails must be under 2MB. Subtitle upload needs a broader YouTube scope — if you authenticated with an older build, delete the channel cache file and run the authenticate tool again or caption calls fail with 403.

Setup effort

One command — /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/anwerj/youtube-uploader-mcp/master/scripts/install.sh)"