Video Contest Bot
Built From a 5‑Sentence Request
A community was running monthly video contests manually — collecting DMs, counting reactions by hand, announcing winners one-by-one. They described what they needed in five sentences. We shipped a working bot in under 48 hours.
Step 1 — The client submits a request
After subscribing, the client opened their DiscordGenius request board and created a new card. Here's exactly what they wrote:
Video Contest Bot
We are running monthly video contests in our Discord and right now we're doing it all manually — people DM us clips, we post them, we count reactions by hand. It's a nightmare lol.
Can you build us a bot that handles this? Here's what we need:
- A /submit command where users can upload a video file or paste a URL. The bot reposts it into a dedicated submissions channel and adds a thumbs-up reaction automatically so people can vote.
- A /finish command (admin only) that tallies up all the thumbs-up votes, picks the top 5, announces the winners in a winners channel, and DMs each winner to let them know they placed.
That's basically it. Two commands. We just need it to work reliably and look clean in the embeds.
We'll set up the channels on our end — just need the bot to point at a submissions channel and a winners channel. Let us know what IDs or setup info you need from us.
Notice how casual this is. No formal spec, no technical jargon, no wireframes. The client described their problem and what they wanted in plain language. That's all you need — we handle the rest.
Step 2 — We move the card to Active and start building
Within hours the request moves from Backlog to Active on your board. Here's the delivery timeline for this build:
Request received & scoped
We review the request, identify the two core commands, note the channel configuration needs, and plan the embed structure. No back-and-forth needed — the request was clear enough.
Hour 0
/submit command built
Slash command accepting a video file upload or URL. Bot reposts to the configured submissions channel with a clean embed (title, submitter name, video preview) and auto-adds the thumbs-up reaction for voting.
Hour 8
/finish command built
Admin-only command that fetches all messages from the submissions channel, counts thumbs-up reactions, sorts by votes, selects top 5, posts a polished winner announcement embed, and DMs each winner their placement.
Hour 18
Testing, deployment & handoff
Bot tested end-to-end in a staging server. Deployed to managed hosting. Bot invite link and setup instructions posted to the client's delivery thread on the board.
Hour 24
Step 3 — The client reviews & approves
The card moves to the Approved column. Here's what was delivered:
Delivered commands
File & URL support
Accepts both direct video file uploads and external URLs (YouTube, Streamable, etc.) so members can submit however they prefer.
Clean embed design
Submissions display as polished embeds with the video, submitter name, and timestamp. Winner announcements include rankings, vote counts, and medal indicators.
Automatic winner DMs
Each top-5 winner receives a personal DM congratulating them and letting them know their placement. No manual outreach needed.
Admin-only controls
The /finish command is restricted to administrators, so regular members can't end a contest early. Clean permission handling with friendly error messages.
Key takeaway
- You don't need a formal spec. This client wrote five casual sentences describing their problem. We interpreted it, built it, and delivered — without a single follow-up question.
- Simple requests ship fast. Two commands, clean embeds, admin-only controls. Delivered in under 24 hours. Approved on the first attempt.
- Fully managed. The client didn't touch a terminal, install Node.js, or configure a server. We deployed, hosted, and maintain the bot. They just invited it and started running contests.