beetbox / beetbox/beets

Importer: Resolve duplicate tracks in a single directory with different format/quality

Open
#791 6 comments 13 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

As a beets user with a large library of music, I want to import albums that have duplicate tracks in varying formats and bitrates. When using silent mode, I want beets to import only the highest quality copy into the library. This is so that my re-organized library will have the best sound quality available to me.

I'd like to be able to define rules that state a hierarchy of formats to prefer when importing duplicates - i.e. something like FLAC > AAC > MP3.

Within a given lossy format, I would like to be able to specify that beets import the highest resolution copy - i.e. import a 320 kbps MP3 instead of a 128 kbps MP3 of the same track.

If this were to be done with metadata only - one way to define duplicates robustly might be:

If artist, album artist, title, and track title match exactly for all tracks in an album folder, AND there are an even multiple of tracks that the album should have relative to the musicbrainz/discogs entry (i.e. 2x the number of tracks, 3x the number of tracks etc.) then import the preferred format as set by user configuration, and import the highest bitrate copy within that preferred format.

Chromaprint might be used to fingerprint tracks to detect exactly duplicates as well.

Contributor guide

Open the contributing guide

Research direction

Begin with the importer’s duplicate-track handling and silent-mode configuration mentioned in the issue; inspect how metadata matching and format/bitrate preferences could fit before considering Chromaprint. Done means the scope and acceptance criteria are clear for selecting among duplicate formats and qualities during silent imports.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.