MPD is an excellent way to play your music collection, but you do not want to depend on MPD or its database. Maybe you want to use your library also in other playback programms.
Beets is a really beautiful Python application. It allows you to import your music collection, while fetching metadata from online databases like musicbrainz.org or discogs.com. There are also some plugins available which allow you to fetch genres from LastFm, fetch music art images or create intelligent auto-updating playlists, which use regex to match songs. This allows to to create an (almost) perfect music library with minimal effort.
Here’s my config with some more plugins. You can look them up here.
1directory: /media/music/library/
2library: /media/music/library.db
3ui:
4 color: yes
5 colors:
6 text_success: green
7 text_warning: yellow
8 text_error: red
9 text_highlight: red
10 text_highlight_minor: lightgray
11 action_default: turquoise
12 action: blue
13
14plugins: web fetchart fromfilename lastgenre mpdstats mpdupdate duplicates missing follow lastimport smartplaylist embedart
15
16import:
17 move: yes
18 copy: no
19
20lastfm:
21 user: ammannmax
22
23mpd:
24 host: localhost
25 port: 6600
26
27follow:
28 auto: yes
29 email: ****
30 password: ****
31 userid: ****
32
33smartplaylist:
34 relative_to: /media/music/library
35 playlist_dir: /media/music/library
36 playlists:
37 - name: already_listened.m3u
38 query: 'play_count:1..'
39 - name: reggae.m3u
40 query: 'genre::(Reggae|Ska)'
41 - name: rock.m3u
42 query: 'genre::(Metal|Rock|Hardcore)'
43 - name: other.m3u
44 query: 'genre::^(?:(?!Rock|Metal|Hardcore|Reggae).)*$\r?\n?'
45embedart:
46 auto: yes