6

As of now, I can just copy paste raw lyrics, which won't sync with the song!

Edit: I'm on Windows 10 Pro, Version 2004, Build 19541. iTunes is the iTunes64Setup.exe file install, not the Microsoft Store version, version: 12.10.3.1

I've seen other answers, and tried what they suggested, which worked, but it's not exactly what I'm looking for. See, what I could do right now is, go to a specific song in my song Library, right click it and go to Song Info, then Lyrics, and add Custom Lyrics. This works, and I'm able to view those static, unsynchronized lyrics on my iPhone.

But I wanna see if I can go a step further, adding synchronized lyrics, see how in some services, Apple Music maybe, or Spotify, the lyrics will auto scroll, or slide to the next line/verse as the song goes on. Similar to how Subtitles work in movies.

So is this something that could be done? Either using iTunes or any other software!

5
  • Welcome to Ask Different! Please see How to Ask for important info on asking questions. Your question is missing a lot of info. What version of itunes? Mac or Windows? What have you already tried (several answers already on this site)? You can edit your question to add that info.
    – fsb
    Commented Jan 21, 2020 at 13:40
  • @fsb oh hey thank you! I just edited my question!!
    – iBoolGuy
    Commented Jan 21, 2020 at 15:04
  • Iʼm looking for information how Apple stores time codes for lyrics, too. I assume that they are using a standard subtitle track in the MP4 file (i.e. closed captions), which could be in WebVTT, SRT or ASS/SSA format or, most likely, whatever it is that FFmpeg calls mov_text.
    – Crissov
    Commented Apr 21, 2020 at 6:42
  • apple.stackexchange.com/q/302857/67264
    – Crissov
    Commented Apr 21, 2020 at 6:47
  • You would try to add the lyrics as a Timed Text track according to MPEG-4 Part 17, assuming the music is in an MP4 container with .m4a file extension.
    – Crissov
    Commented Apr 21, 2020 at 12:51

1 Answer 1

0

There's a few variations to cover, including unsynced lyrics for completeness:

  • unsynced vs synchronized (also called time-synced or "Live Lyrics")
  • 3rd-party apps vs Apple-specific Music apps, like iTunes
  • MP3 files vs MP4 containers (M4A is audio-only MP4)

Unsynced lyrics

Unsynced lyrics are fairly easy. You can use the iTunes / Apple Music context menu => "Get Info" and paste in a block of text, which for MP3 files is an ID3 v2.something tag (USLT, which you can see in the eyeD3 Python library (contrast with SYLT for synced lyrics)).

  • This lrcput.py script shows how to use the Python libraries "eyed3" for MP3 files, and "mutagen" to embed them into FLAC.
  • MP4 containers are handled similarly, the mutagen MP4 API is nearly identical to its FLAC API.

3rd-party apps

For a non-iTunes app, you can generally download .lrc files for synchronized and name them similarly to the audio file, and the apps wil pick them up (see LRCGET, which uses https://lrclib.net/ to get lyrics).


Synced lyrics with Apple Music

Testing with various MP3 files with synchronized lyrics doesn't show any lyrics at all in Apple Music (source files from this 2021 blog). Unsynchronized lyrics show up fine. Ominously, Apple support docs mention that you won't have access to Live Lyrics without an Apple Music subscription.

Now for the original thing I was trying to do, Apple Music + M4A files: Apple currently uses Musixmatch to provide synchronized lyrics, which looks like anyone can submit lyrics to. These seem to be provided in TTML format, and are then made available to Apple Music subscribers.

Technical notes:

To apply synced lyrics to your local M4A files, it looks like you'll need to put them in the iTunes-specific "\xa9lyr" field (mutagen docs), and I think these same field names are used in MP3 ID3 tags, as well.

There exists at least one GitHub project that can read content profiles (including TTML data) from Apple Music and somehow embeds it in your audio files. On closer inspection, this project seems to be embedding unsynced lyrics:

  1. api.api.getInfo() calls Apple Music, passes the response to…
  2. api.parse.parseJson(), and the data-synced lyrics are in data["relationships"]["lyrics"]["data"][0]["attributes"]["ttml"].
  3. But when tagging actual files, core.process.tagger.tag() seems to be pulling lyrics from data["streams"][i]["lyrics"].

Outright embedding the contents of a full .lrc or .ttml with mutagen doesn't seem to work, though. I would guess that for Apple Music, synchronized lyrics are brought in through some side channel via the Apple Music subscription service.

6
  • Does Apple Music.app on macOS at all support synchronized lyrics embedded in local files (e.g. from amateur recordings)? Or do synchronized lyrics work only by "side channel loading" through the Apple Music subscription service?
    – porg
    Commented Jan 30 at 21:43
  • I haven't gotten Apple Music to show any synchronized lyrics at all, esp since I don't have an Apple Music subscription. I think a next step would be finding a file/system where synced lyrics work already, then checking if there's anything embedded in the files. Commented Feb 1 at 17:17
  • I answered this myself meanwhile as a stand-alone Q&A: Apple Music as of now only supports synchronized lyrics sideloaded from its Apple Music subscription service. It does not support loading synced lyrics from local files.
    – porg
    Commented Feb 2 at 7:02
  • You are right on your approach for further investigation: Get a file from a Mac which uses an Apple Music subscription. 1) Get a song with lyrics. 2) Get offline. Only then activate synced lyrics function. Works? Strong indication that embedded. 3) If not then get online try again. Works? Proof that only fetched on demand. 4) Go offline. Try again. 5) Quit Music app. Try again. 6) Restart. Try again. 456 test for potential caching or storing aside. 7) Inspect file with hex editor for lyric snippets.
    – porg
    Commented Feb 2 at 7:21
  • 1
    Dang. Greatly appreciate the checks and additional detail in your Q&A, I'll update my answer to match. Commented Feb 3 at 23:32

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .