Wiseflow youtube-upload
Upload a video to YouTube Shorts using the browser. Handles file selection, title/description/tags, visibility settings, and post-upload URL retrieval.
install
source · Clone the upstream repo
git clone https://github.com/TeamWiseFlow/wiseflow
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/TeamWiseFlow/wiseflow "$T" && mkdir -p ~/.claude/skills && cp -r "$T/addons/officials/crew/selfmedia-operator/skills/youtube-upload" ~/.claude/skills/teamwiseflow-wiseflow-youtube-upload && rm -rf "$T"
manifest:
addons/officials/crew/selfmedia-operator/skills/youtube-upload/SKILL.mdsource content
YouTube Upload 技能
Use this skill when:
- A video has been generated (via siliconflow-video-gen or other means) and needs publishing to YouTube
- You need to upload an MP4 to YouTube Shorts with proper metadata
- You need to set the video as unlisted or public
Prerequisites: Browser session must be logged in to YouTube Studio (studio.youtube.com).
Cookie Warmup
Navigate to
https://studio.youtube.com first. Confirm the channel dashboard loads (not a login page).
Workflow: Upload Video
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
Getting the Channel ID
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
Handling Metadata
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
Visibility Guide
| Setting | Use Case |
|---|---|
| Ready to publish immediately |
| Share with specific people via link (no public search) |
| Set a future publish time for optimal reach |
| Save draft, not visible to anyone |
Error Handling
| 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 |
Notes
- YouTube Shorts requires: ≤ 60 seconds duration, 9:16 aspect ratio preferred
outputs compliant 9:16 videos by defaultshorts-compose- After upload, YouTube processes the video (1–5 minutes) before it appears publicly
- Always report the final video URL when done