beetbox / beets

music library manager and MusicBrainz tagger
http://beets.io/
MIT License
12.73k stars 1.82k forks source link

Beatport Plugin: Ignore '(Original Mix) in file names for search #2237

Closed itsbrex closed 4 years ago

itsbrex commented 7 years ago

Is is possible to have Beets ignore (Original Mix) in file names when it performs the search query? If so then the % similarity would be nearly spot on with every song.

sampsyo commented 7 years ago

I don't believe it's currently configurable, but we actually do reduce the importance of text in parentheses. Do you happen to have a good example in hand of a match gone wrong?

itsbrex commented 7 years ago

@sampsyo I will tag some more tracks today and post some examples.

If Beets could ignore 'Original Mix)' but not '(xxxxx Remix)' or (xxxxx Dub Mix)' etc. then we'd really be onto something. ;)

itsbrex commented 7 years ago

@sampsyo So I've got an example. How should I send it to you? Don't want to get in trouble for sharing music illegally. 😉

Agents Of Time - Magma (Original Mix) refuses to be found not matter how I structure the metadata or filename, but the track does exists in the catalogue: https://www.beatport.com/track/magma-original-mix/7574617 so I'm not sure what is going on.

2016-10-27 at 4 09 pm

itsbrex commented 7 years ago

The output of my beet config

is this:

lyrics:
    bing_lang_from: []
    bing_client_secret: REDACTED
    google_API_key: REDACTED
    force: no
    google_engine_ID: REDACTED
    sources:
    - google
    - lyricwiki
    - lyrics.com
    - musixmatch
    auto: yes
    fallback:
    genius_api_key: REDACTED
    bing_lang_to:
fetchart:
    cautious: yes
    cover_names: cover front art album folder
    sources: itunes *
    maxwidth: 800
    enforce_ratio: yes
    auto: yes
    minwidth: 0
    google_engine: 001442825323518660753:hrh5ch1gjzm
    store_source: no
    google_key: REDACTED
    fanarttv_key: REDACTED

import:
    copy: no
    write: yes
    resume: yes
    quiet_fallback: skip
    timid: no
    log: beetslog.txt
library: /Users/anodigital/github/beets/music.blb
original_date: yes
ftintitle:
    auto: yes
    drop: no
    format: feat. {0}
embedart:
    maxwidth: 1000
    compare_threshold: 0
    auto: yes
    ifempty: no
    remove_art_file: no
pluginpath: ~/github/beets/beetsplug

plugins: beatport edit embedart fetchart fuzzy importadded lyrics mbsync spotify types discogs duplicates

musicbrainz:
    user: brexy
    pass: REDACTED
mbcollection:
    auto: yes
acousticbrainz:
    auto: yes
threaded: yes
art_filename: cover
duplicate_action: remove
none_rec_action: skip
setlister:
    playlist_dir: ~/Music/ROACH\ Music/Setlists
beatport:
    source_weight: 0.5
    tokenfile: beatport_token.json
    apikey: REDACTED
    apisecret: REDACTED
ignore: .AppleDouble ._* *~ .DS_Store
edit:
    itemfields: track title artist album genre key bpm
    albumfields: album albumartist
    ignore_fields: id path

ui:
    color: yes
    colors:
        text_success: green
        text_warning: yellow
        text_error: red
        text_highlight: red
        text_highlight_minor: lightgray
        action_default: turquoise
        action: blue

match:
    strong_rec_thresh: 0.05
    medium_rec_thresh: 0.25
    rec_gap_thresh: 0.25
    max_rec:
        missing_tracks: medium
        unmatched_tracks: medium
    ignored: missing_tracks unmatched_tracks
directory: /Users/anodigital/Music/beets_music
lastgenre:
    fallback: ''
    canonical: ''
    source: track
    count: 4
    force: no
    min_weight: 10
    auto: yes
    whitelist: yes
    separator: ', '
group_albums: no
acoustid:
    apikey: OCRrjtfen1
discogs:
    source_weight: 0.5
    tokenfile: discogs_token.json
    apikey: REDACTED
    apisecret: REDACTED
importadded:
    preserve_write_mtimes: no
    preserve_mtimes: no
spotify:
    regex: []
    artist_field: albumartist
    mode: list
    track_field: title
    album_field: album
    region_filter:
    show_failures: no
    tiebreak: popularity
duplicates:
    count: no
    full: no
    format: ''
    keys: []
    move: ''
    tag: ''
    path: no
    copy: ''
    tiebreak: {}
    album: no
    strict: no
    checksum: ''
    merge: no
    delete: no
fuzzy:
    threshold: 0.7
    prefix: '~'
sampsyo commented 7 years ago

Hmm… can you explain a little more about what you expected would happen up there? It kinda looks like MusicBrainz just doesn't have the album you're interested in…

itsbrex commented 7 years ago

Ideally, beets would source 100% of metadata from Beatport since that is where every single song in this folder of music is from. Can I just disable Musicbrainz somehow?

The real issue tho is that when Beets queries "Agents Of Time - Magma" no candidates are found despite it existing in Beatport.

sampsyo commented 7 years ago

Huh. It's not showing up in the list of candidates at all. Does beats match it if you paste the ID for the Beatport entry?

There is not currently a way to disable MusicBrainz.

itsbrex commented 7 years ago

Yeah, it matches it perfectly.

sampsyo commented 7 years ago

OK, so I think the real question here is why the album can't be found by normal means in the Beatport plugin. It might just be a deficiency in their search API. Can you include the output of the successful ID-based match so we can reproduce it?

itsbrex commented 7 years ago

Sorry for the delay. Yes, I will output post back the ID soon.

itsbrex commented 7 years ago

@sampsyo here you go. Actually forgot about this, so sorry it took so long.

briansmac:test anodigital$ beet import -s ''

/Users/anodigital/Desktop/test/Agents Of Time - Magma (Original Mix).aif
Finding tags for track "Agents Of Time - Magma (Original Mix)".
Candidates:
1. Genius of Time - Juno Jam (original mix) (50.0%) (length, title, artist)
2. Agents of Time - Magdalene (45.9%) (length, title)
3. Agents of Time - Polina (39.3%) (title, length)
4. Agents of Time - Polina (Aex Smoke remix) (37.6%) (title, length)
5. Time of the Mumph - Control (original mix) (30.3%) (length, artist, title)
6. HELSINKI J - Out Of Time (Out Of Time (Original Extended Mix)) (28.4%) (length, title, artist, ...) (Beatport)
7. HELSINKI J - Out Of Time (Out Of Time (Original Extended Edit Mix)) (27.2%) (title, length, artist, ...) (Beatport)
8. Benj Baer - Simmons Agents of Blue (Reflex Mix) (24.3%) (title, length, artist, ...) (Beatport)
9. Benj Baer - Simmons Agents of Blue (Reflex Mix) (24.3%) (title, length, artist, ...) (Beatport)
10. Benj Baer - Simmons Agents of Blue (Reflex Mix) (24.3%) (title, length, artist, ...) (Beatport)
# selection (default 1), Skip, Use as-is, Enter search, enter Id, aBort,
Print tracks, eDit, edit Candidates? i
Enter recording ID: https://www.beatport.com/track/magma-original-mix/7574617
Correcting track tags from:
    Agents Of Time - Magma (Original Mix)
To:
    Agents Of Time - Magma
URL:
    http://beatport.com/track/magma-original-mix/7574617
(Similarity: 82.0%) (source, title) (Beatport)
[A]pply, More candidates, Skip, Use as-is, Enter search, enter Id, aBort,
Print tracks, eDit, edit Candidates?
itsbrex commented 7 years ago

@sampsyo And when I try to search for the track manually. Same thing. This time I tried removing the 'Original Mix' from the existing metadata / filename to see if it would have any effect, but no luck.

beet import -s ''

/Users/anodigital/Desktop/test/Agents Of Time - Magma.aif
Finding tags for track "Agents Of Time - Magma".
Candidates:
1. Donut Junkie - Magma (50.0%) (length, artist)
2. The 3rd and the Mortal - Magma (49.2%) (length, artist)
3. Robert Rich & Steve Roach - Magma (47.8%) (length, artist)
4. Kitaro - Magma (45.2%) (length, artist)
5. Sailor & I, Agents Of Time - Fire on the Moon (Agents of Time Remix) (36.1%) (title, length, source, ...) (Beatport)
6. WhoMadeWho, Agents Of Time - Traces (Agents Of Time Remix) (35.9%) (title, length, source, ...) (Beatport)
7. Lords of Acid - Hot Magma (33.9%) (length, artist, title)
8. Marc Romboy, Agents Of Time - Simi (Agents of Time Remix) (29.8%) (title, length, source, ...) (Beatport)
9. Stephan Bodzin, Agents Of Time - Zulu (Agents Of Time Remix) (27.5%) (title, length, source, ...) (Beatport)
10. Manuelle Musik, Agents Of Time, Steffen Sonnenschein - Gun (Agents of Time Remix) (23.3%) (title, length, artist, ...) (Beatport)
# selection (default 1), Skip, Use as-is, Enter search, enter Id, aBort,
Print tracks, eDit, edit Candidates? e
Artist: Agents of Time
Track: Magma
Finding tags for track "Agents Of Time - Magma".
Candidates:
1. Donut Junkie - Magma (50.0%) (length, artist)
2. The 3rd and the Mortal - Magma (49.2%) (length, artist)
3. Robert Rich & Steve Roach - Magma (47.8%) (length, artist)
4. Kitaro - Magma (45.2%) (length, artist)
5. Sailor & I, Agents Of Time - Fire on the Moon (Agents of Time Remix) (36.1%) (title, length, source, ...) (Beatport)
6. WhoMadeWho, Agents Of Time - Traces (Agents Of Time Remix) (35.9%) (title, length, source, ...) (Beatport)
7. Lords of Acid - Hot Magma (33.9%) (length, artist, title)
8. Marc Romboy, Agents Of Time - Simi (Agents of Time Remix) (29.8%) (title, length, source, ...) (Beatport)
9. Stephan Bodzin, Agents Of Time - Zulu (Agents Of Time Remix) (27.5%) (title, length, source, ...) (Beatport)
10. Manuelle Musik, Agents Of Time, Steffen Sonnenschein - Gun (Agents of Time Remix) (23.3%) (title, length, artist, ...) (Beatport)
# selection (default 1), Skip, Use as-is, Enter search, enter Id, aBort,
Print tracks, eDit, edit Candidates?
sampsyo commented 7 years ago

Well, that's odd. I think this is a bug in the Beatport search API. I added some logging, and the plugin submits this query to the API:

{'query': u'agents of time magma', 'facets': ['fieldType:track'], 'perPage': 5}

as expected. It gets this response: https://gist.github.com/sampsyo/904fb0cdab3881386fa265f0db9b3a84

which doesn't return the track that it obviously should. Maybe a bug report to Beatport itself is in order?

itsbrex commented 7 years ago

Interesting. I thing a bug report is in order. I did a quick search and didn't see a github for them & google results aren't helpful at all. You think an email would be best with a link to your comment, or do you have a better suggestion?

sampsyo commented 7 years ago

Hmm, I don't see many other better avenues for support… there's this mailing list, but that seems like a long shot too. https://groups.google.com/forum/#!forum/beatport-api Maybe give both that and a direct email a try?

stale[bot] commented 4 years ago

Is this still relevant? If so, what is blocking it? Is there anything you can do to help move it forward?

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.