~/projects/bds-media-engagement-analytics
BDS Media Engagement Analytics: What Predicts Views Across a Two-Channel Content Brand
A multi-host YouTube/Instagram media brand — a flagship golf-content channel plus a companion podcast — needed to know which levers actually move engagement (who's talking and for how long, what a title says, how long an episode runs, when it publishes, whether one channel's performance affects the other) instead of relying on editorial instinct alone.
Problem
A multi-host YouTube/Instagram media brand — a flagship golf-content channel plus a companion podcast — needed to know which levers actually move engagement (who's talking and for how long, what a title says, how long an episode runs, when it publishes, whether one channel's performance affects the other) instead of relying on editorial instinct alone.
Decision Supported
Whether a specific editorial or scheduling choice — episode length, publish day, title phrasing, which raw footage to mine for social clips — is backed by a measurable historical pattern, and how much confidence to place in an automatically detected clip or speaker attribution.
Dataset
479 full podcast episodes (325 hours) and 432 flagship-channel videos spanning 2021–2026, scraped via yt-dlp with metadata, comments, and subtitles; 740 Instagram Reels scraped, transcribed, and time-matched back to their source episode; 380,717+ transcript words split into 26,178 individual speaker turns via a custom per-host face-recognition model combined with audio attribution; 80,418 YouTube comments parsed for sentiment and cast mentions.
Architecture
A five-stage pipeline: (1) scrape — yt-dlp for the YouTube archive, an authenticated scrape for Instagram Reels; (2) transcribe + diarize — full transcripts split into speaker turns using a face-recognition model trained per host plus audio-based attribution; (3) structure — join everything into a master per-episode/per-turn dataset with engagement metrics, format flags, and automatically detected recurring bits; (4) analyze — title embedding + UMAP clustering, phrase-to-engagement correlation, weekly cross-channel time-series correlation with lag, speaking-balance-vs-engagement analysis, and a confidence-scored clip-origin matcher linking each Reel back to its source timestamp; (5) generate — auto-extracted clips, chart/slide decks for social, PDF reports.
Baseline
No single predictive model was fit end-to-end — this is a correlational analytics pipeline, not one trained estimator. The implicit baseline throughout is "no structure": treat every episode as equally likely to perform well regardless of duration, title phrasing, publish day, or cross-channel timing. Every result below is reported against that null, next to the sample size it's based on.
Evaluation Framework
Pearson correlation coefficients computed per hypothesis against the relevant slice of the data — weekly view totals for cross-channel effects (n=237 weeks), per-episode source-vs-clip views (n=311 episodes), title features (n=328 titles), speaking balance (n=246 episodes) — rather than a single train/test split, so each number can be judged against its own evidence rather than a pooled accuracy score.
Results
Cross-channel halo effect: flagship-channel weekly views correlate with the podcast's weekly views at r=0.36 same-week, rising to r=0.40 lagged one week (n=237) — a big week on one channel measurably lifts the other right after it. Title language: naming a person in a podcast title lifts median views ~3x (37,471 vs. 11,914, n=328); "vs." and "challenge" framing outperform, question-framed titles underperform (14,862 vs. 35,354). Casual hype language in transcripts ("dude," "oh my god," "yeah yeah") correlates with views/likes/comments at r≈0.63–0.65. Structural drivers: episode duration correlates with raw views (r=0.69) but negatively with engagement rate (r=-0.22) — reach and engagement trade off. Publish weekday shows a ~9x swing in median views between the best and worst day. Balanced airtime among hosts correlates with slightly higher views than one host dominating (r=-0.12 for imbalance, n=246).
Error Analysis
The most counterintuitive result came from joining each episode to its derived Instagram Reels (n=311): the correlation between an episode's YouTube views and its clips' total social views is negative (r=-0.20). A segment with only 1,874 YouTube views produced clips totaling 180,213 social views (96x); a 286-view episode produced 16,655 reel views across 14 clips (58x). A video's own popularity does not predict whether it contains a viral moment — the pipeline's original working assumption, "clip the hits," doesn't hold up against the data. A disproportionate share of viral clips originate in the low-view back catalog, not the top-performing episodes.
Deployment Considerations
Used as an internal editorial tool, not a live service: informs which episodes to prioritize when selecting or auto-extracting clips (including deliberately revisiting low-view episodes), which title phrasing to test, and which publish-day/duration tradeoffs to make. Re-running the cross-channel and clip-origin analysis requires re-scraping both channels, which is done manually rather than on a schedule.
Monitoring Approach
No live monitoring — this is a batch analysis re-run periodically as new episodes and Reels accumulate. Because the dataset spans six years (2020–2026) across two channels, re-running the same correlations on more recent data is the main way to check whether a pattern (e.g. the weekday effect) is stable or drifting rather than a one-time artifact.
Limitations
Every finding is correlational, computed from historical data rather than a controlled experiment — none of them establish that, say, changing a title causes the view lift; they're editorial signals, not proof.
Sample sizes vary by finding (237 weeks down to 246 episodes), and several slices reuse the same underlying episode set viewed different ways, so the findings aren't fully independent evidence of each other.
Hashtag-level analysis of Instagram Reels was inconclusive: only 2 hashtags appeared often enough (n≥8) to compare, and both underperformed the account's average reel plays — too small a sample to conclude hashtags don't matter, only that this dataset can't show they do.
The clip-origin matcher assigns a confidence label (high/low/none) per detected clip from its transcript match score, but low-confidence matches are still included in the aggregate reel-vs-source-views analysis, which could understate or overstate the "buried episode" effect if some matches are simply wrong.