Aggregating audience buzz for Telugu movies sounds straightforward: search YouTube and X for a movie title, count the positive mentions, done. But raw social signal is almost entirely noise — show-timing bots, PR-planted hype, zero-follower spam accounts, coordinated brigading campaigns. Build on that without filtering and you are not measuring audience sentiment; you are measuring whoever had the best astroturf budget.
Here is how we approach it differently, starting from first principles.
Two Pipelines, Two Jobs
TollyPrema runs two separate buzz pipelines depending on where a film sits in its lifecycle.
The Pre-Release Buzz pipeline runs for upcoming movies. It looks back 90 days on YouTube to capture trailers, teasers, first-look reactions, and music launches. The X lookback is 7 days (platform API limit). The goal is to measure anticipation before a film releases — is the public excited, indifferent, or concerned?
The FDFS Pulse pipeline runs for released movies, anchored to the actual release date. It captures first-day audience reactions — the real-world verdict from people who sat in the theatre. The YouTube window starts from release date with no cap. X is capped at 7 days by the API.
Separating these matters. A trailer reaction and an FDFS audience reaction are fundamentally different signals. They need different collection logic, different sentiment calibration, and different interpretation. Mixing them would corrupt both.
Why YouTube and X — and Nothing Else
Tollywood's social chatter concentrates on two platforms above all others. YouTube is where reviewers post their first takes — considered, long-form, and permanent. X is where the first-day pulse lives: the 10-second verdict from someone walking out of the hall at midnight.
We intentionally do not scrape Instagram or Facebook — their APIs do not provide the signal density or searchability we need, and Tollywood fandom does not concentrate there. Reddit is on our roadmap: as Telugu cinema communities on Reddit grow, we plan to add it as a third signal source. For now, fewer high-quality sources beat broader, thinner coverage.
Collection: How We Find Signals
For YouTube (FDFS pipeline), we run two phases. First, known critic channels: we maintain a curated list of tracked Telugu film critics with their YouTube channel IDs. We scan their upload playlists directly for any video mentioning the movie title. This is highly precise and cheap on API quota. Second, a broad keyword search ("Title review") catches reviewers we have not indexed yet. New video IDs found here are merged with channel results and deduplicated by video ID.
For the pre-release pipeline, YouTube search uses two query templates — "Title" trailer OR teaser and "Title" reaction OR review OR promo — to capture the full shape of pre-release content.
For X, we search: "Movie Title" OR #MovieTitleHashtag -is:retweet. Excluding retweets is non-negotiable — retweets are amplification of someone else's opinion, not an independent data point.
The Three Filter Layers
Every signal goes through three sequential gates before anything touches the database. These run in order from cheapest to most expensive.
Layer 1 — Content Quality Gates
X Blocklist. Pattern-matched against known junk formats. Catches the bulk of noise at near-zero cost:
ST : #MovieTitle— automated show-timing networks that broadcast screen schedules. On release day these can outnumber genuine reactions 10-to-1.- Booking links — any tweet mentioning BookMyShow, Paytm Tickets, JustTickets, or TicketNew. Promotional, not reactive.
- “Advance booking open”, “now showing”, “available at all theatres”, “book your tickets”
- Tweets under 20 meaningful characters after stripping hashtags, mentions, and URLs. A tweet that is only
#ChennaiLoveStory 🔥carries no extractable opinion. - Tweets where more than 60% of the character mass is hashtags or mentions. These are almost always promotional amplification.
YouTube Promo Filter. Official trailers and audio launches are studio content, not audience reactions. We filter out video titles matching: trailer, teaser, promo, preview, audio launch, lyric video, making-of, behind the scenes. The FDFS pipeline wants genuine post-screening reactions. Note: the pre-release pipeline has the inverse requirement — trailers are the signal we want there, so this filter does not apply pre-release.
Layer 2 — Account Trust (X Only)
When the X API returns author metadata alongside tweets, we apply account-level trust checks. These are about account authenticity, not follower count:
- Accounts created fewer than 30 days ago are filtered out. Coordinated brigading campaigns create fresh accounts during a film's release window specifically to flood signal. A 30-day age floor cuts these off.
- Classic bot pattern: zero followers combined with 200+ accounts followed. The sock puppet signature — it follows many real accounts to appear active but has no genuine audience.
We deliberately do not filter by follower count in isolation. A Telugu film critic with 50 followers has a valid opinion. It is the combination of zero followers and high following that signals a manufactured account.
Layer 3 — Near-Duplicate Detection
Coordinated campaigns often push near-identical text across many accounts. We fingerprint each signal (lowercase, strip punctuation and URLs, collapse whitespace) and skip any with a fingerprint we have already seen in the current collection run.
Beyond this run-level dedup, the database itself is the final guard: every signal is upserted on source_url as the conflict key. The same YouTube video or X post can contribute exactly one data point, no matter how many times the pipeline runs.
Sentiment Classification
Once a signal clears all filters, we classify it as one of five buckets: very_positive, positive, mixed, negative, or very_negative.
The primary classifier is Claude AI, run in batches of 30 signals per prompt. We wrote context-specific instructions that matter for Telugu film coverage:
- Tollywood slang awareness — keka means great, mass is crowd-pleasing, paka or “boring” is negative. A classifier trained on English alone misses these entirely.
- Negation handling — “not a blockbuster” must not be labelled very_positive.
- Sarcasm awareness — “wow what a masterpiece 🙄” is contextually negative.
- Pre-release calibration — A plain trailer title with no negative language defaults to positive, not mixed, because trailers are a studio signal of confidence.
If Claude is unavailable or rate-limited, we fall back to a keyword dictionary. The fallback defaults to mixed on ambiguous text — so a pipeline failure can never accidentally inflate scores.
The Buzz Score Formula
After signals are collected and classified, we compute a single percentage:
Buzz Score = ((very_positive + positive + mixed × 0.5) / total) × 100
Mixed reactions count for half a positive signal — they represent divided opinion, not endorsement, but not rejection either.
This means a film generating pure excitement scores near 100%. Split opinions land around 50%. A genuinely disliked film approaches 0%. The formula is deliberately simple — complexity here would be false precision.
What We Deliberately Don't Do
We search neutrally.We do not search for “movie name is great” or “movie name is disaster.” We search for the title and let classification determine sentiment. Biased search terms pre-select the result.
We do not weight by follower count or view count. A reviewer with 200K subscribers calling a film average gets one vote, same as someone with 200 followers. Reach and opinion are different things.
No manual overrides.The pipeline is fully automated. No one on the TollyPrema team can push a film's buzz score up or down directly.
We can still be gamed — but the cost is high. An organised campaign using hundreds of real, aged accounts posting substantively different tweets could move our signal. We are transparent about that. What every layer above does is raise the cost of manipulation until it becomes economically irrational for the scale of movies where this would even be attempted.
