YouTube Uploader
Standalone microservice split from ai-music-assembler for upload-only work. Registers YouTube channels via OAuth, resumable uploads with thumbnails, scheduled publishAt, pending/uploading/uploaded/failed registries, batch stagger, and retries. Cloudflare R2 stores config, tokens, registries, and jobs. Web dashboard covers categories, channel connect/remove, queue, channel browser, and analytics (Today pulse, verified channels).
Contributions
- CLI (`uploader channel add`, queue, test, storage init) plus multi-channel channels.yaml.
- R2-backed durable state and Assembly categories separate from YouTube category_id.
- Dashboard: Studio-style video browser, per-video analytics, sticky upload progress, phone-verified checkmarks.
Outcomes
- Production-oriented upload path with no FFmpeg in this service (render stays upstream).
- Documented microservice design (DESIGN.md, YOUTUBE_UPLOADER*.md).
