The chat programs the channel.
20 minutes before a VOD ends, the chat requests. 10 minutes before, it votes. The winner plays next. A channel that never stops, and never loops.
Try the cycle.
A fake catalogue of six VODs and a chat box. You are the chat. The clock runs fast.
Trackmania ranked, then WoW raid night
Trackmania · 3.7 h
catalogue
2861667505· Trackmania ranked, then WoW raid night2851930211· Elden Ring DLC, blind, part 42842001990· Just Chatting: mailbag and setup tour2836772100· Rocket League 2v2 with viewers2829110432· Valorant customs, community night2820556781· Speedrun attempts: Celeste any%
Type !request <id> from the catalogue, then !vote 1-5 once the poll opens. !skip works any time.
One cycle per VOD.
Timed on the end of the VOD that is playing. Nothing to schedule by hand.
- −20:00
!request <vod>Requests open
One request per person. The bot confirms in chat, the site shows the count.
- −10:00
!vote 1-5Poll opens
A Twitch poll with 5 options: the natural next VOD, plus the most supported requests.
- −5:00
winner queuedPoll closes
The winner is queued. Zero votes? Option 1 plays. The channel never goes black.
- 0:00
title · category · tagsNext VOD starts
Title, category and tags are updated on Twitch. No cut in the stream between two VODs.
The windows are yours to set per channel. These are the defaults.
Four commands.
Typed in the Twitch chat of the 24/7 channel. The bot answers in chat.
!request <vod> Propose a VOD for the next slot. One per person per cycle. The VOD must be in the archive. The id or the Twitch link both work.
!vote 1-5 Without Affiliate status there is no native poll, so the bot counts votes in chat. One vote per person, the last one counts.
!skip Ask to skip the current VOD. When enough people ask, weighted by the viewer count, the channel moves on. Off by default.
!avancede10 Counted, not acted on. The player cannot seek inside a file yet, so the bot stays silent rather than announce a jump that does not happen.
Affiliate or not.
The same cycle in both cases. Only the ballot box changes.
| Not affiliated | Affiliate or Partner | |
|---|---|---|
| Requests with !request | ||
| Native Twitch poll | ||
| Channel-points votes | ||
| Votes with !vote 1-5 in chat | Fallback | |
| Result shown on the public site | ||
| Vote counted twice |
What cannot happen.
Rules tested one by one, on a state machine that is pure code.
The channel never goes black
Nobody requests? The catalogue fills the poll. Nobody votes? Option 1 wins. Poll cancelled? A VOD is queued anyway.
A poll never outlives its VOD
On a short VOD the windows compress. The poll always closes before the VOD ends, so the winner is ready.
One vote per person
Twitch redelivers chat messages. Each one is deduplicated by id before it counts.
Never-aired first
When the catalogue picks, VODs that never went on air come first. Then the least recently played.
The bot stays under the limit
20 messages per 30 seconds, enforced client-side. Above it Twitch times the bot out, and a muted bot cannot recover on its own.
Paid votes count once
Channel-points votes are already inside the poll total. They are shown apart, never added twice.
Questions.
Do I need to be an Affiliate for chat voting?
No. Native polls require Affiliate status; without it the bot counts !vote 1 to 5 in chat. Same cycle, same result on the site.
What plays when the queue is empty?
A filler loop keeps the session open, and the next cycle picks from the catalogue. The stream never drops.
Can I schedule a VOD myself?
Yes. The dashboard queues any archived VOD ahead of the vote, and can block a VOD from ever airing.
Does the bot need to be a moderator?
VIP or moderator, yes. In followers-only chat Twitch silently drops messages from other accounts, and the bot would talk to nobody.