Chercher dans sa discothèque
c'est ls
qui permet de lister votre discothèque par mots clés
$ beet ls "fauvisme"
Par défaut tous les titres, albums ou artistes contenant le motif recherchés vont être listés.
Il est possible de rechercher le motif dans un champs particulier.
$ beet ls "albumartist:noir"
notez ici que le motif est insensible à la casse (i.e. il liste les artistes contenant Noir,noir,nOir,NOIR etc ...)
Pour rendre le motif sensible à la casse il suffit d'utiliser ::
plutôt que :
$ beet ls "albumartist:noir"
ici les "Tétines Noires" ne seront pas listés à cause du N majuscule ...
Affichage par album
Avec la commande précédente seuls les titres des artistes contenant le motif "noir" sont listés.
Si ce sont effectivement les noms d'artistes qu'on cherche, faire afficher tous les titres de chacun de leurs albums n'est pas très lisible
ici l'option -a
va permettre de lister les albums plutôt que tous les titres qu'ils contiennent
$ beet ls -a "albumartist:noir"
Affichage du path
Si vous cherchez dans votre discothèque pour copier de la musique sur votre téléphone par exemple. Vous serez probablement intéressés par l'option -p
qui affiche le path du dossier de l'album plutôt que simplement le nom de l'artiste et le nom de l'album
$ beet ls -a "albumartist:noir"
Déplacer des albums
beet modify -a "albumartist:ahmad" "album:Live" albumartist="Ahmad Jamal"
- doit bouger les fichiers
Supprimer des albums
- les recherches vont peut être faire apparaître des doublons, un artiste tagué une fois avec une majuscule et une fois sans par exemple,
beet remove "albumartist:capercaillie"
Vous pouvez ajouter
-
-a pour l'album
-
-d pour effectivement supprimer
l'utilisation ::
est recommandé pour éviter les fausses manip
Plus de méta
l'option -f
permet de personnaliser les méta données affichées par ls
beet ls -f '$album: $format $bitrate' "album:Stories From the City, Stories From the Sea"
faire afficher le format et le bitrate aidera probablement en cas de doublon pour savoir lequel gardé.
Explorer la base de données de sa bibliothèque
interroger la librairie en SQL avec sqlite3
en allant interroger directement la base de données de beets on apprend des chose intérssantes et on peut faire des manip assez indispensable. J'utilise sqlite3 en ligne de commande sous ubuntu mais n'importe quel client sqlite peut faire l'affaire.
ouvrir la bases de données
sqlite3 /media/mazenovi/DataMaze/MUSIC/beets/library.blb
explorer les tables
sqlite> .table;
explorer les champs d'une table
sqlite> PRAGMA table_info(albums);
N.B. tout ces champs peuvent être utilisé dasn les requêtes avec ls et dans l'affichage avec -f
.
déplacer sa bibbliothèque
il se peut, si votre bibliothèque a un peu vécu, que certains paths d'album ne soient plus à jour
liste les différents paths
sqlite> select distinct(substr(path,0,29)) from items;
le paramètres 29 est à ajusté avec la longueur du path le plus petit utilisé avec votre BDD.
Dans mon cas
/media/mazenovi/MUSIC/music/
/media/mazenovi/DataMaze/MUS
Je sais que le path /media/mazenovi/MUSIC/music
n'existe plus. Je vais donc le mettre à jour avec le nouveau path /media/mazenovi/DataMaze/MUSIC/music/
sqlite> select count() from items where path like '/media/mazenovi/MUSIC/music/%';
donnera le nombre de path à réécrire
sqlite> select path from items where path not like '/media/mazenovi/MUSIC/music/%';
affiche les paths à jour
sqlite> select "/media/mazenovi/DataMaze/MUSIC/music/" || substr(path, 29) from items where path like '/media/mazenovi/MUSIC/music/%';
permet de vérifier qu'on a bien identifié la partie à accoler au nouveau path. C'est le bon moment pour faire une sauvegarde de /media/mazenovi/DataMaze/MUSIC/beets/library.blb
sqlite> update items set path = "/media/mazenovi/DataMaze/MUSIC/music/" || substr(path, 29) where path like '/media/mazenovi/MUSIC/music/%';
sqlite> update albums set artpath = "/media/mazenovi/DataMaze/MUSIC/music/" || substr(artpath, 29) where artpath like '/media/mazenovi/MUSIC/music/%';
peut prendre un petit temps, et met effectivement à jour les paths des morceaux et des cover pour les albums
sqlite> select distinct(substr(path,0,29)) from items;
n'affiche plus qu'un path: le bon!
Modifier des albums
Pour que les modif puissent se faire sur le système de fichier il est indispensable que les paths soient valides (c.f. section précédente)
voici un exemple:
beet ls -a "albumartist:chicks on speed"
donne
Chicks on Speed - 99 Cents
Chicks on Speed - Chix 52
Chicks on speed - Will Save Us All!
Chicks on Speed - Wordy Rappinghood
Chicks on Speed and The No Heads - Press the Spacebar
Chicks on speed - Will Save Us All! fait que j'ai deux dossiers pour le même artist: l'un nommé Chicks on Speed et l'autre Chicks on speed.
beet modify -a "album::Will Save Us All!" albumartist="Chicks on Speed"
permet de régler cela
Supprimer des albums
beet remove -da "album:Paul’s Boutique"
l'option -d est indispensable pour supprimer le dossier sur au nievau du système de fichier, sinon la suppression ne se fait que dans la base de données de beets.
Quitter sqlite3
sqlite> .quit
Commentaires
comments powered by Disqus