Abbas MerchantWinter 2027. Read what I’m looking for

Case study · Product

Spotify Lyrics Translator

Live English translation of lyrics, line by line, inside Spotify's web player. Published on the Chrome Web Store.

Role
Solo: architecture, API integration, Web Store release
Timeline
2025 – 2026 · v2.1 shipped Mar 2026
Platform
Chrome extension · Manifest V3
Stack
JavaScript, Chrome Extensions API, HTML/CSS, LRCLib
  1. Otra tarde que se pierde en la ciudadAnother afternoon getting lost in the city
  2. El mar de fondo, nadie tiene prisaThe sea in the background, nobody in a hurry
  3. Guardo el verano en una foto viejaI keep the summer in an old photo
  4. Y la canción que nunca terminéAnd the song I never finished
  5. Si vuelves, avísame primeroIf you come back, let me know first
  6. Que tengo luces nuevas en la calleI've got new lights out on the street
  7. Bailamos hasta que se apague todoWe dance until everything goes dark
  8. Y el reloj se olvida de contarAnd the clock forgets to count
  9. No sé si fue el calor o fue tu risaI don't know if it was the heat or your laugh
  10. Pero esta noche no se va a acabarBut tonight isn't going to end
0:00
0:40
The lyrics view, live. Press play, then switch between Original, Translated only, and Side by side. Lines written for this demo.
300+
installs since launch
3
display modes
33 KB
total size
v2.1
current release

Problem

Spotify shows the words. It doesn't show the meaning.

Spotify has synced lyrics for a huge share of its catalogue, but if a song isn’t in English you get the text without any idea what it says. The existing answer was another tab and a lot of copy and paste, which falls apart the moment the next line lights up.

I wanted the translation on the lyric line itself, in time with the song, without leaving the player.

What I built

Translation that keeps up with the song.

  • Translation on the line itself.

    When Spotify has synced lyrics, each line is translated in place while Spotify's own timing and highlighting keep working. The translation moves with the song.

  • Three ways to read.

    Original, Translated only, or Side by side. Language learners want both; everyone else wants the meaning without the clutter.

  • A fallback when Spotify has nothing.

    If Spotify has no lyrics for a track, the extension searches LRCLib and shows what it finds in its own panel, so the feature doesn't silently disappear on obscure songs.

  • Nothing to install but the extension.

    It runs inside open.spotify.com. No desktop app, no account, and it only reads the song title, artist, and the visible lyric text.

The hard part

Living inside someone else's single-page app.

Spotify’s web player re-renders the lyrics view constantly and offers no lyrics API. The extension has to watch the DOM for lyric lines as they appear, request translations, and overlay them without breaking Spotify’s own highlighting as playback moves. It also has to notice track changes and view changes and start over cleanly, every time, without ever touching what Spotify draws.

Getting that stable across Spotify updates was most of the work, and it’s why the extension went through a full rewrite for v2.

Outcome

Published, reviewed, and still installed.

Passed Chrome Web Store review and launched publicly, with 300+ installs since. v2.1 shipped in March 2026. I owned the product end to end: architecture, API integration, the store listing and privacy policy, and post-launch iteration.

Spotify's lyrics view showing the original Spanish lyrics.
Original
Spotify's lyrics view with the extension's default inline English translation.
Inline translation (default)