Skip to content

Add syllable_lyrics endpoint.#290

Closed
bohning wants to merge 4 commits intoglomatico:mainfrom
bohning:main
Closed

Add syllable_lyrics endpoint.#290
bohning wants to merge 4 commits intoglomatico:mainfrom
bohning:main

Conversation

@bohning
Copy link
Copy Markdown

@bohning bohning commented Apr 13, 2026

This adds the syllable_lyrics endpoint for ttml and prefers those over the lyrics in the metadata, if available. It falls back to the metadata lyrics if they are not.

bohning added 3 commits April 13, 2026 21:09
This adds the syllable_lyrics endpoint for ttml and prefers those over the lyrics in the metadata, if available. It falls back to the metadata lyrics if they are not.
@MDSVJ
Copy link
Copy Markdown

MDSVJ commented Apr 15, 2026

Would it be possible to have the option of embedding line-synced lyrics in the audio file, whilst having syllable-lyrics download in an external .ttml file? If no syllable-lyrics exist for the given track , it should just skip the external file. Great work on this PR, hopefully it gets merged ASAP.

@MarximusMaximus
Copy link
Copy Markdown

MarximusMaximus commented Apr 16, 2026

Embedding might be better as a separate PR with a command line option to embed? I for one need to download all the lyrics files available as separate files...

@MDSVJ
Copy link
Copy Markdown

MDSVJ commented Apr 17, 2026

Embedding might be better as a separate PR with a command line option to embed? I for one need to download all the lyrics files available as separate files...

Agreed, an option in the config file would be the best approach.

@bohning
Copy link
Copy Markdown
Author

bohning commented Apr 17, 2026

Let me know what options you would like to see.

@MDSVJ
Copy link
Copy Markdown

MDSVJ commented Apr 18, 2026

Im not sure if this is too complicated to code as I have no experience but here is what I think is a good approach. 2 lyrics parameters, one for "embedded lyrics format" and another for "external lyrics format. Both would have the following options to choose from:

  • unsynced (standard .lrc)

  • synced (line-synced .lrc)

  • syllable-lyrics (word-by-
    word .ttml)

  • none (wont fetch the lyrics for the chosen parameter)

Thanks!

@bohning
Copy link
Copy Markdown
Author

bohning commented Apr 18, 2026

My use case was easy, get the best (word-synced > line-synced > unsynced) lyrics available as ttml, write to file and embed. So this was easy to solve, just request the best available and write that to file and embed into the audio file.

Other use cases seem to make things more complicated:

  • Availability: Apple may have word-synced, line-synced unsynced or no lyrics at all.

  • Format support: ttml supports word-synced, line-synced and unsynced lyrics, lrc supports line-synced, but not unsynced, enhanced lrc (also .lrc) supports word-synced lyrics, .srt supports line-sync only, but neither word-synced nor unsynced lyrics.

  • User preferences: users may or may not want to embed, may or may not want to have an external file, may want file and embedding to be different, may or may not want to fallback to line-synced or unsynced lyrics. And there may be conflicting options like embed-lyrics-in-audio and lyrics-only would contradict each other.

@MDSVJ
Copy link
Copy Markdown

MDSVJ commented Apr 18, 2026

Completely understandable. My issue with only having the .ttml format is that most media players do not support it. Unsynced and line-synced .lrc is widely compatible. TTML really only makes for syllable-level lyrics as thats the only format that can properly do them. However, I do understand that it is the native apple format. An option to have an external .ttml file with no embedded lyrics in the audio file itself would be more than enough. Thanks!

The following project might help as it achieves this: https://github.com/zhaarey/apple-music-downloader

@bohning bohning closed this by deleting the head repository Apr 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants