Schedule with a gate: the channel runs on its own, you decide
The schedule turns the pipeline into a channel: one run a day, at a set time, without you having to remember. But a schedule without a gate means posting the wrong thing faster. In this lesson, you’ll write the timer, decide what happens on a day with no topic, and run a week approving each video until you stop having to reject them.
Goal: write your channel’s schedule and run a week with manual approval, turning each rejection into a rule.
01 · A scheduled run
Click each block. This is what happens every early morning in a radar.
Each rejection becomes a rule; the next run reads it right away
Click each block in the diagram to see what it does.
Each radar runs at a different time (02:00, 05:00, 08:00) so they don’t compete for the GPU and avatar studio.
02 · Choose your schedule
The finviral model, for you to adapt.
1. Daily
40 to 60 seconds on what the sources published yesterday and the day before.
finviralMonday to Friday, 02:00 · "daily" run
2. Weekly
90 seconds to 2 minutes with a recap of the week. The radars also produce a long 16:9 video, "The week explained," from 5 to 7 minutes.
finviralSaturday, 02:00 · "weekly" run
3. Sunday
About 90 seconds on what the sources expect for next week.
finviralSunday, 02:00 · "Sunday" run
4. Slow day
Decide in advance what happens on a day with no news: no video, and the message "no story" with the reason. Forcing a video on a slow day is the first step toward publishing the wrong thing.
Messageno story: none of the channels published a new video during this period.
03 · Scheduling
A systemd timer for your user (finviral works this way). Replace <canal> and the script path.
With Persistent=false, a missed run (the machine is off at 02:00) does not run late when the machine comes back on. For a daily radar, a video about yesterday published in the afternoon is no use.
TimeoutStartSec and MemoryMax are limits: a run that gets stuck is stopped, and one that uses too much memory won’t bring the machine down. A run with no limit that gets stuck at 02:00 is still stuck at 09:00.
04 · See a week of runs
Run it for a week. Interrupt it halfway through, then run it again.
scheduled
running
approved video
no story
Illustrative browser simulation. Wednesday with no topic is intentional, to show that an empty day is a normal result, not an error.
05 · Practice: schedule and week with a gate
Exercises 5 and 6 in sequence 4.
E5 · The schedule
20 min
Choose the frequency and write the schedule (systemd timer or cron), including what happens on a day with no topic and where the failure alert goes.
Done when: the schedule is written, list-timers (or crontab) shows the next run, and you know what happens on a day with no topic.
E6 · The gate before publishing
1 week
Run for a week with manual approval before each post. Note what you reject and why; each rejection becomes a rule in regras.md.
Done when: you’ve gone 3 days in a row without needing to reject anything. Only then consider removing the gate from a step.
It’s 9 a.m. and you haven’t received anything from the bot. What does that mean?
Correct
Silence is never an answer. A day with no topic sends "no topic"; a failure sends "failed at X." If nothing arrived, check the run.
Not this one
Silence is never an answer. A day with no topic sends "no topic"; a failure sends "failed at X." If nothing arrived, check the run.Review: A scheduled run
Question 3 of 4
Tomorrow is a holiday, and you don’t want a video. What can you do without turning off the schedule?
Correct
A line like "2026-10-17 diario" in pular.txt skips only that run.
Not this one
A line like "2026-10-17 diario" in pular.txt skips only that run.Review: Scheduling
Question 4 of 4
Why use Persistent=false on a daily radar timer?
Correct
A daily radar loses its meaning if it runs late. A missed run stays missed; the next one runs on time.
Not this one
A daily radar loses its meaning if it runs late. A missed run stays missed; the next one runs on time.Review: Scheduling
Test complete
You got {a} out of {n} right. Get them all right to mark the lesson complete.
Choose an option. The explanation appears after your attempt.