beetbox / beets

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

Scrub and mbsync are fighting over date fields #1645

Closed addisonamiri closed 8 years ago

addisonamiri commented 8 years ago

When I run beet update it's removing the month, day, and original_day fields from my tracks because of the scrub plugin but mbsync doesn't account for this when syncing the fields and rewrites them to the file. This seems like unintended behavior.

To reproduce add both plugins with their default options and run beet update and beet mbsync.

sampsyo commented 8 years ago

The scrub plugin shouldn't remove any of the standard beets fields, such as month. Any chance you mean zero or some other interaction? Maybe a concrete example with output would help.

addisonamiri commented 8 years ago

Sorry for the confusion. It looks like scrub isn't the problem. I just disabled it and I'm still getting the same interaction. As for clarification beet update is setting the mentioned fields to 00 and beet mbsync is setting them back to their values. I don't think it's anything in my config but here it is in case I'm just not seeing it.

directory:      ~/Sounds/Music
library:        ~/Sounds/Music/beetslibrary.blb
asciify_paths:  yes
sort_item:      albumartist+ album+ disc+ track+
plugins:        scrub chroma embedart fetchart mbsync the play missing duplicates fromfilename info

import:
  timid:        yes
  move:         yes

ui:
  color:        yes

paths:
  default:      %the{$albumartist}/($year) $album/$track $title
  singleton:    %the{$albumartist}/($year) $album/$track $title
  comp:         %the{$albumartist}/($year) $album/$track $title

embedart:
  maxwidth:     500

acoustid:
  apikey:       3mCDWUzedB

play:
  command:      mpv --no-audio-display --playlist

As far as more help reproducing it I'm not sure what else I can say. Here's the first few lines of each command showing the output.

% beet update
Chance the Rapper feat. B.J. the Chicago Kid, Lili K, Kiara Lanier, Peter CottonTale, Will & J.P. Floyd - Acid Rap - Good Ass Intro
  month: 04 -> 00
  day: 30 -> 00
  original_day: 30 -> 00
Chance the Rapper feat. Nate Fox & Lili K - Acid Rap - Pusha Man
  month: 04 -> 00
  day: 30 -> 00
  original_day: 30 -> 00
Chance the Rapper feat. Vic Mensa & Twista - Acid Rap - Cocoa Butter Kisses
  month: 04 -> 00
  day: 30 -> 00
  original_day: 30 -> 00
Chance the Rapper - Acid Rap - Juice
  month: 04 -> 00
  day: 30 -> 00
  original_day: 30 -> 00
...

% beet mbsync
mbsync: Skipping album with no mb_albumid: ABSRDST - Mix4AMDISCS
mbsync: Skipping album with no mb_albumid: ABSRDST - Too Future Guest Mix
Chance the Rapper feat. B.J. the Chicago Kid, Lili K, Kiara Lanier, Peter CottonTale, Will & J.P. Floyd - Acid Rap - Good Ass Intro
  month: 00 -> 04
  day: 00 -> 30
  original_day: 00 -> 30
Chance the Rapper feat. Nate Fox & Lili K - Acid Rap - Pusha Man
  month: 00 -> 04
  day: 00 -> 30
  original_day: 00 -> 30
Chance the Rapper feat. Vic Mensa & Twista - Acid Rap - Cocoa Butter Kisses
  month: 00 -> 04
  day: 00 -> 30
  original_day: 00 -> 30
Chance the Rapper - Acid Rap - Juice
  month: 00 -> 04
  day: 00 -> 30
  original_day: 00 -> 30
...

This makes me think that the month, day, and original_day fields aren't being properly recorded in the beets database so update is going through changing the metadata in the files with the wrong (or missing) data from the database.

Let me know if there's anything else I could supply to make this easier. I'll probably get the time to dig through the code myself in the next week or so if you're busy but for now this is all I can do. That being said I'm still not sure if it's a bug or my fault yet.

sampsyo commented 8 years ago

Aha—I think this is an instance of #1334, which should be fixed in the latest source (a new version will be out very soon). Can you check whether that fixes it? Or, if you hang on for a moment, there may be a new official release for you to try.

addisonamiri commented 8 years ago

Yup that look like the problem. Glad to see it's fixed. Thanks for your help ^_^