[s]Album Identify[/s] Beets

Door Mar2zz op zaterdag 19 november 2011 09:53 - Reacties (13)
CategorieŽn: Downloaden, Headless onderhoud, Muziek, Sabnzbdplus, Views: 7.700

Onlangs ben ik overgestapt van Album Identify naar Beets. Beide programma's hebben hetzelfde doel, maar Beets is een stuk uitgebreider dan AlbumIdentify. Ten tijde van het schrijven van de AlbumIdentify-blog kon Beets nog niet zelfstandig, dus zonder tussenkomst, muziekbestanden taggen. Nu kan dat al wel een tijd, ik weet niet hoe lang, maar dat was voor mij een reden om nog eens te kijken naar Beets. En ik was binnen 10 minuten overtuigd. Bye bye AlbumIdentify!

Wat is Beets
Mensen die Headphones gebruiken gebruiken (wellicht onbewust) ook Beets. Headphones gebruikt een ingebouwde versie van Beets om bestanden te hernoemen en verplaatsen, gebaseerd op tags en info van Musicbrainz.

En dat is wat ik voorheen automatisch deed met AlbumIdentify, maar nu dus door Beets laat doen. Beets heeft dan nog extra voordelen. Als Beets een cd niet kan vinden op Musicbrainz zal ie hem niet zomaar taggen en importeren in je muziekmap. Hij skipt deze, en vervolgens kun eventuele tagvoorstellen van Beets handmatig reviewen. Beets werkt ook fantastisch als een standalone tagger/renamer, iets wat AlbumIdentify (nog) niet kan. Ideaal dus voor iedereen die zijn muziekverzameling niet wil vervuilen met slecht getagde bestanden.

Beets is ook nog eens door middel van plugins uit te breiden. Zo is er een webinterface voor beschikbaar, replaygain, lyrics-zoeker, een Beets Player Daemon (zie mijn vorige blog over MPD, beets heeft die functie ook in huis, al is MPD natuurlijk verder ontwikkeld). Door dit alles heeft Beets een grote voorsprong op AlbumIdentify en het potentieel is nog veel groter.

Ook wordt er heel actief ontwikkeld in Beets. Ik had een probleem met de onmisbare replaygain plugin, gemaakt door een andere ontwikkelaar als standalone plugin voor beets. Daarvoor maakte ik een issue aan op github. Binnen 2 dagen is e.e.a. door de molen gegaan en de replaygain wordt in de volgende versie van Beets een built-in plugin! Dus de support is ook nog eens geweldig.

Beets installeren
Er zijn een aantal manieren om Beets te installeren. Een clone van Github trekken om voorop te lopen en nieuwe bugs te pletten maar ook nieuwere features te proberen. Of een sudo pip install beets (waarvoor eerst python-pip of python-setuptools geinstalleerd moet worden). Op een synology kan Beets bijvoorbeeld geinstalleerd worden met easy_install beets. Dan wordt er een (min of meer) stabiele versie uit de python-repo gehaald en geinstalleerd.
Dus 5 seconden werk en je hebt een volledige tagger op je systeem staan.

Beets configureren
Beets moet natuurlijk weten waar je muziek heen 'getagged' moet worden, dit kun je aangeven in het bestand .beetsconfig in je eigen home-directory. Hier een voorbeeld van mijn .beetsconfig. Die kan je zo overnemen en paden e.d. aanpassen naar eigen setup.

code:
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
[beets]
library: /home/mars/.beets/musiclibrary.blb
directory: /home/mars/Muziek
import_copy: yes
import_delete: yes
import_write: yes
import_resume: no
import_art: yes
import_quiet_fallback: skip
import_timid: no
import_log: /home/mars/.beets/beetslog.txt
art_filename: folder
pluginpath: /home/mars/.beets/plugins/beets-replaygain
plugins: bpd beets-replaygain
threaded: yes
color: yes

[paths]
default: $albumartist/($year) $album/$track. $artist - $title
soundtrack: Soundtracks/$album/$track. $artist - $title
comp: Various Artists/$album ($year)/$track. $artist - $title

[replaygain]
reference_loundess: 89
mp3_format: fb2k
overwrite: true 

[bpd]
host: 0.0.0.0
port: 5600
password: geheim


Import copy en import delete op yes betekent dat de muziekbestanden die geimporteerd worden eerst worden gekopieerd naar je muziekmap en daarna wordt de source verwijdert. Dat is ideaal, want zo wordt je download-map lekker schoon gehouden. Die instelling is dus aan te raden bij eventueel postprocessen via Sabnzbd. Import_quite_fallback: skip is voor de tag-o-philes heul belangrijk. Als Beets geen betrouwbaar resultaat vind slaat ie het album over en zal ie niet importeren. Dan kun je deze fallbacks dus later handmatig reviewen. Meer over configopties staat hier: http://beets.readthedocs.org/en/latest/reference/config.html

Muziek importeren met Beets
Zoals gezegd, in de configfile zet je al je defaults. De meeste kunnen weer overschreven worden als je via commandline e.e.a. gaat importeren, maar omdat je de config naar je setup zet zal dat niet vaak nodig zijn. Een postprocessingscript is zo gemaakt. Het kan met 2 regels gedaan zijn:
code:
1
2
#!/bin/sh
/usr/local/bin/beet import -q "$1"


Wat uitgebreider is natuurlijk mooier, zodat je ook wat logging hebt, en alvast de commandline voor een handmatige review achteraf: sabtobeets.sh

De -q optie is erg belangrijk in dit script. Dit houdt in dat Beets zelfstandig zal taggen als het album gevonden wordt, en de muziek dus opnieuw tagged met de juiste tags en verplaatst naar je library. Als de match niet betrouwbaar is zal het de muziek met rust laten en overslaan. Vervolgens kun je dan handmatig 'beet import /map/met/overgeslagen/muziek' typen en kijken of de tags goed verbeterd gaan worden en/of het juiste album is gevonden. Dat gaat ook nog eens met mooie kleurtjes.
http://tweakers.net/ext/f/gLRZx86cSKbAuL8iuosxN2jC/thumb.png
Zo kan je dus zelf kiezen of je dit in je muziekmap wilt hebben of toch liever niet omdat het een tagzooitje is, of je kiest een match of gaat door met de tags die het heeft.

Afsluiting
Beets heeft nog meer aan boord. Het maakt niet alleen je tags in orde, het kan ook mooie lists maken van wat er in je library zit. Beets heeft zoveel mogelijkheden dat het handig is om gewoon de handleiding op radbox.beets.org eens goed door te nemen.

beet ls 'zoekterm', bijvoorbeeld beet ls 'shpongle' geeft een lijst weer van alle songs in je library van door of met shpongle ergens in de tagfields. En vervolgens kan je dan ook nog eens dingen ermee. Zoals bijvoorbeeld binnen een paar seconden je library Celine Dion-vrij maken met beet remove celine dion... Daarom moet je wel van Beets houden toch?

Volgende: Gij zult geen privacy schenden, heer Teeven! 12-'11 Gij zult geen privacy schenden, heer Teeven!
Volgende: [s]Subsonic[/s] Nee! MPD! 11-'11 [s]Subsonic[/s] Nee! MPD!

Reacties


Door Tweakers user MikeOO, zaterdag 19 november 2011 10:52

Weer een mooie blog zoals altijd. Klink erg goed en was dit even aan het proberen.

Ik heb net easy_install beets uitgevoerd wat denk ik goed is gegaan.
Moet ik het .beetsconfig bestand zelf aanmaken want ik kan hem nergens vinden in mijn home folder.. moet dit bestand in de root van je Homefolder komen of in een folder.

Alleen in /opt/local/bin vind ik een Beet bestand. Maar als ik in Putty na installatie Beet commando geef dan kan hij het niet vinden. Ik had even het Windows stukje gelezen in http://beets.readthedocs.org/en/latest/guides/main.html. Daar starten ze Beet om te testen of alles werkt.

Update
Om er zeker van te zijn dat de installatie goed was gegaan maar even via je LaSi_syn.sh script gedaan. Dat ging beter. Nu krijg ik netjes de melding dat de installatie goed is gegaan.

[Reactie gewijzigd op zaterdag 19 november 2011 11:38]


Door Tweakers user Mar2zz, zaterdag 19 november 2011 12:06

:)

Je moet inderdaad het bestand .beetsconfig zelf aanmaken. om te weten waar een executable zich bevind kun je op linux altijd which programma typen, dus which beet. Dat is op syno /opt/lcoal/bin/beet, en op syno moet je het ook zo gebruiken, dus /opt/local/bin/beet import -q /map/met/mp3

Door Tweakers user MikeOO, zaterdag 19 november 2011 13:05

Tnx was net aan het testen en hij loopt nu. Nu gaan uitzoeken wat de mogelijkheden verder zijn.

Ik zou in je blog aangeven dat je beter jou LaSi_syn.sh scripts kunnen gebruiken. Daarmee werkte hij wel direct goed op de Synology.

Door Tweakers user Mar2zz, zaterdag 19 november 2011 15:10

ik wist niet zeker of het lasi-script voor synology goed werkte, vandaar niet genoemd. Bedankt voor het testen :p

Door Tweakers user Snowmiss, zondag 20 november 2011 11:30

In je .beetsconfig moet onder [replaygain] hoogstwaarschijnlijk staan: reference_loudness: 89

En de handleiding vind je op beets.radbox.org ;)

Alleen lukt het nog niet zo goed met die replaygain plugin :(

[Reactie gewijzigd op zondag 20 november 2011 12:32]


Door Tweakers user Mar2zz, zondag 20 november 2011 14:56

Snowmiss schreef op zondag 20 november 2011 @ 11:30:
In je .beetsconfig moet onder [replaygain] hoogstwaarschijnlijk staan: reference_loudness: 89

En de handleiding vind je op beets.radbox.org ;)

Alleen lukt het nog niet zo goed met die replaygain plugin :(
Thx, over het hoofd gezien. Voor de replaygain plugin moet je nog even wachten op de pipversie. waarschijnlijk wordt dat 1.1, maar hopelijk 1.0 final (nu is het 1.0b10 bij mij)

Door Tweakers user MikeOO, woensdag 30 november 2011 08:02

Nog even een tip voor de Synology. Ik had het eerst via beschrijving gedaan en toen dat niet helemaal werkte heb ik zoals aangeven het via je lasi-script geinstalleerd.

Ik merkte later dat de Synology erg traag werd en toen ik wilde controleren of er een firmware update voor de Synology was kreeg ik de melding dat dit niet meer ging omdat er te weining ruimte was op de system partitie.

Synology gaf als heerlijke tip dat ik hem dan maar opnieuw moest installeren. Tja dat is geen oplossing natuurlijk en iets te veel data om ergens te kunnen opslaan.

Zoeken op het net kwam ik er achter dat gebruikers die dit probleem hebben eigenlijk altijd bestanden op de systeemparitie hebben staan die er niet horen.

Dus even met Putty ingelogd en het volgende command geven. Je krijgt dan netjes een overzicht van alle partities en hoeveel ruimte en nog beschikbaar is.

df -k

Daar zag ik inderdaad dat de systempartitie voor 95% vol was.

Daarna geef je de volgende commando's

cd /
du -ks *

Nu wordt er een overzicht gemaakt en kun je zien in welke folders de meeste data staat.
Mochten er in de map weer veel mappen staan dan ga je naar deze map en geef je weer het command du -ks *. Dan kom je vanzelf in de juiste map terrecht.

Ik zag ineens dat de ROOT folder erg groot was. In de ROOT map stond een map MUSIC.
Daarin stonden dus allemaal MP3 bestanden die BEETS had gescand.

Met WinSCP de map MUSIC verwijderd en de problemen waren gelukkig weer opgelost en de vrije ruimte op de systeempartie liep weer terug naar 52%.

Hoe het precies komt en waarom BEETS de bestanden daarheen heeft gekopieerd kan ik helaas niet aangeven maar mocht iemand soortgelijke problemen krijgen met BEETS dan weet je hoe je dit op een Synology kunt oplossen. Dan hoef je niet je hele nas opnieuw te installeren.

[Reactie gewijzigd op woensdag 30 november 2011 08:07]


Door Tweakers user Mar2zz, woensdag 30 november 2011 12:24

Blijkbaar wordt je configfile niet gelezen door beets, kun je kijken waardoor dat komt? misschien is ie niet readable voor de user die beets draait?

Eventueel kun je destination @ commandline forceren:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
Usage: 
  beet COMMAND [ARGS...]
  beet help COMMAND

Options:
  -h, --help            show this help message and exit
  -l LIBPATH, --library=LIBPATH
                        library database file to use
  -d DIRECTORY, --directory=DIRECTORY
                        destination music directory
  -p PATH_FORMAT, --pathformat=PATH_FORMAT
                        destination path format string
  -v, --verbose         print debugging information


Door Tweakers user MikeOO, donderdag 1 december 2011 10:43

De configfile had root rechten. Deze aangepast naar de gebruiker van wie de home folder is. Helaas maakt dat niet uit en komt het resultaat nog steeds in de root map terrecht van de systempartitie.

Configbestand staat de de root van de homefolder van de gebruiker.
Het lijkt er inderdaad op dat hij het configbestand niet leest aangezien het bestand .beetsmusic.blb ook in de root folder terrecht komt ipv op de aangegeven locatie in het configbestand.

Door Tweakers user Mar2zz, donderdag 1 december 2011 11:02

Eigenlijk zou beets een optie -config=/pad/naar/config moeten hebben. Ik ga daar een issue voor aanmaken als die er nog niet is.

Door Tweakers user Gotiniens, zaterdag 17 december 2011 17:12

Ok, het werkt wel leuk enz, maar dan moet het wel iets meer van mijn collectie herkennen, zon 25% is maar herkent :S

Door Tweakers user aegis, woensdag 21 december 2011 16:09

heeft iemand chromaprint/acousticid al geprobeerd? ik kreeg het niet werkend.
beets geeft de fout melding dat de plugin chromaprint niet gevonden kan worden.

Door Tweakers user RudolfR, woensdag 27 februari 2013 20:37

Ik gebruik beets version 1.1.0-beta.2
en ik probeer de map #recycle en de mappen @eaDir uit te sluiten van mijn import.
Maar ik krijg de glob patterns van ignore: niet werkend.

ignore: #* @*
of iets dergelijks...
Tips? Of is ignore stuk in de beta? Hoe installeer ik dan een andere versie?
#recycle kan ik redelijk eenvoudig uitschakelen, maar die @eaDirs verwijderen vind ik wat rigoureus....

Reageren is niet meer mogelijk