Install
openclaw skills install @bin-huang/youtube-data-cliFull YouTube Data API v3 CLI covering all 20 resources: search, channels, videos (upload/update/delete/rate), playlists, playlist items, comments, subscriptions, captions (upload/download), thumbnails, activities, channel sections, channel banners, members, memberships levels, watermarks, and more. Triggers: "YouTube", "YouTube search", "YouTube playlists", "YouTube comments", "YouTube subscriptions", "search videos", "playlist management", "video comments", "upload video", "video captions", "subtitles", "YouTube thumbnail", "channel members", "video categories", "channel banner", "YouTube watermark", "rate video", "like video", "channel sections", "YouTube activities".
openclaw skills install @bin-huang/youtube-data-cliYou have access to youtube-data-cli, a CLI for the YouTube Data API v3 covering all 20 resources with 52 commands. Use it to search YouTube, manage channels/videos/playlists/comments/subscriptions, upload videos and captions, set thumbnails, and more.
# Check if the CLI is available
youtube-data-cli --help
# Search for videos
youtube-data-cli search --q "node.js tutorial" --type video --max-results 5
# Get a channel's public data
youtube-data-cli channels UCxxxxxxxxxxxxxx
If the CLI is not installed, install it:
npm install -g youtube-data-cli
| Method | Use case | Commands |
|---|---|---|
| API key | Public data | search, channels, videos, playlists, playlist-items, comment-threads, comments, channel-sections, i18n-*, video-categories, video-abuse-report-reasons |
| OAuth 2.0 | Private data + write operations | All *-insert/*-update/*-delete commands, --mine queries, captions, members, memberships-levels, playlist-images, thumbnails-set, watermarks-*, channel-banners-insert |
Credentials are resolved in this order:
--credentials <path> flag (per-command)YOUTUBE_API_KEY, YOUTUBE_CLIENT_ID, YOUTUBE_CLIENT_SECRET, YOUTUBE_REFRESH_TOKEN env vars~/.config/youtube-data-cli/credentials.json (auto-detected)Recommended OAuth scope: https://www.googleapis.com/auth/youtube (full access). Add https://www.googleapis.com/auth/youtube.upload if using narrower scopes but need video uploads.
Important: Service accounts do NOT work with YouTube APIs. You must use OAuth 2.0 with a refresh token.
All commands output pretty-printed JSON by default. Use --format compact for single-line JSON.
Global options:
--format <format> -- json (default, pretty-printed) or compact (single-line)--credentials <path> -- path to credentials JSON fileErrors are written to stderr as JSON with an error field and a non-zero exit code.
Search YouTube for videos, channels, and playlists.
youtube-data-cli search --q "query" [--type video] [--max-results 10] [--order viewCount]
Key options: --q (required), --type, --max-results, --order, --channel-id, --page-token, --published-after, --published-before, --region-code, --relevance-language, --safe-search, --video-duration, --event-type
Get or update channel details.
youtube-data-cli channels UCxxxxxxxxxxxxxx
youtube-data-cli channels # your own channel (OAuth)
youtube-data-cli channels-update --id UCxxxxxxxxxxxxxx --description "New desc" --country US
Get, upload, update, or delete videos.
youtube-data-cli videos dQw4w9WgXcQ
youtube-data-cli videos-insert --file video.mp4 --title "My Video" --privacy private
youtube-data-cli videos-update --id VID --title "Updated Title" --category-id 22 --tags "a,b"
youtube-data-cli videos-delete --id VID
Rate videos and report abuse.
youtube-data-cli videos-rate --id VID --rating like
youtube-data-cli videos-rate --id VID --rating none # remove rating
youtube-data-cli videos-get-rating --id VID1,VID2
youtube-data-cli videos-report-abuse --video-id VID --reason-id REASON_ID
Manage playlists.
youtube-data-cli playlists --channel-id UCxxxxxxxxxxxxxx
youtube-data-cli playlists --mine
youtube-data-cli playlists-insert --title "My Playlist" --privacy public
youtube-data-cli playlists-update --id PLxxxxxxxxxxxxxx --title "New Title"
youtube-data-cli playlists-delete --id PLxxxxxxxxxxxxxx
Manage videos in playlists.
youtube-data-cli playlist-items --playlist-id PLxxxxxxxxxxxxxx
youtube-data-cli playlist-items-insert --playlist-id PLxxxxxxxxxxxxxx --video-id dQw4w9WgXcQ
youtube-data-cli playlist-items-update --id ITEM_ID --playlist-id PLxxxxxxxxxxxxxx --video-id dQw4w9WgXcQ --position 0
youtube-data-cli playlist-items-delete --id ITEM_ID
List and post top-level comments.
youtube-data-cli comment-threads --video-id dQw4w9WgXcQ
youtube-data-cli comment-threads-insert --video-id dQw4w9WgXcQ --text "Great video!"
Key options for listing: --video-id, --channel-id, --id, --order, --search-terms, --max-results, --page-token
Manage comment replies and moderation.
youtube-data-cli comments --parent-id COMMENT_ID
youtube-data-cli comments-insert --parent-id COMMENT_ID --text "Thanks!"
youtube-data-cli comments-update --id COMMENT_ID --text "Updated text"
youtube-data-cli comments-delete --id COMMENT_ID
youtube-data-cli comments-set-moderation-status --id COMMENT_ID --moderation-status published
Manage subscriptions.
youtube-data-cli subscriptions --mine
youtube-data-cli subscriptions-insert --channel-id UCxxxxxxxxxxxxxx
youtube-data-cli subscriptions-delete --id SUBSCRIPTION_ID
List channel activities.
youtube-data-cli activities --channel-id UCxxxxxxxxxxxxxx
youtube-data-cli activities --mine
Manage video captions (subtitles).
youtube-data-cli captions --video-id VID
youtube-data-cli captions-insert --video-id VID --file subs.srt --language en --name "English"
youtube-data-cli captions-update --id CAP_ID --file new-subs.srt
youtube-data-cli captions-download --id CAP_ID --tfmt srt --output subs.srt
youtube-data-cli captions-delete --id CAP_ID
Upload a channel banner image. Returns a URL to use with channels-update.
youtube-data-cli channel-banners-insert --file banner.jpg
Manage channel page sections.
youtube-data-cli channel-sections --channel-id UCxxxxxxxxxxxxxx
youtube-data-cli channel-sections-insert --type singlePlaylist --title "Featured" --playlist-ids PLxxxxxxxxxxxxxx
youtube-data-cli channel-sections-update --id SECTION_ID --type singlePlaylist --title "Updated"
youtube-data-cli channel-sections-delete --id SECTION_ID
List supported languages and regions.
youtube-data-cli i18n-languages
youtube-data-cli i18n-regions
List channel members and membership levels (OAuth required).
youtube-data-cli members
youtube-data-cli memberships-levels
Manage playlist cover images.
youtube-data-cli playlist-images --parent PLxxxxxxxxxxxxxx
youtube-data-cli playlist-images-insert --playlist-id PLxxxxxxxxxxxxxx --file cover.jpg
youtube-data-cli playlist-images-delete --id IMAGE_ID
Upload a custom thumbnail for a video (OAuth required).
youtube-data-cli thumbnails-set --video-id VID --file thumb.jpg
List video categories and abuse report reasons.
youtube-data-cli video-categories --region-code US
youtube-data-cli video-abuse-report-reasons
Manage channel watermarks (OAuth required).
youtube-data-cli watermarks-set --channel-id UCxxxxxxxxxxxxxx --file watermark.png
youtube-data-cli watermarks-unset --channel-id UCxxxxxxxxxxxxxx
youtube-data-cli search --q "topic" --type video --max-results 10youtube-data-cli videos VIDEO_IDyoutube-data-cli comment-threads --video-id VIDEO_IDyoutube-data-cli videos-insert --file video.mp4 --title "Title" --privacy privateyoutube-data-cli thumbnails-set --video-id VID --file thumb.jpgyoutube-data-cli captions-insert --video-id VID --file subs.srt --language en --name "English"youtube-data-cli videos-update --id VID --title "Title" --privacy publicyoutube-data-cli playlists --mineyoutube-data-cli playlists-insert --title "Favorites" --privacy privateyoutube-data-cli playlist-items-insert --playlist-id PL_ID --video-id VIDyoutube-data-cli playlist-items-update --id ITEM_ID --playlist-id PL_ID --video-id VID --position 0youtube-data-cli comment-threads --video-id VID --order timeyoutube-data-cli comment-threads-insert --video-id VID --text "..."youtube-data-cli comments-insert --parent-id COMMENT_ID --text "..."youtube-data-cli comments-set-moderation-status --id COMMENT_ID --moderation-status publishedyoutube-data-cli channelsyoutube-data-cli channels-update --id CH_ID --description "..." --country USyoutube-data-cli channel-banners-insert --file banner.jpgyoutube-data-cli watermarks-set --channel-id CH_ID --file watermark.pngyoutube-data-cli channel-sections --mineclient_id, client_secret, refresh_token--credentials, env vars, or default file