How to upload to YouTube from Claude Code
claude mcp add --transport http postwire https://postwire.io/api/mcp, sign in with your email, connect your YouTube channel once, and ask "upload ./demo.mp4 to YouTube, unlisted". Claude Code writes the title (up to 100 characters), the description and the tags with generate_posts, shows them to you, and uploads the video with post_to_social or schedules it with schedule_post through YouTube's official API. A vertical video of up to 3 minutes shows as a Short. You create no Google Cloud project, OAuth client or quota request, and the free plan covers it: 1 business, 20 posts a month, 5 AI drafts a day, 2 networks per post, no card.The same works without the MCP server: npx skills add https://postwire.io --skill youtube-upload installs PostWire's YouTube skill, which calls the REST API with your key. Either way Claude Code never sees your Google password, and a scheduled upload goes out from PostWire's servers with your terminal closed.
Updated . Written from PostWire's own code; vendor prices read on Oct 16, 2026. Live networks: TikTok, Instagram, YouTube, LinkedIn (personal profiles), Facebook Pages, Bluesky, Mastodon, Telegram, Discord, and X on paid plans.
Set it up and upload, step by step
Prompt to copy once YouTube is connected: Write a YouTube title and description for ./videos/v2-demo.mp4 from README.md, show them to me with the title length, and upload it unlisted.
- Add PostWire to Claude Code
In your terminal run
claude mcp add --transport http postwire https://postwire.io/api/mcp(add--scope userto have it in every project), then type/mcpin Claude Code and pick postwire to sign in. The sign-in asks for your email and a 6-digit code, which also creates a free PostWire account if you have none: no password and no card. - Or install the YouTube skill instead
npx skills add https://postwire.io --skill youtube-uploadadds the skill to Claude Code (and to the other agents on the machine). It uses your key from the environment: copy it in the dashboard under API & MCP and setPOSTWIRE_API_KEY. The skill is a plain file you can read first: youtube-upload/SKILL.md. - Connect your YouTube channel
Ask "connect my YouTube". Claude Code calls
create_connect_linkand prints a link; open it, sign in on Google's own page and pick the channel. You do this once per channel. - Give it the video
Give Claude Code a public https link to an MP4 or MOV file. A file on your computer goes through an upload page: ask for one (
create_upload_link), pick the file there, and Claude Code gets its link. One file can be up to 100 MB on the free plan and 1 GB on paid plans. Large files are sent to YouTube with its resumable upload, so a slow connection does not start over. No video yet?make_video_from_textturns a few lines into an 8-12 second vertical MP4 (1080×1920), which YouTube shows as a Short. - Ask for the title, description and tags
"Write the title and description."
generate_postsreturns a draft and publishes nothing: a title with the words people search in its first 40 characters (YouTube takes up to 100), a description whose first lines repeat the promise, 3-5 hashtags, and 5-8 tags. Then say who can see it: public, unlisted (only people with the link) or private. - Upload now, or schedule it
Say "upload it" and Claude Code calls
post_to_social; the result carries the video's link. Say "schedule it for Tuesday at 10" and it callsschedule_post, up to 365 days ahead, or withrun_at: "next_slot"for your next free posting hour. This is the call:{ "name": "schedule_post", "arguments": { "platforms": ["youtube"], "per_platform": { "youtube": { "title": "PostWire v2 in 90 seconds: schedule to 10 networks from one request", "text": "Schedule one post to 10 networks from a single request.\n\nIn this demo: …\n\n#devtools #api #automation", "tags": ["social media api", "schedule posts api", "youtube upload api"] } }, "video_url": "https://example.com/videos/v2-demo.mp4", "privacy": "public", "run_at": "2026-10-20T10:00:00-05:00" } }
"What's scheduled on YouTube?" calls list_scheduled_posts and "cancel Tuesday's upload" calls cancel_scheduled_post; the same queue is on the dashboard's Queue page. Prefer to set it up by hand first? Open the dashboard, connect the account under Accounts and copy your key under API & MCP.
Ways to upload to YouTube from Claude Code, side by side
How each service plugs into Claude Code and what it costs to start, read on its own Claude Code and pricing pages on Oct 16, 2026.
| Service | How it plugs into Claude Code | Sign-in | Free to start | Cheapest paid plan | Writes title, description and tags |
|---|---|---|---|---|---|
| PostWire | claude mcp add with https://postwire.io/api/mcp, or the youtube-upload skill | OAuth (email and a 6-digit code) or API key | Free plan: 1 business, 20 posts a month, 5 AI drafts a day, 2 networks per post, no card | $9/mo — 3 businesses, every network in each post | Yes — generate_posts writes the title, description and 5-8 tags |
| Postiz | claude mcp add with mcp.postiz.com/mcp-oauth-dynamic, or the Postiz skill | OAuth (MCP) or POSTIZ_API_KEY (skill) | 7-day free trial | $29/mo — 5 channels | Not listed |
| Upload-Post | npx skills add Upload-Post/upload-post-skill | API key | Free plan: 10 uploads a month | $24/mo — 5 profiles | Not listed |
Checked on Oct 16, 2026 (2026-10-16) on each vendor's own pricing or docs page, linked in the first column and below. Monthly billing in USD unless noted. "Not listed" means we could not find it on their page, not that it is missing.
Where PostWire is ahead
- The title and tags are written for search:
generate_postsputs the searched words in the first 40 characters of the title and writes the description and 5-8 tags, plus the TikTok and Reels captions from the same idea. - 20 posts a month on the free plan, without a card and without a time limit. Postiz starts with a 7-day trial, and Upload-Post's free plan has 10 uploads a month.
- The cheapest paid plan here: $9 a month for 3 businesses. Upload-Post $24, Postiz $29.
- A Short from a few lines:
make_video_from_textmakes an 8-12 second vertical MP4 to upload when there is no video yet. - Both doors, one account: the MCP server for a chat, the
youtube-uploadskill or the REST API for a script, with the same queue and the same connected channel. - A person approves what Claude Code queued: on paid plans, approval rules hold the upload until you approve it from an emailed link.
- Postiz — Upload to YouTube from Claude Code (claude mcp add … https://mcp.postiz.com/mcp-oauth-dynamic, or the Postiz skill with POSTIZ_API_KEY): postiz.com/claude-code/youtube
- Postiz pricing ("Start with a 7-day free trial"; Standard $29 a month, 5 channels): postiz.com/pricing
- Upload-Post — YouTube skill for Claude Code (npx skills add Upload-Post/upload-post-skill; free API key, no card): www.upload-post.com/skills/claude-code/youtube/
- Upload-Post plans (llms-full.txt: Free 10 uploads a month, "platforms without TikTok"; Basic $24 a month, 5 profiles): www.upload-post.com/llms-full.txt
Why upload to YouTube from Claude Code
- The title comes from what the video shows: Claude Code reads the README, the changelog or the script in your repo and writes a title and description with the words people search for.
- One video, three feeds: "upload this to YouTube as a Short and post it to TikTok" sends the same file to both, each with its own text. On the free plan one post reaches 2 networks; paid plans (from $9 a month) add Instagram Reels and the rest in the same request.
- Scripts:
claude -p "upload ./videos/release.mp4 to YouTube, unlisted, title and description from CHANGELOG.md" --allowedTools "mcp__postwire__*"runs it from a release script. - A person can have the last word: on paid plans, a brand's approval rules hold what Claude Code queues until you approve it from an emailed link.
Source: PostWire's MCP server, YouTube integration and plans, read Oct 16, 2026.
YouTube's rules Claude Code works within
- Title up to 100 characters, description up to 5,000; each tag up to 100.
- A Short or a regular video: YouTube shows a vertical video of up to 3 minutes as a Short, anything else as a regular video. PostWire uploads video only; YouTube takes no text or photo posts this way.
- Public, unlisted or private, chosen for each upload.
- Through YouTube's official Data API and the access you grant on Google's own page. No browser automation and no password.
What it does not do
PostWire does not edit or cut the video, does not add videos to playlists, and does not read or answer comments. It does not post YouTube community posts. For a Short from a long video, cut the clip first and give Claude Code the finished file.
Questions people ask
Can Claude Code upload to YouTube?
Yes, with an MCP server or a skill. Claude Code has no YouTube access of its own; with PostWire added (claude mcp add --transport http postwire https://postwire.io/api/mcp) and your channel connected once, it writes the title and description, uploads and schedules videos and Shorts when you ask.
Do I need a Google Cloud project or YouTube API quota?
No. PostWire's own Google app does the uploading: you sign in on Google's page and pick the channel. No OAuth client to build, no API key from Google and no quota request.
How do I upload a YouTube Short from Claude Code?
Give it a vertical video of up to 3 minutes and ask for a Short. YouTube decides what shows as a Short from the video itself: vertical and 3 minutes or less. #Shorts in the description is optional.
Can Claude Code schedule YouTube uploads?
Yes. It calls schedule_post with a time up to 365 days ahead, or "next_slot" for your next free posting hour, and PostWire uploads the video at that time with Claude Code closed. The free plan keeps 3 posts waiting at once; paid plans have no such limit.
How big can the video be?
Up to 100 MB per file on the free plan and 1 GB on paid plans. A file on your computer goes through an upload page that Claude Code asks for; a file at a public https link is fetched directly.
Can it post the same video to TikTok and Instagram Reels?
Yes, in the same request, each with its own caption. On the free plan one post goes to 2 networks (for example YouTube and TikTok); paid plans send it to all of them at once.
How much does it cost?
The free plan includes YouTube, the MCP server and the skill: 1 business, 20 posts a month, 5 AI drafts a day, 2 networks per post, no card. Starter is $9 a month for 3 businesses and Pro $29 for 10, with every network in each post; paid plans have a 14-day refund.
Try it on one business, free.
The free plan is 1 business, 20 posts a month, 5 AI drafts a day (about 20 a month) and 2 networks per post — every network connects free, no card, no time limit. Paid plans start at $9 a month and have a 14-day refund; Pro can be tried free for 7 days and Agency for 14, with a card at checkout and nothing charged that day.