watchdog.py is a persistent Python process that monitors your channel queue, manages scheduling, handles errors, and recovers from failures -- all without any input from you after the initial python watchdog.py command.
The Main Loop
The watchdog runs on a 24-hour cycle. At the start of each cycle, it reads the channel list and checks which channels are due to post. It calculates the target upload time for each channel (staggered to manage API quota), then waits until each scheduled time before triggering the relevant channel's post script.
Error Recovery Logic
When an upload fails, the watchdog does not stop the entire machine. It logs the failure, adds the channel to a retry queue, and continues with other channels. Failed channels are retried after 30 minutes. Quota errors defer to the next quota window (6 hours). Network errors retry after a 2-minute wait. This tiered recovery logic means the machine self-heals from almost any failure state without your involvement.