Skip to content
All work
AI Product · Media IntelligenceLive

AdMention AI

Find every advertiser mention in a YouTube video — with the timestamp.

A full-stack platform that takes a YouTube video and an advertiser name and returns timestamped mentions, transcript context and a link that opens at that exact moment.

Problem

Long-form YouTube — especially live sports and talk shows — buries sponsor reads in hours of audio. Finding every mention by hand means scrubbing the timeline or reading a raw transcript with no jump-to-time.

Context

An MVP built around one video and one advertiser, with a schema that can later support multiple shows, advertisers, channel ingestion, reporting and clipping. The React dashboard talks to a FastAPI backend; production runs the API on Render and the UI at adverify.codewithbharat.dev.

Architecture

A YouTube URL is analyzed for metadata, a timestamped transcript is built through a fallback chain, then advertiser aliases are matched and each hit is returned with context and a deep link.

AdMention AI architecture
  1. YouTube
    • Video URL
    • oEmbed metadata
    • Optional Data API
  2. Transcript
    • YouTube captions
    • yt-dlp timed text
    • Optional Whisper

    Fallback chain

  3. Advertiser
    • Name
    • Aliases
  4. Search
    • Alias matching
    • Contextual analysis
  5. Results
    • Timestamp
    • Context
    • Type + confidence
    • Watch at t=

Engineering decisions

oEmbed first, YouTube Data API optional
Title, channel and thumbnail work without a key. published_at and duration stay empty until a server-side YouTube Data API key is set — the dashboard states that instead of inventing those fields.
Caption-first transcript chain
Try timestamped YouTube captions, then yt-dlp timed text, then a local fixture. Whisper is an optional fallback when captions do not exist — not the default path.
Keep the YouTube API key on the backend
A Data API key belongs in server environment variables. It is not shipped in the React app or committed to git.
One video, one advertiser for the MVP
The first useful loop is analyze → search → jump to the mention. Multi-show ingestion and clipping wait until that loop is solid.

What the dashboard does

Paste a YouTube URL, analyze it, then search for an advertiser or phrase. Each row is a mention: timestamp, the matched text, surrounding context, type, confidence and a Watch on YouTube link.

  • Live: https://adverify.codewithbharat.dev/
  • Health check: GET /api/health
  • Published date and duration require a YouTube Data API key

02 images · open slider

Lessons

  • Use the captions YouTube already has before paying for speech-to-text.
  • If a field needs an API key, leave it empty and say so — do not invent a publish date.