Beets#
http://beets.readthedocs.org/en/v1.3.13/
I have an extensive collection to import into beets. I also did some things wrong in the beginning which resulted in various errors. Here is my current workflow.
Given:
old collection in
~/x/
new collection in
~/music/
Paths should be genre/artist/year - album/track - title
.
Here is the config:
directory: ~/music
asciify_paths: True
plugins: chroma discogs duplicates info fromfilename
format_item: $artist - $album - $track - $title
import:
copy: no
move: no
write: no
paths:
default: %lower{$genre}/$albumartist/%if{year,$year - }$album%aunique{}/$track - $title
singleton: singles/%if{year,$year - }$album/$artist - $title
comp: %lower{$genre}/0-various-artists/%if{year,$year - }$album%aunique{}/$track - $title
Note that I do not copy, move or write on import. This is essential.
I import per genre. Here is an example for importing funk:
beet import ~/x/Funk
# decide when prompted
# use another terminal to "beet info {somefile}"
# use browser to find weird stuff on musicbrains or discogs
# do some manual tagging here
# usually i disagree with the genres ;)
beet move
# to actually move the files from ~/x to ~/music
beet fingerprint
# i believe fingerprinting to be a great idea
beet write
# write library info to the individual files
Import, fix genre, and reorganize files:
beet import foo
beet ls -f '$format $genre $path' fooquery
beet ls fooquery genre:wrong
beet modify fooquery genre:wrong genre=right
beet import --noautotag -L fooquery
Grep for stuff and remove it (easy :>):
beet ls -p fooquery | grep 'EXCLUDEME' | xargs --delimiter "\n" --replace printf "path:{}\0" | xargs -0 -L1 --replace beet remove -f '{}'