Upload a video to YouTube Shorts using the browser. Handles file selection, title/description/tags, visibility settings, and post-upload URL retrieval.
Use this skill when:
video-producer (via shorts-compose or t2video) and needs publishing to YouTubePrerequisites: Browser session must be logged in to YouTube Studio (studio.youtube.com).
Navigate to https://studio.youtube.com first. Confirm the channel dashboard loads (not a login page).
1. Navigate to https://www.youtube.com/upload
(Alternative: click the camcorder "Create" icon in YouTube Studio)
2. Wait for the upload dialog to open
3. Find the file input element and provide the video file path:
- Look for the file picker input (hidden input[type=file] inside ytcp-uploads-file-picker)
- Send the absolute file path to the input
4. Wait for upload progress to complete (watch for the progress indicator)
- Large videos may take 1–3 minutes
5. Fill in the Title:
- Click the title field (first text area, id="textbox")
- Clear existing text
- Type the video title from metadata JSON (max 100 characters)
6. Fill in the Description:
- Click the description field (last text area)
- Clear existing text
- Type the description + hashtags from metadata JSON
7. Set "Made for kids":
- Select "No, it's not made for kids" unless explicitly required
8. Click "Next" three times (Details → Video elements → Checks → Visibility)
9. On the Visibility page, set visibility:
- "Public" — for immediate publishing
- "Unlisted" — for draft/review before sharing
- "Scheduled" — to set a publish date/time
10. Click the "Publish" (or "Save") button
11. Wait for confirmation:
- The dialog closes or shows "Your video has been published"
12. Retrieve the video URL:
- Navigate to https://studio.youtube.com/channel/<channel_id>/videos/short
- Find the first video row
- Extract the video URL (format: https://youtube.com/shorts/<video_id>)
- Report the URL to the user
If the channel ID is not known:
1. Navigate to https://studio.youtube.com
2. The URL changes to https://studio.youtube.com/channel/<channel_id>
3. Extract the channel_id from the URL
Use the .json file generated by shorts-compose:
title → YouTube video title (trim to 100 chars)
description → Video description (add tags as #hashtags at the end)
tags → Add as #hashtag1 #hashtag2 at the end of description
Example description format:
AI工具如何改变你的工作方式,本视频介绍了3个高效AI工具...
#AI工具 #效率提升 #科技 #shorts
| Setting | Use Case |
|---|---|
Public | Ready to publish immediately |
Unlisted | Share with specific people via link (no public search) |
Scheduled | Set a future publish time for optimal reach |
Private | Save draft, not visible to anyone |
| Situation | Action |
|---|---|
| Login page appears | Session expired — inform user to re-login |
| File not found | Verify the absolute path in the metadata JSON |
| Upload stuck | Wait up to 5 minutes; check file size (YouTube limit: 256GB, 12 hours) |
| Copyright claim during processing | Report to user — they decide whether to proceed |
| "Video is being processed" (not Shorts) | Video may not meet Shorts criteria (must be ≤60s, 9:16) |
| Title too long | Trim to 100 characters |
shorts-compose outputs compliant 9:16 videos by default