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:
- Pulls the transcripts of their recent videos.
- 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.
- Writes a heartfelt fan tribute and speaks it aloud with ElevenLabs.
- 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:

Code
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
--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)