"This video underperforms, so fix the title and the tags" becomes one conversation instead of two tools and a spreadsheet. The scopes it requests cover writing as well as reading, including https://www.googleapis.com/auth/youtube, so run it on a machine you trust and keep a copy of titles and tags before a bulk edit.
A local Python server that talks to the YouTube Data and Analytics APIs through your own Google OAuth client. It runs over stdio with no hosted backend, and the credentials stay in a folder on your machine.
- Channel profile, branding, uploads playlist and public statistics — youtube_channel_overview
- Recent uploads listed with metadata, privacy status, content details and statistics, and one video fetched on its own — youtube_list_videos, youtube_get_video
- Title, description, tags, category, default language and privacy status updated — youtube_update_video
- A local image uploaded as a custom thumbnail — youtube_upload_thumbnail
- Channel analytics over a date range, and daily numbers for a single video — youtube_channel_analytics, youtube_video_analytics
- Top-level comments posted and read back — youtube_post_comment, youtube_list_comments
- Whether the local OAuth files exist, and the command that creates them — youtube_auth_status, youtube_start_auth
Python 3.10 or newer, and a Google Cloud project with YouTube Data API v3 and YouTube Analytics API enabled. Download a Desktop-app OAuth client as secrets/client_secret.json, run python3 scripts/auth.py auth once to write secrets/token.json, then point your client at python3 scripts/server.py with YOUTUBE_CLIENT_SECRETS and YOUTUBE_TOKEN_FILE set. It runs on the Python standard library alone.
Build from source — clone the repository and build it, then point your client at the binary
