Project

General

Profile

Support #764

Install Beets on FreeBSD

Added by Daniel Curtis almost 9 years ago. Updated almost 9 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Multimedia Server
Target version:
Start date:
03/01/2016
Due date:
% Done:

100%

Estimated time:
0.50 h
Spent time:

Description

This is a guide on how I setup beets on FreeBSD to tidy up my music library.

Prepare the Environment

  • Make sure the system is up to date
    pkg update && pkg upgrade
    

Install Beets

  • Install Beets:
    pkg install beets
    
    • NOTE: audio/beets has many useful additions in its port package. I found ACOUSTICBRAINZ, BADFILES, CHROMA, DISCOGS, ECHONEST, EMBYUPDATE, FETCHART, FFMPEG, IMAGEMAGICK, LASTFM, LYRICS, and MPDSTATS to be useful:
      pkg install py27-discogs-client py27-setuptools27 py27-oauth2 py27-httplib2 py27-requests py27-mpd py27-mutagen py27-pyacoustid chromaprint cmake libarchive lzo2 cmake-modules py27-sphinx py27-Jinja2 py27-babel py27-pytz py27-MarkupSafe py27-docutils py27-pygments py27-pylast py27-unidecode py27-sqlite3 py27-enum34 py27-pyechonest py27-yaml ImageMagick-nox11 gmake libltdl pkgconf jbigkit jpeg lcms2 tiff libfpx liblqr-1 pcre libwmf-nox11 png openjpeg webp fftw3 ghostscript9-base autoconf autoconf-wrapper m4 help2man gmake-lite p5-Locale-gettext jbig2dec svgalib cups-image cups-client mDNSResponder gsfonts libpaper py27-munkres glib flac mp3val py27-mpd2 python27 py27-pathlib py27-xdg python2
      
      portmaster audio/beets
      
  • Create a directory for the beets library metadata database:
    mkdir ~/.beets
    

Using Beets

  • Edit the config:
    beet config -e
    
    • And add the following to configure an existing music library:
      directory: ~/music
      library: ~/.beets/musiclibrary.blb
      import:
          copy: no
      
  • Import the library to correct the music file tags:
    beet import ~/music
    
    • NOTE: For larger libraries, using the -q (quiet) flag. This will allow beets to update the music file metadata without asking for user input:
      beet import -q ~/music
      
  • Adding more music later on can be done with the -c flag which will copy and correct music from ~/some_great_album folder to the ~/music folder:
    beet import -c ~/some_great_album
    

Plugins

FetchArt

The fetchart plugin retrieves album art images from various sources on the Web and stores them as image files.

  • Edit the beets config file:
    beet config -e
    
    • And add the plugin definitions:
      plugins: fetchart
      
      fetchart:
          auto: yes
      
  • Then run the fetchart function:
    beet fetchart
    

Lyrics

The lyrics plugin fetches and stores song lyrics from databases on the Web.

  • Edit the beets config file:
    beet config -e
    
    • And add the plugin definitions:
      plugins: lyrics
      
      lyrics:
          fallback: ''
          auto: yes
      
  • Then run the lyrics function:
    beet lyrics
    

EmbyUpdate

embyupdate is a plugin that lets you automatically update Emby‘s library whenever you change your beets library.

  • Edit the beets config file:
    beet config -e
    
    • And add the plugin definitions:
      plugins: embyupdate
      
      emby:
          host: localhost
          port: 8096
          username: user
          password: password
      

EmbedArt

Typically, beets stores album art in a “file on the side”: along with each album, there is a file (named “cover.jpg” by default) that stores the album art. You might want to embed the album art directly into each file’s metadata. While this will take more space than the external-file approach, it is necessary for displaying album art in some media players (iPods, for example).

  • Edit the beets config file:
    beet config -e
    
    • And add the plugin definitions:
      plugins: embedart
      
      embedart:
          auto: yes
          remove_art_file: yes
      
  • Then run the import function:
    beet import
    

AcousticBrainz

The acousticbrainz plugin gets acoustic-analysis information from the AcousticBrainz project.

  • Edit the beets config file:
    beet config -e
    
    • And add the plugin definitions:
      plugins: acousticbrainz
      
      acousticbrainz:
          auto: yes
      
  • Then run the import function:
    beet import
    

Bad Files

The badfiles plugin adds a beet bad command to check for missing and corrupt files.

  • Edit the beets config file:
    beet config -e
    
    • And add the plugin definitions:
      plugins: badfiles
      
      badfiles:
          auto: yes
      
  • Then run the bad function:
    beet bad
    

Chromaprint

Acoustic fingerprinting is a technique for identifying songs from the way they “sound” rather from their existing metadata. That means that beets’ autotagger can theoretically use fingerprinting to tag files that don’t have any ID3 information at all (or have completely incorrect data). This plugin uses an open-source fingerprinting technology called Chromaprint and its associated Web service, called Acoustid.

Turning on fingerprinting can increase the accuracy of the autotagger—especially on files with very poor metadata—but it comes at a cost. First, it can be trickier to set up than beets itself (you need to set up the native fingerprinting library, whereas all of the beets core is written in pure Python). Also, fingerprinting takes significantly more CPU and memory than ordinary tagging—which means that imports will go substantially slower.

  • Edit the beets config file:
    beet config -e
    
    • And add the plugin definitions:
      plugins: chroma
      
      chroma:
          auto: yes
      
  • Then run the import function:
    beet import
    

Discogs

The discogs plugin extends the autotagger’s search capabilities to include matches from the Discogs database.

You will also need to register for a Discogs account. The first time you run the import command after enabling the plugin, it will ask you to authorize with Discogs by visiting the site in a browser. Subsequent runs will not require re-authorization.

  • Edit the beets config file:
    beet config -e
    
    • And add the plugin definitions:
      plugins: discogs
      
      discogs:
          auto: yes
      
  • Then run the import function:
    beet import
    

Duplicates

This plugin adds a new command, duplicates or dup, which finds and lists duplicate tracks or albums in your collection.

  • Edit the beets config file:
    beet config -e
    
    • And add the plugin definitions:
      plugins: duplicates
      
  • Then run the duplicates function:
    beet duplicates
    

Resources

Also available in: Atom PDF