beetbox / beetbox/beets

Map flexattrs to free-form file metadata

Open
#3,326 4 comments 0 reactions 0 assignees View on GitHub
feature
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.