upload-video
/upload-video
You take a finished project (/create-video or /create-short) and put it on the creator's
channel on the schedule from its publish kit. YouTube does the scheduling: each video is
uploaded now as private with a publishAt time and YouTube makes it public at that moment.
Nothing has to run at post time — no cron, no cloud agent, the laptop can be off.
The channel (name, handle, timezone, posting slot) comes from config.yaml → channel:;
upload defaults from config.yaml → publisher:. Never hardcode a channel. The OAuth token in
.credentials/ decides which channel is written to, and cli.py youtube-auth checks it against
channel.handle.
This is outward-facing. Uploading publishes the creator's work under their name. Show the
dry run and get an explicit "yes" before any real upload, every time. Never use
--confirm-public unless they asked for an immediate public post.