Beets

From Indie IT Wiki

Beets is a cross platform media library management system.

HOWTO: INSTALL:

Linux

sudo apt install python-dev python-pip # if you do not already have installed
sudo -H pip install beets requests Pillow

Display configuration file location...

beet config --paths

Edit configuration file...

beet config --edit

directory: ~/Downloads/music/beets/done
library: ~/Downloads/music/beets/musiclibrary.db
plugins: zero fetchart embedart
paths:
  default: $albumartist/[$year] $album/$track $title
id3v23: yes
art_filename: cover
autotag: yes
import:
  copy: yes
  write: yes
zero:
  keep_fields: title artist album year track genre images
embedart:
  maxwidth: 500

Make directory...

mkdir -p ~/Downloads/music/beets/done

HOWTO: UPGRADE:

Linux

sudo -H pip install --upgrade beets

HOWTO: USE:

Linux

beet import /path/to/music/album

If it has no problem with matching the correct album, you will just get a summary screen and then go back to the prompt.

Check your directory (shown in the configuration file above) for the processed album and move to your required location.

If it does have a problem matching the album, it will pause and show you options. Press the corresponding letter on your keyboard to continue.

Example Config File

Below is an example of a complex config file:

directory: /path/to/music
library: /config/musiclibrary.blb
art_filename: albumart
threaded: yes
original_date: no
per_disc_numbering: no

import:
    write: yes
    move: yes
    copy: no
    resume: ask
    incremental: yes
    quiet_fallback: skip
    autotag: yes
    timid: no
    log: /config/beet.log

musicbrainz:
    host: xxx.xxx.xxx.xxx:xxxx
    ratelimit: 100

########### DOCKER DEFUALTS #################

paths:
    default: $albumartist/$album%aunique{}/$track - $title
    singleton: Non-Album/$artist - $title
    comp: Compilations/$album%aunique{}/$track - $title
    albumtype_soundtrack: Soundtracks/$album/$track $title

replace:
    '^\.': _
    '[\x00-\x1f]': _
    '[<>:"\?\*\|]': _
    '[\xE8-\xEB]': e
    '[\xEC-\xEF]': i
    '[\xE2-\xE6]': a
    '[\xF2-\xF6]': o
    '[\xF8]': o
    '\.$': _
    '\s+$': 

web:
    host: 0.0.0.0
    port: 8337

########### Additions #####################

# import folders are deleted if only files matching these patterns are left in folders 
clutter: ["Thumbs.DB", ".DS_Store", "*.m3u", ".pls", "*.jpg"]

########### PLUGINS #####################

# chroma and web installed with docker #

plugins: fetchart lyrics lastgenre embedart ftintitle convert scrub replaygain missing chroma web duplicates missing fromfilename

fetchart:
    auto: yes
    maxwidth: 300
    cautious: true
    sources: amazon filesystem coverart albumart google  wikipedia
    fanarttv_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxx

lyrics:
    fallback: 
    force: yes

lastgenre:
    auto: yes
    source: album
    canonical: yes
    canoncical: /config/genres-tree.yaml
    fallback: unknown
    whitelist: /config/genres.txt

embedart:
    auto: yes
    maxwidth: 300

ftintitle:
    auto: yes

convert:
    auto: no
    ffmpeg: /usr/bin/ffmpeg
    opts: -ab 320k -ac 2 -ar 48000
    max_bitrate: 320
    threads: 1

scrub:
    auto: yes

replaygain:
    auto: yes
    overwrite: yes

#duplicates:
#    move: /duplicates

missing:
    format: $albumartist - $album - $track - $title
    count: no
    total: yes

Thanks to DZMM

Help and Information

Official Web Site

Forum

Manual

GitHub