You 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 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 -- json (default, pretty-printed) or compact (single-line)--credentials -- 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共 1 个版本