Tutoriel migrer playlists itunes vers mpd [niveau confirmé]

Lorsque j’ai quitté le monde Apple, c’est avec regret que je pensais avoir perdu mes playlists iTunes. Comme toujours avec open source, il y a moyen de bricoler. J’ai eu beaucoup de mal a importer mes playlists itunes dans mpd. Je ne précise ici que les étapes qui ne sont pas disponibles sur le net. Si vous voulez plus d’information sur le lecteur/serveur mpd, linuxfr a une très bonne introduction sur ce sujet. Voici comment j’ai réussi :

  1. Configurer mpd avec un socket local (bind_to_address ~/.mpd/socket), sinon mpc insert ne fonctionne pas, vérifier que le dossier existe
  2. Configurer mpd avec un dossier de playlist (playlist_directory dans le fichier de configuration), vérifier que le dossier existe bien
  3. Convertir l’ancienne playlist itunes en playlists m3u fonctionnelle en essayer de la lire avec VLC par exemple (l’utilitaire java http://www.ericdaugherty.com/dev/itunesexport/ permet de faire cela. pour référence, voici la commande que j’ai utilisé java -jar itunesexport.jar -filetype=ALL -useM3U8Ext -includeBuilInPlaylists -outputDir="$HOME/Music/Playlists/" -musicPath="../iTunes/" -library="$HOME/Music/iTunes Library.xml" -includeDisabled)

Enfin, voici le script bash que j’ai utilisé. Tout d’abord il exporte MPD_HOST ce qui permet à mpc de réaliser des insert avec un path local. Ensuite, il filtre les commentaires, il résout le chemin de fichier absolu, il ajoute file:// et enfin, il insert. Une fois que tout a été inséré, il sauvegarde la playlist dans mpd. Simple comme bonjour vous dis-je !!! 😛

export MPD_HOST=~/.mpd/socket;
for filename in *.m3u; do;
    echo "$filename";
    mpc clear;
    cat "$filename" | grep -Ev '^#' | xargs -I{} --delimiter='\n' readlink -f "{}" | xargs -I{} -d '\n' echo "file://{}" | mpc insert;
    sleep 1;
    echo "$filename" | sed 's/\.[^.]*$//';
    mpc save $(echo "$filename" | sed 's/\.[^.]*$//');
done

Laisser un commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax