Back to projects
Podcast Generator overview
Concept2026

Podcast Generator

FIFA Podcast Player & Generator · Personal Project

A mobile app where fans can browse a library of FIFA podcasts or generate a personalized episode through a conversational AI wizard — grounded in a knowledge base built from hundreds of scraped FIFA articles, scripted, and narrated end to end. Sole author of the scraping pipeline, the retrieval layer, and the audio-generation backend.

React NativeExpoExpoSupabaseSupabasepgvectorOpenAIOpenAIElevenLabsElevenLabs

A Knowledge Base Before a Wizard

Built From Real Coverage

~555 articles, ~2,635 searchable chunks

A scraping pipeline pulls FIFA coverage into a knowledge base, chunked and embedded into Postgres with pgvector — real source material, not just whatever the model happens to remember about football.

Retrieval Runs First

Retrieval before drafting

The conversational wizard runs semantic search over the knowledge base before it drafts anything, so an episode is built from matching coverage rather than the model inventing match details from general training knowledge.

Hot Topics, on Demand

A running start instead of a blank prompt

A dedicated endpoint surfaces trending topics straight from the knowledge base, so a session can open with "here's what's happening" instead of asking the user to think of an idea first.

Script to Audio, One Pipeline

A Brief Built Over Turns

Tool calls stay in-process

An agent loop turns a loose idea into a structured episode brief across turns, tracking step and completion state — and dispatches its own tool calls to sibling functions directly rather than round-tripping over the network.

Script, Then Voice

A forced structure, timed to the minute

Script generation is constrained to a strict submit_script tool call — a title plus labeled sections — and paced against a words-per-minute constant, before ElevenLabs renders the narrated episode in a chosen voice.

A Job You Can Poll

Generation is async by design

A full episode render takes real time, so generation runs as a trackable job with its own status endpoint instead of holding a request open — with a faster preview render available before committing to the full one.

It's Still a Podcast Player

Generation sits inside a real listening app

Offline downloads, background playback, a sleep timer, variable-speed playback with pitch correction, favorites, queueing, listening history, and Supabase-backed sign-in with Google or Apple round out the app a generated episode actually lives in.