Skip to main content
Back to Projects
Content Creation · Influencer MarketingSoftware DevelopmentData & AnalyticsAutomation

Discord Clipping Bot for Community-Powered Content Campaigns

Built a Discord bot that runs ChatMo's clip community end-to-end — social account verification, clip submission across TikTok, Instagram and YouTube, automated view tracking via Apify, visual leaderboard generation, and CPM-based payout calculation. The first three campaigns with JD Sports generated 22M+ tracked views across 870+ clips.

ChatMoDecember 7, 20255 min read

Built with

PythonDiscord.pyPostgreSQLSQLAlchemyApifyPillow
Discord Clipping Bot for Community-Powered Content Campaigns

Key Results

22M+
Views Tracked
870+
Clips Submitted
3
Campaigns

The Challenge

ChatMo runs one of the Netherlands' largest clipping communities — a group of content creators who cut short-form clips from his livestreams and events, then post them on TikTok, Instagram Reels and YouTube Shorts. When those clips perform well, the clippers earn a share of the value they generate.

The problem is operational. Each clipper has accounts on multiple platforms. Those accounts need to be verified as genuine before submissions count. Each clip needs to be tied to a specific campaign, scraped for view counts, and rescraped daily as the numbers grow. At the end of a campaign, the views need to be aggregated per clipper and converted into a payout based on the campaign's CPM rate.

Before the bot, this was manual work — spreadsheets, DMs, screenshots. It worked for a handful of clippers. It stopped working when brand collaborations arrived. JD Sports wanted to run multi-city streaming tours with community clip distribution as a core part of the campaign. That required infrastructure.

What We Built

A Discord bot that manages the entire clipper lifecycle from onboarding to payout:

  • Onboarding and gating — new members react with an emoji in a rules channel to accept the terms and receive a Clipper role. The bot creates the full Discord server structure on startup: roles, channels, categories and permission overwrites, so each new server is ready without manual setup.
  • Social account verification — clippers link their TikTok, Instagram or YouTube accounts through a /verify command. The bot generates a random six-character token, the clipper places it in their bio, and the bot scrapes the profile to confirm ownership. Fuzzy matching with Levenshtein distance handles cases where the token gets reformatted by the platform. Verified clippers receive a higher-tier role and access to submission channels.
  • Clip submission — platform-specific slash commands (/submit_tiktok, /submit_instagram, /submit_youtube) accept a URL and a campaign. The bot validates the URL, extracts the platform-specific ID, confirms the clipper is verified for that platform, and stores the submission with an initial scrape of view count and metadata.
  • Automated view tracking — a scheduled task runs daily at a configurable time, rescraping every submission in active campaigns via Apify. Submissions are batched in groups of 50, with memory allocation scaled to batch size. Each scrape snapshot is stored separately, so the growth curve of every clip is preserved.
  • Leaderboard generation — the bot renders visual PNG leaderboards using Pillow and posts them to a read-only Discord channel. Each leaderboard shows total views, clip count, platform breakdown and calculated payout per clipper, aggregated through a precomputed SQL view that falls back to the original submission data when no rescrape exists yet.
  • Campaign management — admin commands to create campaigns with custom CPM rates, toggle active and scraping states, and trigger manual rescrapes for troubleshooting.

How We Built It

Three decisions shaped the architecture:

Apify for scraping, not direct browser automation. TikTok, Instagram and YouTube each have different anti-scraping measures and data structures. Apify abstracts that behind a consistent API, provides managed browser pools, and handles rate limiting. The bot sends a batch of URLs, receives structured JSON with view counts, likes, comments and metadata. This made multi-platform support practical without maintaining three separate scraper codebases.

SQL views for leaderboard aggregation. The leaderboard query touches submissions, scrape snapshots, accounts and campaigns across three platforms. Rather than assembling this in Python on every request, a precomputed Postgres view (leaderboard_campaign_views_v6) uses DISTINCT ON to fetch the latest scrape per submission, falls back to the original play count when no rescrape exists, and aggregates across platforms per clipper per campaign. The leaderboard command queries this view once and renders the result.

One command module per platform, shared infrastructure. Each platform (TikTok, Instagram, YouTube) has its own submission command, validation logic and scrape parser. But verification, campaign management, role assignment and leaderboard rendering are shared. Adding a new platform means writing one new command module and one scrape parser — the rest of the lifecycle stays untouched.

The Outcome

The first three campaigns run through the bot were JD Sports x ChatMo collaborations:

  • IRL Nederland Tour — a 12-province, 12-city streaming tour across the Netherlands. Clippers submitted short-form clips from each city, tracked through TikTok. 11 active clippers, 219 clips, ~7 million views.
  • België Tour — a 7-city tour from Genk to Brussels. The same workflow, different geography. 11 active clippers, 327 clips, ~8 million views.
  • Streaming House — a 3-day villa event with visiting artists and influencers. The largest campaign by clipper count. 21 active clippers, 324 clips, ~7 million views.

Across all three: 22M+ tracked TikTok views, 870+ clips submitted, automated payout calculation for every clipper based on campaign CPM rates. The bot handled the full cycle — from new clipper joining the Discord, through account verification, to seeing their name on a leaderboard with a payout figure next to it.

The platform is built to grow. New campaigns launch with a single admin command, new platforms can be added as isolated modules, and the scraping pipeline scales linearly with submission count. More brand collaborations are in the pipeline.

Why It Matters

The clipping economy is real. Creators increasingly rely on their communities to distribute content through short-form clips, and the communities expect to be compensated for the reach they generate. But running this manually — verifying accounts, tracking views, calculating payouts — breaks down the moment the community grows beyond a handful of people.

This bot turns that informal arrangement into infrastructure. Verification is automated. View tracking is continuous. Payouts are calculated from real scrape data, not screenshots. It gives ChatMo a scalable operating layer for community-powered content distribution — and it gives clippers a transparent system they can trust.

Ready to achieve similar results?

Let's discuss how we can help transform your business with the right technology solutions.

Start Your Project