Amarok : extraire les images de jaquettes
Le lundi 28 mars 2005, 23:58 - Lien permanent
Amarok, le (meilleur) lecteur de musique pour KDE, a une fonctionnalité très intéressante : il sait automatiquement télécharger l'image de la jaquette d'un album, en se basant sur les méta-données (tags) des fichiers mp3 ou ogg. C'est très sympa, mais cette image téléchargée il la met ensuite dans son dossier de config, avec un nom imbitable, et on ne sait plus trop comment la récupérer.
Bien, mais pas top, donc. J'ai réalisé un script pour Amarok, qui à chaque changement de chanson va récupérer l'image dans le dossier d'Amarok et la placer dans le dossier du fichier en train de jouer, en lui donnant le nom de l'album. Si un fichier d'image existe déjà, le script ne fait rien, et en plus le nom du fichier d'image est paramétrable (si vous voulez tous les appler cover.png par exemple...)
Et en plus, il va créer un fichier ".directory" qui va mettre la nouvelle image comme icône du dossier dans Konqueror. La classe 
Le script est disponible en deux versions : une version plugin pour amaroK, qui va essayer de copier l'image quand une nouvelle chanson est jouée, et une version indépendante, qui va parcourrir toute la base de données d'AmaroK et copier les images qui sont dans amaroK mais pas dans le dossier de l'album. Cette dernière version nécessite au minimum amaroK 1.2.3 et python 2.3.
Le plugin s'installe en passant par Amarok > menu Outils > Scripts > Installer un script. Ensuite, il suffit de cliquer sur copycover.py, puis Executer, et c'est bon. Pour changer le nom des fichiers d'image, cliquer sur Configurer. Bref, rien de sorcier.
Le script indépendant se lance avec l'option "-d" pour vérifier (mode prévisualisation), et "--help" vous donnera toutes les options disponibles.
Voilà, dites-moi si vous rencontrez des problèmes...
- Le plugin CopyCover pour Amarok
- Le script CopyCover indépendant (nécessite AmaroK >= 1.2.3 et Python >= 2.3)















Commentaires
dimanche 3 avril 2005, 14:40
j aurais voulu savoir si on peut attribuer a chaque musique une image sans passer par amorok?
vendredi 8 avril 2005, 10:19
@strav :
Tu veux dire lui attribuer une image qui soit ensuite disponible dans AmaroK, ou complètement indépendemment ?
Pour le 1, ça doit être possible si tu as l'image, mais pour le 2, faudrait trouver comment amarok downloade les images depuis amazon et reproduire le même schéma. Pas facile.
dimanche 26 juin 2005, 15:51
@gauret :
il faut PyQt pour que ça marche. sous ubuntu il faut se faire un petit:
#apt-get update
#apt-get install python-qt3
et installer les 2 paquets dépendants.
merci pour ce script qui devrait être une fonction standard d'amarok!
mercredi 7 décembre 2005, 01:44
Au bout de plus de 3 mois sans connection internet, j'ai perdu toutes les jaquettes téléchargées par Amarok. L'excuse donnée par Amarok pour cette perte était un problème de licence. Je n'ai plus les détails en tête, j'ai à nouveau internet donc le msg a disparu, mais il me semble qu'Amazon limite l'utilisation des images prises depuis leur site à 3 mois. Ton script n'est-il pas un moyen de contourner cette licence et d'avoir les jaquettes en permanence?
jeudi 8 décembre 2005, 20:15
@Didier :
> Ton script n'est-il pas un moyen de contourner cette licence et d'avoir les jaquettes en permanence ?
Apparemment, il peut être utilisé à ça, oui. Mais il ne contourne pas la license, il contourne juste le système mis en place par Amarok pour supprimer les images. N'importe qui peut copier les images du répertoire temporaire d'Amarok ailleurs et contourner ce système de la même façon.
Mais bon, ce n'est pas à ça qu'il sert. J'ai fait ce script avant que le problème de la license des images d'Amazon ne soit soulevé sur la mailing-list d'Amarok, donc pas du tout dans un but de contournement de quoi que ce soit. Ce script sert à :
Si vraiment il y a un fort besoin de virer les images d'Amazon, c'est très facile à faire en une ligne de "find". Du genre : <code>find /ma/musique -name "*.png" -mtime +90 -exec rm -f '{}' ;</code>
Si on veut faire plus subtil et différencier les couvertures venant d'Amazon, il y a un champ dans les données Exif qui fait référence à Amazon, y'a qu'à tester là dessus.
Encore une fois, oui on peut utiliser mon script pour contourner le système d'Amarok, mais c'est pas pour ça que je l'ai fait.
C'est vrai qu'en ce moment, avec le scandaleux projet de loi DADVSI, je pourrais me retrouver dans l'illégalité parce que je fournis un moyen de contourner un dispositif de protection. J'allais justement écrire un article là-dessus, tiens
dimanche 18 décembre 2005, 20:59
@gauret :
J'ai installé ton script et vraiment c'est extra ! Après avoir viré les images d'amazone je suis confronté aussi au problème en 1, c'est à dire comment faire pour que amarok cherche l'image dans le dossier de l'album du morceau joué plutôt que dans sa propre base. Si quelqu'un a la solution je suis preneur !
dimanche 18 décembre 2005, 22:58
@Stéphane :
Normalement, si il ne trouve pas l'image dans sa base, amarok cherche un fichier image dans le dossier de la chanson. C'est là qu'il devrait trouver l'image copiée par CopyCover, donc ça devrait être automatique dès que l'image d'Amazon sera supprimée.
Si tu veux forcer l'affectation, il faut faire un clic-droit sur l'image de la couverture dans amarok, et choisir "Ajouter une jaquette personnalisée", mais ça devrait pas être la peine.
jeudi 22 décembre 2005, 20:39
@gauret :
Extra, ça tourne ! Il m'a suffit de faire à nouveau l'analyse de ma collection est tout est en ordre. Merci encore pour la réponse et le script. Salutations
mardi 21 août 2007, 09:16
J'ai le script qui copie bien les images à chaque changement de chanson, mais ne crée pas le fichier .directory ! C'est pas la classe quoi?
J'ai loupé quelquechose? Et pourquoi ce script est pas sur kde apps, afin de le télécharger plus facilement?
mercredi 28 octobre 2009, 17:08
@gauret : Comment est ce que je peux “lancer” ton script ? dans un terminal on me dit commande introuvable… merci
jeudi 29 octobre 2009, 08:34
@isabelleb : Pour tout te dire, le script a besoin d’un sérieux lifting. Beaucoup de choses ont changé dans Amarok depuis les débuts, et je serais surpris que le script marche encore…
J’ai pour projet de le retaper, mais c’est pas pour tout de suite.
jeudi 29 octobre 2009, 10:08
merci de la reponse j’attendrai donc. Juste une question de plus Il faut obligatoirement compiler amarok pour de nouveau obtenir les jacquettes amazone?
samedi 31 octobre 2009, 10:48
@isabelleb : Normalement non, pas besoin de compiler Amarok.
samedi 12 mars 2011, 20:14
Si tu veut, tu pourrais adapter ton script pour inclure les pochettes dans les tags des morceaux et ainsi palier à ce manque. Tu peut utiliser la bibliothèque mutagen pour incorporer la pochette :
il faut importer les modules suivants:
from mutagen.mp3 import MP3
from mutagen.id3 import APIC
musique = MP3(filename)
musique.tags.add(APIC(
encoding=3, # 3 pour utf-8
mime=format,
type=3, # 3 pour pochette avant
desc=u’Cover’,
data=open(image).read()
)
)
musique.save()