DEV Community

Aman Bhawsar
Aman Bhawsar

Posted on

Passion Profiler — an AI that scores and speaks what a YouTuber truly loves

DEV Weekend Challenge: Passion Edition Submission

This is a submission for Weekend Challenge: Passion Edition

What I Built

Passion Profiler turns any YouTube creator's channel into an AI "passion portrait" — a scored, quoted, and spoken tribute to what they truly care about.

The theme is passion, and nothing shows a person's passion better than hours of their own words spoken straight to camera. So I built a tool that reads those words and reflects the passion back.

Point it at a channel and it:

  1. Pulls the transcripts of their recent videos.
  2. Sends them to Google Gemini, which uncovers what the creator is deeply passionate about — their obsessions, a Passion Score (0–100), and their most fired-up quotes.
  3. Writes a heartfelt fan tribute and speaks it aloud with ElevenLabs.
  4. Renders it into a shareable HTML "passion portrait."

Real example — Veritasium, from 6 videos:

Passion Score: 95/100"A relentless detective of the physical world, driven by the wonder of discovery and the moral imperative of empirical truth."
🔥 The scientific method as a moral compass · The elegance of algorithmic thinking · Unsolved mathematical mysteries
💬 "That is not science. That is not justice."

Demo

A "passion portrait" for Veritasium (Passion Score 95/100), with the tribute voiced by ElevenLabs:
Passion Portrait for Veritasium — Passion Score 95/100

Code

GitHub logo Amanbhaw / passion-profiler

Turn any YouTube creator's channel into an AI 'passion portrait' — scored, quoted, and spoken. Gemini + ElevenLabs, free tiers. DEV Weekend Challenge.

❤️‍🔥 Passion Profiler

Turn any YouTube creator's channel into an AI "passion portrait" — a scored quoted, and spoken tribute to what they truly love.

Point it at a channel. It reads their actual words (transcripts), figures out what fires them up, scores how passionately they speak, pulls their most electric quotes, writes them a heartfelt tribute, reads that tribute aloud and drops the whole thing into a single shareable HTML page.

Built for the DEV Weekend Challenge — Passion Edition. Runs entirely on free tiers.


Try it in 60 seconds (no API key)

git clone https://github.com/Amanbhaw/passion-profiler.git
cd passion-profiler && pip install -r requirements.txt
python passion_profiler.py --self-test
Enter fullscreen mode Exit fullscreen mode

--self-test really runs the engine: it fetches a live YouTube transcript through WARP, synthesizes a voice clip, and renders an HTML portrait — proving every stage works before you add any key. Then add one LLM key (below) and point…

How I Built It

Python, one file, three stages — each with a free path.

1. Getting transcripts is the hard part. YouTube blocks datacenter IPs, so yt-dlp from a server gets "Sign in to confirm you're not a bot." I solved it with a bundled, self-contained Cloudflare WARP userspace proxy (warp.py): it registers an anonymous WARP credential and runs wireproxy so traffic exits from Cloudflare's IP pool — no account, no root, and it works inside Docker with a plain docker run. If a video has no captions, it downloads the audio and transcribes it locally with Whisper — so every video is covered.

2. The passion analysis is a single Google Gemini call returning strict JSON (headline, passion score, passions with evidence, fire quotes, tribute). The LLM layer is pluggable — Gemini, local Gemma, Groq, NVIDIA, OpenAI, Claude, Mistral all auto-detect, and a --check command verifies your setup.

3. Voice is ElevenLabs (eleven_multilingual_v2), with a free Edge-TTS fallback so it never hard-fails.

The whole thing runs on free tiers, auto-loads .env, and ships a --self-test that proves every stage with no API key.

Prize Categories

  • Best use of Google AI — Gemini does the entire passion analysis, reading transcripts and returning structured insight plus the tribute.
  • Best use of ElevenLabs — the tribute isn't just text; ElevenLabs voices it, turning a paragraph into something that feels like a heartfelt message.

Built with love for creators who pour themselves into their work.

Top comments (0)