Amarok: déplacer sa collection sans perte!

AmarokSi vous utilisez Amarok régulièrement, au fil du temps, ce génial programme KDE pour Linux connait vos gouts et habitudes. Sans se tromper, il vous sélection la musique que vous voulez entendre que ce soit au matin avec le café ou un après-midi d’été pour une sieste bien méritée.

Mais voilà, si vous déplacez ou renommez les répertoires ou les fichiers, Amarok ne peut plus associer vos statistiques d’écoute, images, paroles, etc au fichier audio en question, même bien taggé. Que dire alors si vous déplacez toute votre collection sur un autre disque dur ou une autre partition? Vous imaginez…

Il existe bien un script appelé « Move ». Il fonctionne très bien au cas par cas. Mais justement si ce n’est qu’une question isolée, ce n’est pas vraiment utile.

Que faire alors? Réenconder la collection, ses préférences, etc, et attendre des mois que votre profile de mélomane s’affine pour Amarok?

Il y a plus simple, sans faire trop compliqué: SQlite Data Browser (sudo apt-get install sqlitebrowser pour installer le programme). C’est bien entendu un logiciel libre.


SQLite Data Browser

L’idée est d’éditer le fichier de base de donnée d’Amarok pour lui indiquer le nouvel emplacement de la collection. La situation idéale est de passer d’un chemin de type /xxx/Musique à /yyy/Musique.

1/ Rendez-vous dans le dossier contenant votre base de donnée:

/home/(utilisateur)/.kde/share/apps/amarok

Et faite une copie de sauvegarde de votre base de donnée collection.db !

2/ Dupliquez votre collection puis, ouvrez Amarok, changez le répertoire de la collection et fermez Amarok tout de suite après (avant que la base de donnée ne soit éditée).

3/ Ouvrez ensuite collection.db avec sqlitebrowser

4/ Dans le programme, dans l’onglet Browse Datas, vous pouvez naviguer dans les tables de votre collection.

Dans la table directories, vous verrez que l’emplacement du dossier est relatif (par exemple ./Musique), gardez donc bien le nom de ce dossier intact (sauf si vous voulez éditer toutes les datas de la table directories. Cela est possible avec une commande SQL que je ne connais pas.). La colonne device id nous indique sur quel disque dur ou partition la collection est présente.

L’astuce. Dans la table devices, repérez l’ancien emplacement et le nouveau et échangez leurs id (il ne suffit pas de changer l’étiquette car l’UUID de la partition est précisée, mais si c’est la même partition, pourquoi pas…).  Il faut qu’au final le device et le directory correspondent bien (/yyy/Musique).

Et voilà, c’est tout! Ouvrez Amarok… tout devrait être ok.

Attention cette astuce (ne) fonctionne (que):

– Si vous êtes sous KDE 3.5.x avec Amarok 1.4.x;

– Si votre collection est encodée en SQLite;

– Si vous gardez exactement le même nom de dossier etla  structure de votre collection.