skills$openclaw/yt-api-cli
nerveband5.2k

by nerveband

yt-api-cli – OpenClaw Skill

yt-api-cli is an OpenClaw Skills integration for security workflows. Manage your YouTube account from the command line. Complete CLI for YouTube Data API v3 - list/search videos, upload, manage playlists, and more.

5.2k stars1.3k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026security

Skill Snapshot

nameyt-api-cli
descriptionManage your YouTube account from the command line. Complete CLI for YouTube Data API v3 - list/search videos, upload, manage playlists, and more. OpenClaw Skills integration.
ownernerveband
repositorynerveband/yt-api-cli
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @nerveband/yt-api-cli
last updatedFeb 7, 2026

Maintainer

nerveband

nerveband

Maintains yt-api-cli in the OpenClaw Skills directory.

View GitHub profile
File Explorer
2 files
.
_meta.json
280 B
SKILL.md
4.5 KB
SKILL.md

name: yt-api-cli description: Manage your YouTube account from the command line. Complete CLI for YouTube Data API v3 - list/search videos, upload, manage playlists, and more. metadata: {"clawdbot":{"emoji":"▶️","os":["darwin","linux"],"requires":{"env":["YT_API_AUTH_TYPE", "YT_API_CLIENT_ID", "YT_API_CLIENT_SECRET"]}}}

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

  1. Go to Google Cloud Console
  2. Create/enable YouTube Data API v3
  3. Create OAuth 2.0 credentials (Desktop app)
  4. 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 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

FlagShortDescription
--output-oOutput format: json (default), yaml, csv, table
--quiet-qSuppress stderr messages
--configPath to config file
--auth-typeAuth method: oauth (default), service-account

Environment Variables

VariableDescription
YT_API_AUTH_TYPEAuth method: oauth or service-account
YT_API_OUTPUTDefault output format
YT_API_CLIENT_IDOAuth client ID
YT_API_CLIENT_SECRETOAuth client secret
YT_API_CREDENTIALSPath 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:

  • 0 - Success
  • 1 - General error
  • 2 - Authentication error
  • 3 - API error (quota, permissions)
  • 4 - Input error

For LLMs and Automation

  • JSON output by default
  • Structured errors as JSON objects
  • --quiet mode for parsing
  • --dry-run validates without executing
  • Stdin support for piping data

Notes

  • Requires valid Google Cloud credentials with YouTube Data API v3 enabled
  • OAuth tokens stored in ~/.yt-api/tokens.json (0600 permissions)
  • Default output is JSON (LLM-optimized)
  • Supports all YouTube Data API v3 resources

Source

GitHub: https://github.com/nerveband/youtube-api-cli

README.md

No README available.

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

Requirements

  • OpenClaw CLI installed and configured.
  • Language: Markdown
  • License: MIT
  • Topics:

FAQ

How do I install yt-api-cli?

Run openclaw add @nerveband/yt-api-cli in your terminal. This installs yt-api-cli into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/nerveband/yt-api-cli. Review commits and README documentation before installing.