🔧 Programmierung 🕛 vor 2 Monaten 7 Min Lesezeit
0

Race Recap Radio — I turned my 10K into a hype sports broadcast

↗ Quelle (dev.to)
🗣️ Stimme:
📑 Inhaltsübersicht

This is a submission for if you're curious.)






Every run since gets logged on Strava—pace, heart rate, cadence, the works. But the data just sits there as numbers on a screen. It never feels like anything.



So I built Race Recap Radio.



Upload a .gpx or .tcx file exported from Strava, Garmin, Coros, Nike Run Club, or similar platforms, and the app turns your run into a broadcast-style race recap. Gemini writes the commentary from your actual run data, while ElevenLabs brings it to life with energetic sports commentary.



Real splits become real narrative beats: the grind, the redline heart-rate moment, the closing kick, and the payoff.



The demo on the homepage is my actual June 28 evening 10K: 10.11 km in 1:14:04, with my heart rate climbing from 158 to 197 bpm and a late surge that set two PRs.



Here's part of what Gemini and ElevenLabs produced:




"Alright sports fans, buckle up! We're diving deep into the Evening Run, a monumental 10.11 kilometer effort... Then came the ultimate test! The heart rate climbed, reaching a blistering 197 bpm, absolutely redlining! That's precisely where the notable surge ignited, between kilometer 8.6 and 9.1! And what a closing kick!"




Nothing in that commentary is invented. Every moment comes directly from the run itself—the surge, the heart-rate spike, the finishing kick—all detected from the uploaded activity.



The part I care about most is that it's not just my run.



Upload your own .gpx or .tcx file and you'll get a recap built entirely from your activity. Parsing happens entirely in your browser, so the raw GPS trace never leaves your device—only a compact summary is sent to generate the commentary.






Demo



🔗 Live app:




  • Or click "Upload your run" and drop in your own .gpx or .tcx. Below is a completely different 5K I uploaded to demonstrate that every upload generates a fresh recap rather than replaying canned audio.









GitHub logo



Turn any run into a hype broadcast-style audio recap






Race Recap Radio 🎙️



Turn a run into a hype, broadcast-style audio recap. Feed a run's real
splits, heart rate, and PRs to Gemini, which writes a sports-commentator
script, then to ElevenLabs, which voices it. Built for the dev.to








How I Built It



Everything flows through a single RunSummary model. Whether the source is the baked-in demo or an uploaded activity, every run is normalized into the same structure—distance, pace, heart rate, cadence, per-kilometer splits, best efforts, PR count, and detected race events—before anything touches an API.






Parsing real running files



Supporting both .gpx and .tcx turned out to be the trickiest engineering challenge.



TCX files provide cumulative distance at every point, which is essential because treadmill workouts often contain no GPS coordinates at all. GPX files, on the other hand, only contain latitude and longitude, so distance has to be reconstructed using the haversine formula between consecutive points.



Multi-lap TCX files introduce another wrinkle by resetting their cumulative distance every lap, so those segments have to be stitched back together manually. Regardless of format, the raw activity never leaves the browser.






Turning data into commentary



Gemini receives the summarized run data—splits, heart-rate progression, detected surges, PRs, and pacing trends—and writes a structured 45–60 second sports broadcast.



The prompt guides the narration through a consistent flow:




  • hype introduction

  • the grind

  • the redline moment

  • the closing kick

  • the payoff



If a run has no heart-rate data or no PRs, Gemini naturally adapts instead of mentioning missing information.






Giving it a voice



I originally chose a voice from ElevenLabs' shared Voice Library, only to discover that library voices require a paid subscription for API access—even on free accounts.



The fix was switching to one of the built-in premade voices ("Charlie — Deep, Confident, Energetic"), which works perfectly on the free tier. It was a small lesson, but exactly the kind of issue that can quietly break a live demo.






Protecting the free tier



ElevenLabs' free tier has a very limited generation quota, so I designed the app around it.




  • The homepage demo plays a pre-generated MP3 committed as a static asset, meaning unlimited playback without API usage.

  • Live generations are protected by Upstash Redis with both a per-IP hourly limit and a deployment-wide lifetime budget.

  • If a generation fails midway, its reserved quota is refunded so transient failures don't permanently consume the available budget.



Stack: Next.js 16, React 19, TypeScript, Tailwind CSS v4, Framer Motion, @google/genai, ElevenLabs REST API, Upstash Redis.



Running is already emotional.



I wanted the recap to sound the way it felt.






Prize Categories



Submitting for:




  • 🧠 Best Use of Google AI — Gemini transforms real running telemetry into an original sports commentary instead of a templated summary.

  • 🔊 Best Use of ElevenLabs — The voice isn't just an output; it's the experience that turns data into something worth listening to.

Vollständiger Original-Artikel
Den kompletten Beitrag mit allen Details direkt auf dev.to lesen.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
1 Quelle
Razer's new Tartarus V2 Pro is the weirdest gaming keyboard I've ever wanted, loaded with fancy switches and ergonomic relief
1 Quelle
HMX 6 mit Cortana-KI auf der zweiten RTX 5090 – Rückblick auf die HMX Pro
1 Quelle
Huawei ist gelungen, wovon Smartphone-Besitzer seit Jahren träumen
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Race Recap Radio — I turned my 10K into a hype sports broadcast

Thematisch verwandte Begriffe: Race, Recap, Radio, turned · 6 Treffer

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...