PlaylistTime / Live chat picker
YouTube live chat picker: draw a random chat winner
Paste a stream that is live now, let viewers type a keyword such as !enter, and draw a random winner from the chat. No sign-in.
Alternates
Draw details
This YouTube live chat picker runs a giveaway in your stream's chat: paste the link of a stream that is live right now, press Start collecting, tell viewers to type a keyword such as !enter, and draw a random winner whenever you are ready. It reads the chat through YouTube's official Data API, counts only messages sent after you started, gives each person one entry, leaves out you and your moderators if you like, and drops messages a moderator deletes. The draw runs in your browser with its cryptographic random number generator and produces a record you can paste into the chat or the description: when it was drawn, how many messages and people took part, and which filters were used. It is free and needs no YouTube sign-in. Keep this page open while you collect, because the messages live only in this page.
How to do a live chat giveaway on YouTube
- Go live, then paste the stream link above. Use the watch link or the youtu.be link of the live stream.
- Set the keyword. Open More options and type the word viewers must send, for example !enter. Leave it empty to count every message.
- Press Start collecting and announce it. Only messages sent from now on count. The counters show messages, people and eligible entries as they come in.
- Press Draw now when entries close. You can draw again for alternates, or keep collecting.
How does the live chat picker work?
- Is it live? One call to YouTube's videos.list reads the stream's live chat ID, which YouTube only provides while the broadcast is live.
- Collect: the page asks our server to check the chat; our server calls liveChatMessages.list, which returns every new message since the last check, oldest first. YouTube says how long to wait before checking again, and we wait at least 15 seconds. Each check picks up everything sent in between, up to 2,000 messages, and the next check continues from there, so nothing is skipped.
- Keep it fair: only text messages sent after you pressed Start count. Messages a moderator deletes, and everything from people who are banned, leave the draw.
- Draw: it shuffles the eligible messages with
crypto.getRandomValues, the browser's cryptographic random generator, using a Fisher-Yates shuffle with no modulo bias, and takes winners and alternates from the top in order. The draw never touches our server.
Worked example: what a 10-minute giveaway costs
Each check costs 5 units of the YouTube API allowance this site shares across all visitors (10,000 units a day). Checking every 15 seconds is 4 checks a minute, or 20 units a minute, so a 10-minute giveaway uses 1 + 40 x 5 = 201 units, and the longest collection, 30 minutes, uses at most 601. When we tested on 26 October 2026 on a public music stream with about 2,000 viewers, YouTube asked for a wait of 2 to 3 seconds between checks and returned 75 recent messages on the first check, which shows why the 15-second floor matters: checking as often as YouTube allows would cost up to 150 units a minute.
Why only messages sent while the page is open count
YouTube's API gives the chat from the moment you start reading it, plus a short stretch of recent messages. To give every viewer the same entry window, the picker throws away anything sent before you pressed Start, and it can only see messages while this page is open and checking. Closing the tab ends the collection; the page warns you before it closes.
Can you pick a winner from the chat of a stream that has ended?
No, not through YouTube's API. The live chat ID is only provided while a broadcast is live, and reading the chat of a finished stream returns a "live chat ended" error. The chat replay you see on YouTube after a stream is not available to outside tools through the API, and we do not copy it from YouTube's pages. Run the draw during the stream, or ask viewers to comment on the video afterwards and use the YouTube comment picker.
Keyword entries like !enter
Must contain matches anywhere in the message and ignores capitals, so "!Enter please" counts for !enter. With one entry per person on (the default), typing the keyword ten times still gives one entry. Super Chats, memberships and other special chat events are not counted as entries, only normal text messages, so paying never adds a chance.
Leave out the streamer and moderators
Tick the owner and moderators option and their messages are left out of the draw. YouTube marks them in the chat data, so this does not depend on names.
How accurate is the live chat picker?
- Complete while open: every text message YouTube returns between Start and the moment you draw, as long as this page stays open.
- About 15 seconds behind: a message sent just before you press Draw may not be in yet. Wait for the next check, shown by the countdown, before the final draw.
- Limits: a collection stops after 30 minutes or 20,000 messages. Draw from what was collected, or start again.
Sources
- YouTube Live Streaming API, liveChatMessages.list (5 units per call, pollingIntervalMillis, maxResults 200 to 2,000, the liveChatEnded error). Reading a public stream's chat with an API key, without signing in, was tested on 26 October 2026.
- YouTube Data API, videos resource: liveStreamingDetails.activeLiveChatId is filled only while the broadcast is live.
- YouTube Help, YouTube's contest policies and guidelines.
- MDN, Crypto: getRandomValues().
Why we built this live chat picker
Streamers run "type !enter" giveaways all the time, usually with a chat bot that has to be set up and given access to the channel first. Nitin Raja, who builds PlaylistTime, tested a lot of these pages before building this one: after testing out a lot of websites, he found what people need and what they do not, and built around that. So this page does one job with no setup and no sign-in: paste the stream, collect, draw, and post a record of how the draw was done.
What this picker does, and what it does not
- Reads: the live chat of a public stream through YouTube's official API, checked at least 15 seconds apart, for up to 30 minutes.
- Counts: text messages sent after you started, minus deleted messages and banned people; the keyword, one entry per person and the owner and moderator filter are applied in your browser.
- Draws: winners and alternates with crypto.getRandomValues, the same engine as our comment pickers.
- Does not: read ended or private streams, count Super Chats, or store any message. Messages stay in this page and are gone when you close it.
Why it is different
| This picker | Typical chat giveaway bot | |
|---|---|---|
| Setup | Paste the stream link | Connect a bot to your channel |
| Sign-in | Not needed for public streams | Usually required |
| Fair entry window | Only messages after Start | Varies |
| Deleted messages and banned people removed | Yes | Varies |
| Draw record you can post | Yes, with time, counts and filters | Usually just the winner in chat |
| Works after the stream ends | No (YouTube's API does not allow it) | Only if the bot was running |
Related tools
- YouTube comment picker: random winners from one video, several videos or a channel's latest uploads.
- Instagram comment picker: paste your post's comments and draw a winner.
- TikTok comment picker: paste your video's comments and draw a winner.
- All YouTube creator tools: every free tool for channels and videos on one page.
Built by Nitin Raja. Last updated 26 October 2026.
Questions
How do I pick a random winner from YouTube live chat?
While the stream is live, paste its link here and press Start collecting. Ask viewers to type a keyword such as !enter, then press Draw now. The page collects the chat through YouTube's API and draws at random in your browser.
Do I need to sign in or add a bot?
No. Public live streams can be read without signing in. Nothing is added to your channel.
Can I pick a winner after the stream has ended?
No. YouTube's API only gives out a stream's chat while it is live; the replay of an ended stream's chat is not available to outside tools. Draw during the stream, or use the comment picker on the video afterwards.
Which messages count?
Normal text messages sent after you pressed Start collecting, while this page is open. Deleted messages, banned people, Super Chats and other special events are not counted.
Can someone enter many times by spamming the keyword?
Not with One entry per person, which is on from the start: each person counts once, however many times they type.
How long can it collect?
Up to 30 minutes or 20,000 messages per collection. It checks the chat every 15 seconds or slower, because each check uses part of the site's daily YouTube allowance.
Does it work for private or members-only streams?
Private streams are not given out by YouTube's API without the owner's sign-in. We tested public streams; if YouTube refuses a chat, for example in members-only mode, the page says so.