Awesome-openclaw-skills yt-api-cli
Manage your YouTube account from the command line. Complete CLI for YouTube Data API v3 - list/search videos, upload, manage playlists, and more.
install
source · Clone the upstream repo
git clone https://github.com/sundial-org/awesome-openclaw-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/yt-api-cli" ~/.claude/skills/sundial-org-awesome-openclaw-skills-yt-api-cli && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/yt-api-cli" ~/.openclaw/skills/sundial-org-awesome-openclaw-skills-yt-api-cli && rm -rf "$T"
manifest:
skills/yt-api-cli/SKILL.mdsource content
yt-api-cli
Manage your YouTube account from the terminal. A complete CLI for the YouTube Data API v3.
Installation
# Using go install go install github.com/nerveband/youtube-api-cli/cmd/yt-api@latest # Or download from releases curl -L -o yt-api https://github.com/nerveband/youtube-api-cli/releases/latest/download/yt-api-darwin-arm64 chmod +x yt-api sudo mv yt-api /usr/local/bin/
Setup
1. Google Cloud Console Setup
- Go to Google Cloud Console
- Create/enable YouTube Data API v3
- Create OAuth 2.0 credentials (Desktop app)
- Download client configuration
2. Configure yt-api
mkdir -p ~/.yt-api cat > ~/.yt-api/config.yaml << EOF default_auth: oauth default_output: json oauth: client_id: "YOUR_CLIENT_ID" client_secret: "YOUR_CLIENT_SECRET" EOF
3. Authenticate
yt-api auth login # Opens browser for Google login yt-api auth status # Check auth state
Commands
List Operations
# List your videos yt-api list videos --mine # List channel videos yt-api list videos --channel-id UC_x5XG1OV2P6uZZ5FSM9Ttw # List playlists yt-api list playlists --mine # List subscriptions yt-api list subscriptions --mine
Search
# Basic search yt-api search --query "golang tutorial" # With filters yt-api search --query "music" --type video --duration medium --order viewCount
Upload Operations
# Upload video yt-api upload video ./video.mp4 \ --title "My Video" \ --description "Description here" \ --tags "tag1,tag2" \ --privacy public # Upload thumbnail yt-api upload thumbnail ./thumb.jpg --video-id VIDEO_ID
Playlist Management
# Create playlist yt-api insert playlist --title "My Playlist" --privacy private # Add video to playlist yt-api insert playlist-item --playlist-id PLxxx --video-id VIDxxx
Channel Operations
# Get channel info yt-api list channels --id UCxxx --part snippet,statistics # Update channel description yt-api update channel --id UCxxx --description "New description"
Output Formats
# JSON (default - LLM-friendly) yt-api list videos --mine # Table (human-readable) yt-api list videos --mine -o table # YAML yt-api list videos --mine -o yaml # CSV yt-api list videos --mine -o csv > videos.csv
Global Flags
| Flag | Short | Description |
|---|---|---|
| | Output format: json (default), yaml, csv, table |
| | Suppress stderr messages |
| Path to config file | |
| Auth method: oauth (default), service-account |
Environment Variables
| Variable | Description |
|---|---|
| Auth method: oauth or service-account |
| Default output format |
| OAuth client ID |
| OAuth client secret |
| Path to service account JSON |
Authentication Methods
OAuth 2.0 (Default)
Best for interactive use and accessing your own YouTube account.
yt-api auth login # Opens browser
Service Account
Best for server-side automation.
yt-api --auth-type service-account --credentials ./key.json list videos
Quick Diagnostic Commands
yt-api info # Full system state yt-api info --test-connectivity # Verify API access yt-api info --test-permissions # Check credential capabilities yt-api auth status # Authentication details yt-api version # Version info
Error Handling
Exit codes:
- Success0
- General error1
- Authentication error2
- API error (quota, permissions)3
- Input error4
For LLMs and Automation
- JSON output by default
- Structured errors as JSON objects
mode for parsing--quiet
validates without executing--dry-run- Stdin support for piping data
Notes
- Requires valid Google Cloud credentials with YouTube Data API v3 enabled
- OAuth tokens stored in
(0600 permissions)~/.yt-api/tokens.json - Default output is JSON (LLM-optimized)
- Supports all YouTube Data API v3 resources