YouTube API uploads require OAuth 2.0. On desktop, a browser pops up and you log in. On Android inside Termux, there is no browser integration. The machine uses a curl-based exchange to complete the auth flow from the terminal.

The Auth Flow

The auth_channel.py script generates an authorization URL and prints it to the terminal. You open this URL on any device. After granting permission, Google redirects to a localhost URL. You copy the code parameter from that URL and paste it back into the Termux terminal. The script exchanges the code for tokens, which are saved to the channel's token file.

One-time setup
Auth Is Done Once Per Channel -- Then Automatic Forever
Tokens auto-refresh. You will never need to re-authenticate unless you revoke access manually.
Get the Machine --

Token Refresh

Access tokens expire after 1 hour. The machine handles refresh automatically using the stored refresh token. If a refresh fails, the machine logs the channel as auth-failed and skips it for that day -- it does not stop. The rest of your channels continue posting while you resolve the one affected channel.