Beets is an incredible tool for organizing a local music library. It’s a little geeky, but does such a stellar job integrating metadata from MusicBrainz with auto-matching, album art, lyrics, etc. It supports deduplication, transcoding, and much more with plugins.

Anyone with an appreciation of local music and infra-as-code would be in paradise. I just hit over 10k songs, which is managed like a dream:

1
2
3
4
5
6
7
❯ beet stats
Tracks: 10008
Total time: 3.9 weeks
Approximate total size: 63.9 GiB
Artists: 2754
Albums: 2016
Album artists: 1280

Beets imports music, adding embedded lyrics/artwork and correct tags all automatically. But it also has a few useful commands I use variations of all the time:

  1. List entire library sorted by ascending bitrate:
    • beet ls -f '$bitrate $artist - $title' bitrate+
  2. Scan the library filesystem for additions/removals, update tags from MB:
    • beet update
  3. Using the plugin oldestdate, update the year field of Andrews Sisters tracks to the original recording year (~1940s rather than the remastered album date in the ~2000s):
    • beet oldestdate Andrews Sisters
  4. Set the genre of any track with field containing “celtic” to “Celtic”:
    • beet modify celtic genre="Celtic"
  5. Using the plugin smartplaylist, automatically update and export m3u playlists based on my config.
    • beet splupdate

Here is my entire beets config, including dynamic playlists:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
directory: ~/Music/songs
library: ~/Music/beets.db
import:
  move: yes
  detail: yes
  write: yes
  # quiet_fallback: asis
  # duplicate_action: skip

paths:
  singleton: $artist/$title

plugins:
  - badfiles
  # - chroma
  # - convert
  - duplicates
  - embedart
  - fetchart
  - fish
  - info
  - inline
  - lastgenre
  - lyrics
  - mbsync
  - missing
  # - oldestdate
  - playlist
  - smartplaylist
  - thumbnails

lastgenre:
  source: track
  force: no

item_fields:
  decade: str(year)[0:3]+"0s"

fetchart:
  maxwidth: 900

embedart:
  quality: 75

oldestdate:
  auto: no
  ignore_track_id: yes
  filter_on_import: yes
  prompt_missing_work_id: yes
  force: yes
  overwrite_year: yes
  filter_recordings: yes
  approach: "releases"

musicbrainz:
  searchlimit: 20
  genres: yes

# convert:
#   auto: no

lyrics:
  google_API_key: 'AIzaSyD_H92ZLd6syQ17JEBoiFQxXPgMM7TNLDA'
  sources: 'musixmatch genius tekstowo google'
  force: yes
  fallback: ''

acoustid:
  apikey: 5Mow8bcd6a

smartplaylist:
  auto: no
  relative_to: ~/Music/lists
  playlist_dir: ~/Music/lists

  playlists:
    # 1900 - 1970, includes Jazz
    # 1980-2010, does not include Jazz
    - name: "$decade.m3u"
      query: ['added- year::(19[0-7][0-9]) ^"genre::(Classical|Lo-Fi|Ambient|Opera|Salsa|Early Music|World Music|Bossa Nova|Celtic|Flamenco|Bitpop|Soundtrack|Tango|Italian|World|Tropical|Cuban|Reggae|Samba|Bluegrass|Cuban|Monk|Calypso|Baroque|Neofolk|Comedy|Koto|Chillout|Downtempo)"', 'added- year::(19[8-9][0-9]|20[0-9][0-9]) ^"genre::(Jazz|Classical|Lo-Fi|Ambient|Opera|Salsa|Early Music|World Music|Bossa Nova|Celtic|Flamenco|Bitpop|Soundtrack|Tango|Italian|World|Tropical|Cuban|Reggae|Samba|Bluegrass|Cuban|Monk|Calypso|Baroque|Neofolk|Comedy|Koto|Chillout|Downtempo)"']

    - name: "Party like its 2012.m3u"
      query: added- year:2006..2012 ^"genre::(Jazz|Classical|Blues|Lo-Fi|Ambient|Opera|Salsa|Early Music|World Music|Bossa Nova|Celtic|Flamenco|Bitpop|Disco|Chillout|Downtempo|Soundtrack|Tango|Bluegrass|Italian|Oldies|World|Tropical|Cuban|Reggae|Samba|Classic\ Rock)"

    - name: "Adore Alliteration.m3u"
      query: ['genre::Hard\ Rock added-', 'Rock|Classic\ Rock']

    - name: "All I Wanted Was A Pepsi"
      query: 'added- Jack White, Def Leppard, AC/DC, Rage Against the Machine'

    - name: "Bake My Cookies.m3u"
      query: ["genre::Rap added-", 'genre::Hip\ Hop']

    - name: "Books & Tea.m3u"
      album_query: "Bach, Debussy, Mozart , Vivaldi"

    - name: "Discoteca.m3u"
      album_query: "Bad Bunny, J Balvin , fue mejor , lele pons , drinkee , matadora tukker"

    - name: "Groovin.m3u"
      query: ['genre::Soft\ Rock', 'genre::Dream\ Pop']

    - name: "By The Pond.m3u"
      album_query: "added- Pomplamoose , The Avener , Dansu , HONNE , Anne Murray , The Doobie Brothers , Weezer island , slightly stoopid , george harrison , billy joel , hard day night , louis armstrong hello , Fleetwood Mac Dreams , chasing pirates , Parcels , john mayer new light , shura touch , vitor kley , that life unknown mortal, Forrest , arlo parks , disco yes , around the sun poolside , unknown mortal orchestra"

    - name: "Two Feets.m3u"
      query: "added- Two Feet, Adam Jensen, Arctic Monkeys, Gorillaz, Emmit Fenn, Ellise, Stellar, Dennis Lloyd , Sub Urban , Chloe Adams , one hope ghost , peach pit , elderbrook , the people thieves , joywave , UPSAHL"

    - name: "Piano.m3u"
      album_query:
        [
          'piano ^"genere::(Pop|Classic\ Rock)" ^"artist::(Billy Joel)"',
          "chopin, In the Mood for Debussy, the ultimate most relaxing new age music in the universe",
        ]

    - name: "Otherworldly.m3u"
      query: "relax with nature, symphonies of the planets"

    - name: "Swingtown.m3u"
      album_query: 'added- Parov Stelar , Nekta, Caravan Palace , Jamie Berry , Caro Emerald , Alice Francis , Paloma Faith , Sim Gretina , Waldeck , Soul Square , "genre::(Electro-Swing|Cabaret)" , Belleruche , Mr. Scruff , Tape Five , Jojo , Kormac , free the robots , ProleteR , Electric Swing Circus'

    - name: "Guitar.m3u"
      album_query: ['guitar "genre::(Classical|Flamenco)"', "genre::(Flamenco)", "Gábor Szabó"]

    - name: "Disco.m3u"
      album_query: '"genre::(Disco)"'

    #- name: "Christmas.m3u"
    #  query: "christmas , chimpmunk , smooth carols , reindeer , santa , happy holiday "

    - name: "Chill Dope.m3u"
      query: "added- 'artist::(Men I Trust)' , nombe , title:Sadnecessary , waves probz ,  post malone - circles slowed , YAS empty crown, slenderbodies, Shura , BENEE"

    - name: "Chill Hop.m3u"
      query: 'added- artist::(Jungle|Monsune|Cannons), Glass Animals, anderson .paak , duckwrth , easy life have a great day , softcore neighbourhood , christian kuria , b-ahwe, king mala , sad night dynamite' # don't include Denzel curry with GA

    - name: "Dubstep.m3u"
      query: "dubstep , Heuse & Zeus X Crona"

    - name: "Too Many Beaches.m3u"
      query: "added- bob marley , calvin harris 18 , Kauai , Edward maya , Jason Mraz , kala paper planes , stolen dance , artist:'will smith' , summertime ^'artist::(Billie Holiday)' , skizzy mars , miller the joker , miller airliner , artist::(^UB40$) , P.I.M.P , TaKillya , jimmy buffet , poolside , sun is shining , beach boys , American boy kanye , Martin Solveig , tieduprightnow , kid Francescoli , Dennis Lloyd , bad boy yung bae , girl like me black eyed peas , around the sun poolside , a good night john legend, like sugar chaka , castles paper idol , benee soaked , benee island , disfruto carla morrison , vallis alps , parra for cuva"

    - name: "Chortling Organs.m3u"
      query: "organ works"

    - name: "Spanish Succulents.m3u"
      query: "Lifescapes cancun , Lifescapes mexico , Lifescapes spanish , Lifescapes latin , Suzana Salles"

    - name: "Tapas.m3u"
      query: "Armik , Concha Buika , David De Alva , Gipsy Kings , Jesse Cook , Lhasa de Sela , Nicolas Hernandez , One Day Deep , Strunz & Farah , Maria Rita , Gotan Project, Gábor Szabó"

    - name: "Her Name is Rio.m3u"
      query: "Bossa nova"

    - name: "DXM Dumb.m3u"
      query: "yung gravy , womp womp , bbno$ , drugs tai , tyga , anaconda , joey purp , Aminé , Post Malone wow, faucet failure , saweetie , ceo@business.net"

    - name: "LSD & XTC.m3u"
      query: "added- Basshunter , deadmau5, Benny Benassi , AronChupa , The Chainsmokers , The Glitch Mob , Jamrock , Keys N Krates , I took a pill in ibiza , ODESZA , Redlight X Colour , GlitchHop , artist:'tove lo' , Tropkillaz , How to Be a Human Being life itself , SAINt JHN , Overmono , Bonobo , Romare gone ,  Caribou home , tones dance monkey , GOMF , Tiesto , ZHU , Music Sounds Better With You , The Glitch Mob , Galwaro , Fatboy Slim , The Prodigy , Calvin Harris , Daft Punk , The Blaze territory , kid Francescoli , nightswimX , Adam Jensen grudge , Lemaitre , Crypto faded , Airmow, big wild when I get there , mirror masa , moonlight Gaullin , daredevil 'artist::stellar' , 'artist::crypto' , going insane heuse , infinity ink , dancin aaron smith, rouge airmow , pon de replay ed marquis , ghosts jacob , little more love aj tracey , duke dumont , elderbrook , regard , sofi tukker , twocolors , good ones xcx , REZZ , frozen madonna , wolfe skeletons , zeds dead , carla morrison , emma peters , ya nina , astrality , SLH, volb3x, Camel Milk , mbnn, AREZRA"

    - name: "Bear St.m3u"
      query: "added- Kygo , Tove Lo , K.Flay , All my friends , Snakehips , Two Feet , 'artist::Stellar', Tokyo Project , moonlight Gaullin , james bond paper idol , Badunkadunk , Diana Goldberg , 2 man embassy , MORTEN beautiful heartbeat , surf mesa , taska black , mazde , coconuts kim petras, Lewis Ofman, mbnn , lucas estrada"

    - name: "Dance Mabye.m3u"
      query: "added- Doja Cat , Taylor Swift shake it off , Taylor Swift blank space , Badunkadunk , Drake hotline bling , why mona oops , rihanna music , bunny is a rider , rihanna , psycho mia"
      
    - name: "Reign.m3u"
      query: "added- Jack Johnson , Gordon Lightfoot , John Mayer battle studies , Sam Smith , norah jones sinkin soon , David Gray , Ed Sheeran lego , Wayne how to love , Michael Franti , probz waves , artist::(Passenger) , Melody Gardot , Milky Chance , sweater weather , Grape Soda, billie eilish, biig piig"

    - name: "Just Fine.m3u"
      query: "Norah Jones come away , willie nelson stardust , simon garfunkel , 'artist::(Carpenters)' , Anne Murray , Melody Gardot , bread diary , ella fitzgerald louis armstrong , james taylor , emily watts"

    - name: "Derelict Coffee Shop.m3u"
      query: "Yo-Yo Ma , Melody Gardot"

    - name: "Slut Pop.m3u"
      query: "added- Britney Spears , artist:DNCE , Carly Rae Jepsen, Justin Timberlake , Jennifer Lopez , Gwen Stefani , Fifth Harmony , Kat Dahlia , Katy Perry , Kesha , Lorde tennis court , Meghan Trainor , Kylie Minogue , Madonna , Selena Gomez , Kim Petras , qveen herby"

    - name: "Mimi's Cafe.m3u"
      query: "Louis Armstrong , Tony Benett , Bobby Darin , Carlos Antonio Jobim"

    - name: "Rapsmiths.m3u"
      query: "Aesop Rock impossible , Eminem curtian call , j cole born sinner , Kanye West all falls , Kanye West my beautiful , Kendrick Lamar damn , The Notorious B.I.G , tierra wack"

    - name: "Ketamine Dreams.m3u"
      query: "Iron & Wine , John Mayer battle studies , Norah jones day breaks , Fleetwood Mac future , Melody Gardot , U2 Joshua Tree , massive attack , post malone - circles slowed , two feet bitch, two feet her life"

    - name: "Happy in Havana.m3u"
      query: "Buena Vista Social Club , Cubanismo , Putumayo , Afro-Cuban , genre::(Cuban)"

    - name: "Time for Dessert.m3u"
      query: "Rabih Abou-Khalil , Uncharted , Niyaz , Azam Ali , Lebanese Blonde , Feast of Silence , Trio Globo"

    - name: "Wooing.m3u"
      query: "Muskrat love, love me do , sara smile , your song elton , clumsy fergie , why do fools fall , what the world needs now , Johnny mathis , justin timberlake my love , brown eyed girl , put your head on my shoulder , earth angel , rick astley , my girl temptations , not unusual tom jones"

    - name: "Jazz Minus People.m3u"
      query: "Contemporary Smooth Jazz , VooDooBop"

    - name: "Boîte de nuit.m3u"
      query: "L’Impératrice , Angèle , artist::(Paradis) , Claire Laffut , ELI ROSE , Dimie Cat , pomplamoose jean-marie , Stromae"

    - name: "French.m3u"
      query: "pomplamoose impossible , Édith Piaf , peyroux"

    - name: "Golden 2000s.m3u"
      query: 'year:1998..2008 "genre::(Rap|Hip\ Hop)" ^"genre::(Classical)" ^"artist::(Aesop Rock)"'

    - name: "Headspace.m3u"
      query: "added- Alina Baraz , The Beatles tripper , The Beatles strawberry , Built On Glass , The Cure Lullaby , Dim Sum , Flock of Seagulls , K.Flay , Kendrick Lamar PRIDE , Lost Frequencies , Steve Baker , Mari Ferrari , 'artist:The Neighbourhood' , NoMBe , MGMT pretend , Rudimental , Snakehips , Snoop Dogg peaches , SoySauce , St. South , Kiiara , Prayer In C , Kygo , Faul, Wad Ad & Pnau , Tom Tom Club genius of love , Kali Uchis , kid Francescoli , La clé des champs, AViVA , Emeline , big wild when I get there , so high doja cat , she said big jet plane , brasstracks , emmit fenn , shura touch , two feet fire in my head , emmit fenn hollow , of the trees , my space robes , astrality"

    - name: "Evenings.m3u"
      query: "Chopin , yo-yo ma , James Galway "

    - name: "Folk.m3u"
      query: "'artist::(Bread|Carole King|^Chicago$|Jim Croce|John Denver|Patsy Cline|Simon & Garfunkel|James Taylor)'"

    - name: "Daffodils in my Dandruff.m3u"
      query: "The Supremes , Elvis Prestley ,  Forrest Gump , Everly Brothers , Lynyrd Skynyrd , The Mamas & The Papas , Mama Cass"

    - name: "Chalk.m3u"
      query: "added- OneRepublic , Paramore , Sublime , Hot Chelle Rae , Blink-182 , The Offspring , weezer , Radiohead , ZZ Top grange , 3 Doors Down , Heroic , keyframe , Gorillaz , Slightly Stoopid , Max Armfield , Smashing Pumpkins , March to the Grave , Banjax , Courtney Barnett, radiohead"

    - name: "Firmly Grasp It.m3u"
      query: "added- Allie X , good ones xcx , talk about me justin , enchanted waterfall , CloZee, roudeep , shallou"