DEV Community

Sourabh Kumar Dubey
Sourabh Kumar Dubey

Posted on

Song Saver: Share a Reel, Get the Song Later

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady

What I Built

Song Saver: share a reel or Short, get the song later.

I watch a reel, love the music, and by the time I open a search bar I've forgotten it. Song Saver removes the remembering. You share the link from your phone to a small server on your laptop and carry on with your day. In the background it downloads the audio, transcribes the lyrics, identifies the track, and adds it to a phone-friendly list you open whenever you feel like it. Anyone who has ever lost a song to a scroll gets to be a little lazier.

Code


How I Built It

  • Whisper (faster-whisper, base model): open-weight speech-to-text, runs locally and transcribes the lyrics.
  • gemma3:1b via Ollama: reads the noisy transcript and picks the single most searchable lyric line.
  • LRCLIB: an open lyrics database used to match that line to a track.
  • yt-dlp: downloads only the audio of the shared link.
  • Python stdlib server: a background queue, so sharing returns instantly, plus a small web page listing every saved song.

Flow: share, queue, download audio, Whisper, gemma, LRCLIB, saved list. If a song can't be identified, the entry is still saved, so nothing is lost.

Why Does Open Innovation Matter?

  • Privacy: my shared links and listening habits never go to a closed service. Transcription and lyric-picking happen on my own machine.
  • Cost: no API keys and no per-request fees, so I set it up once and never pay again.
  • Swappable parts: if Whisper base mishears a song, I change one word to small. If gemma struggles, I point Ollama at another model. A closed API wouldn't let me tune or swap the parts that way.
  • Open data: LRCLIB is a community-built lyrics database, so the whole pipeline is open end to end.

Limitations

Sped-up audio, instrumentals, and non-English lyrics are hard for Whisper base, and Instagram sometimes blocks yt-dlp (YouTube Shorts work reliably). Next steps: an on-phone version with whisper.cpp, and audio fingerprinting for instrumental tracks.

Top comments (0)