Automatic YouTube uploader: build one with Python
Automatic YouTube uploader: build one with Python
Publishing videos to YouTube manually is the kind of repetitive work that automation was built to eliminate. YouTube creators who post daily spend an estimated 30-45 minutes per upload on metadata entry alone, according to Tubefilter's 2024 creator survey. Multiply that across a content calendar and you're looking at 15+ hours per month of pure operational drag. CodeWords lets you build this entire pipeline as a serverless workflow — from file pickup to published video — using Python and the YouTube Data API v3.
Unlike generic AI automation posts, this guide shows real CodeWords workflows — not just theory.
TL;DR
- The YouTube Data API v3 supports programmatic uploads with full metadata control (title, description, tags, privacy, thumbnails).
- OAuth 2.0 is required for uploads — API keys alone won't work for write operations.
- CodeWords workflows can schedule uploads, generate AI metadata, and handle the full pipeline without managing servers.
What does an automatic YouTube uploader need?
The core components: YouTube Data API v3, OAuth 2.0 credentials (required for any write operation), a video file (MP4, MOV, AVI, or WMV), metadata (title ≤100 chars, description ≤5000 chars, tags, category, privacy status), and optionally a custom thumbnail, playlist assignment, or scheduled publish time.
How do you set up YouTube API credentials?
1. Create a Google Cloud project and enable the YouTube Data API v3. 2. Create OAuth 2.0 credentials (Desktop application type) and download client_secret.json. 3. Configure the OAuth consent screen with scope https://www.googleapis.com/auth/youtube.upload. 4. Add your email as a test user.
How do you schedule uploads with CodeWords?
Inside CodeWords, store your OAuth refresh token using state persistence via Redis. Configure the trigger: scheduled (every Tuesday at 9 AM), file-based (monitor a Google Drive folder), or webhook (trigger from your editing pipeline). Use CodeWords' LLM access (OpenAI, Anthropic, or Gemini — no API key setup) to generate optimized titles, descriptions, and tags from a video topic. The platform handles token refresh and rate limiting automatically.
What are the API quotas and limits?
Default quota: 10,000 units per day. Video upload cost: 1,600 units per upload. That means ~6 uploads per day on the default quota. Apply through Google's API quota extension request for higher limits. Design your workflow to handle quota exhaustion gracefully with retry queuing.
FAQs
Can I upload to YouTube without OAuth?
No. The YouTube Data API requires OAuth 2.0 for all write operations. API keys only work for read operations.
How do I schedule a video to publish at a specific time?
Set publishAt in the status object with an ISO 8601 datetime, and set privacyStatus to "private". YouTube will automatically make it public at the scheduled time.




