With current Picard 2.1.3 this is not easily possible, but the upcoming 2.2 release will have support for register_file_post_load_processor
which a plugin can use to run a function directly after files have been loaded. Likewise there is a register_file_post_save_processor
to run after the file has been saved. You can already try this by using the current development version.
One already existing plugin making use of this is at https://github.com/metabrainz/picard-plugins/blob/2.0/plugins/haikuattrs/haikuattrs.py
For unsynchronized lyrics it’s easy, you can just read the file in the post load processor and add the content to the lyrics
tag.
I am just not entirely sure about the sylt tag since Picard does not actually have a builtin tag mapping for this and the format is kind of special. Maybe you need to store the file content on load in a hidden tag (start the tag name with ~
, e.g. metadata['~sylt']
) and post save you use the mutagen library directly to add this tag. How do .lrc
files look like, is it a text format? Are they something widely supported? Maybe the proper way to handle is would be to teach Picard to handle this format and add a proper tag mapping for it (e.g. have an internal tag synclyrics
which gets saved to SYLT properly).