Main Site ↗

youtube-uploader

by aviz85254GitHub

Upload videos to YouTube with title, description, tags. Use for: youtube upload, publish video, share on youtube.

Unlock Deep Analysis

Use AI to visualize the workflow and generate a realistic output preview for this skill.

Powered by Fastest LLM

Development
Compatible Agents
Claude Code
Claude Code
~/.claude/skills/
Codex CLI
Codex CLI
~/.codex/skills/
Gemini CLI
Gemini CLI
~/.gemini/skills/
O
OpenCode
~/.opencode/skills/
O
OpenClaw
~/.openclaw/skills/
GitHub Copilot
GitHub Copilot
~/.copilot/skills/
Cursor
Cursor
~/.cursor/skills/
W
Windsurf
~/.codeium/windsurf/skills/
C
Cline
~/.cline/skills/
R
Roo Code
~/.roo/skills/
K
Kiro
~/.kiro/skills/
J
Junie
~/.junie/skills/
A
Augment Code
~/.augment/skills/
W
Warp
~/.warp/skills/
G
Goose
~/.config/goose/skills/
SKILL.md

YouTube Uploader

Upload videos with full metadata and custom thumbnails to YouTube via OAuth2.

Setup (one-time)

The user needs a Google Cloud project with the YouTube Data API v3 enabled and an OAuth2 client ID (type "Desktop app"). Download the client_secret.json file.

Authenticate

python3 {baseDir}/scripts/youtube-upload.py auth --client-secret /path/to/client_secret.json

This opens a browser for Google OAuth consent, then saves credentials to ~/.openclaw/youtube/channels.json. Multiple channels can be authenticated by repeating the command with different Google accounts.

List authenticated channels

python3 {baseDir}/scripts/youtube-upload.py channels

Upload a video

python3 {baseDir}/scripts/youtube-upload.py upload \
  --file /path/to/video.mp4 \
  --title "Video Title" \
  --description "Video description" \
  --tags "tag1,tag2,tag3" \
  --category 22 \
  --privacy private \
  --channel-id UCxxxxxxxx

Required: --file, --title Optional: --description, --tags (comma-separated), --category (default 22 = People & Blogs), --privacy (private/unlisted/public, default private), --publish-at (ISO 8601 for scheduled publish, requires privacy=private), --made-for-kids, --channel-id (uses first channel if omitted)

Returns JSON with videoId and url.

Upload a custom thumbnail

python3 {baseDir}/scripts/youtube-upload.py thumbnail \
  --video-id VIDEO_ID \
  --file /path/to/thumbnail.jpg \
  --channel-id UCxxxxxxxx

Supports JPEG, PNG, BMP, GIF. Max 2MB per YouTube API. The channel must be verified for custom thumbnails.

Refresh token manually

python3 {baseDir}/scripts/youtube-upload.py refresh --channel-id UCxxxxxxxx

Workflow tips

  • Always upload as --privacy private first, verify, then update privacy if needed.
  • Upload thumbnail immediately after video upload using the returned videoId.
  • If auth expires, re-run the auth subcommand.
  • When the user doesn't specify a category, default to 22. See references/categories.md for the full list.

References

  • See references/categories.md for YouTube video category IDs.

Source: https://github.com/aviz85/claude-skills-library#plugins-youtube-uploader-skills-youtube-uploader

Content curated from original sources, copyright belongs to authors

Grade B
-AI Score
Best Practices
Checking...
Try this Skill

User Rating

USER RATING

0UP
0DOWN
Loading files...

WORKS WITH

Claude Code
Claude
Codex CLI
Codex
Gemini CLI
Gemini
O
OpenCode
O
OpenClaw
GitHub Copilot
Copilot
Cursor
Cursor
W
Windsurf
C
Cline
R
Roo
K
Kiro
J
Junie
A
Augment
W
Warp
G
Goose