feat(music): embed plain lyrics and save timed lyrics from Song.synced_lyrics

This commit is contained in:
imSp4rky
2026-10-14 12:37:43 -06:00
parent b107bca168
commit 8a1fbf2de1
6 changed files with 22 additions and 11 deletions
+5 -3
View File
@@ -197,9 +197,11 @@ Each subclass adds its own required fields on top of `id_` and `service`:
A `Song` also takes optional metadata keywords that the tagger and the naming templates
read: `album_artist`, `release_type`, `total_tracks`, `total_discs`, `genre`,
`explicit`, `isrc`, `upc`, `copyright`, `label`, `lyrics`, `lyrics_suffix`, and
`artwork_url`. Read the class for the current list. With `lyrics_suffix` (`".lrc"`,
`".ttml"`), unshackle also saves `lyrics` beside the final audio file under that suffix.
`explicit`, `isrc`, `upc`, `copyright`, `label`, `lyrics`, `synced_lyrics`,
`lyrics_suffix`, and `artwork_url`. Read the class for the current list. Give `lyrics` as
plain text: the tagger embeds it as is. With `synced_lyrics` (timed LRC or TTML) and
`lyrics_suffix` (`".lrc"`, `".ttml"`), unshackle also saves the timed lyrics beside the
final audio file under that suffix.
You can set these fields in `get_tracks()` too, and a remote client gets them back.
The tagger also falls back to `Song.data` for fields the constructor did not get, such