Map flexattrs to free-form file metadata
- Dominant language
- Python
- Stars
- 15.7k
- Forks
- 2.1k
- Avg merge
- 4d 21h
- Merged PRs (30d)
- 31
Description
### Use case
I'd like to have user defined tags that already exist in a track's metadata imported to the beets library. Currently, it appears that beets will import any metadata fields that correspond to the built-in fields, but ignores other metadata fields present in the files.
Additionally, `write` does not write any flexattrs that have been created in the beets library back to the files.
Flexattrs could potentially be much more powerful if the changes made with beets could be read by external music players. Using the metadata in the files themselves seems like the most portable way to do this. Any fields specific to a music player could be manipulated with beets as well.
### Solution
My understanding is that Vorbis comments allow for arbitrary field names, so I think it would be straightforward to map flexattr keys to vorbis keys.
ID3v2.4 has TXXX frames (User defined text information frame), which can provide similar functionality. See [http://id3.org/id3v2.4.0-frames](http://id3.org/id3v2.4.0-frames)
If beets can already do this, I could not see a way to do it.
Contributor guide
Research direction
No files or tests are named. Start by reviewing metadata import and write behavior, then check how Vorbis comments and ID3v2.4 TXXX frames are handled; done means user-defined flexattrs can be imported from files and written back for external players.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100