Construction automatique liste de lecture sur un NAS Synology

Objectif: automatiser la mise à jour d’ une liste de lecture sur un NAS (équipé de DSM v6.1.5.), avec l’ intégralité des fichiers audio stockés sur le NAS.

A chaque fois que je rajoutais des morceaux de musique sur mon NAS, je devais reconstruire à la main une liste de lecture incluant les nouveaux morceaux afin de maintenir ma liste à jour. Je me suis demandé comment automatiser ce processus pénible et fréquent, surtout lors de la phase d’ acquisition du NAS car j’ ai encodé toute ma collection de CDs en fichiers FLAC pour les copier sur le NAS… Même chose lors de l’ achat de CDs audio, et oui, y’ a encore des gens pour en acheter 🙂

J’ ai remarqué que chaque liste créée depuis l’ interface DSM est stockée dans /volume1/music/playlists avec l’ extension .m3u. De plus, chaque entrée fait référence à un fichier audio en précisant son chemin relatif au dossier playlists: « ../ », et le fichier débute par la chaîne « #EXTM3U ».

J’ ai donc d’ abord tenté de construire ma playlist à la main, depuis une session ssh vers le NAS et puis, lorsque le résultat m’ a convenu j’ ai noté la ligne de commande:

cd /volume1/music/playlists && 
echo "#EXTM3U" > Auto.m3u && 
find .. -type f -iregex ".*\(flac\|ogg\|mp3\|wav\|dsd\|dsf\)" 
>> Auto.m3u

Détaillons un peu: on se place d’ abord dans le bon dossier playlists afin que la recherche de fichiers préfixe chaque résultat par le chemin relatif « ../ ». Ensuite on ajoute la chaîne « #EXTM3U » en début de notre playlist automatique nommée Auto.m3u. Enfin, la commande find recherche tous les fichiers du dossier parent correspondant à un motif et ajoute chaque entrée au fichier playlist Auto.m3u. Le motif de recherche convient à mon cas mais vous pouvez tout à fait l’ adapter au votre.

En option, on peut éventuellement si ça vous intéresse, rajouter un tri sur le chemin après le find:

find .. -type f -iregex ".*\(flac\|ogg\|mp3\|wav\|dsd\|dsf\)" | sort

Ou, au contraire, obtenir un résultat totalement mélangé avec l’ option -R de sort (personnellement je me suis fait deux listes automatiques: une triée et une aléatoire :).

Pour que la playlist apparaisse dans la liste des playlist de l’ application Audio Station, j’ ai d’ abord du créer une fois, manuellement, la nouvelle playlist « Auto » de type « Group playlist ». Ensuite, il ne reste plus qu’ à passer par Control Panel -> Tasks Scheduler et créer une nouvelle tâche lancée par root aux horaires et jours de votre choix, puis à copier-coller la ligne de commande ci-dessus dans l’ onglet « Task settings ». Cerise sur le gâteau, la playlist apparaîtra dans la liste de vos playlist depuis l’ application Audio Station du DSM ou sur tout autre lecteur multimedia supportant DLNA et les listes de lectures, comme par exemple, un Marantz M-CR 611 que j’ utilise quotidiennement avec mes listes de lectures.

 

(2 commentaires)

    • Andream on 2 janvier 2019 at 18 h 51 min
    • Répondre

    bonjour Nick,

    Super ton tuto, c’est exactement ce que je souhaite faire ! ! !

    Cependant, je pense avoir correctement suivi le tuto pour Construction automatique liste de lecture sur un NAS Synology mais aucune musique n’est liées à cette playlist « Auto »…

    Voici le script que j’ai renseigné en root dans le planificateur de tâche du Syno:

    cd /volume1/music/playlists &&
    echo « #EXTM3U » > Auto.m3u &&
    find .. -type f -iregex « .*\(flac\|ogg\|mp3\|wav\|dsd\|dsf\) » | sort -R
    >> Auto.m3u

    Pourtant, a la fin de chaque exécution du script, je reçois un mail où je vois bien l’intégralité des titres du dossier mais lorque j’ouvre ds audio, aucune musique n’y ai liées…
    Merci d’avance pour ton aide…
    Merci pour ton aide.

    1. Bonjour, Andream, et désolé pour le retard,

      ton script fonctionne très bien (attention aux guillemets qui sont bizarres mais sans doute à cause du site WordPress dans lequel on cause…).

      Je te rappelle qu’il ne sert qu’à créer le fichier Auto.m3u que tu vas trouver dans /volume1/music/playlists/Auto.m3u avec les chemins vers les fichiers dont le nom correspond au critères du script.

      Si tu passes par l’application DS Audio (sur Android par exemple), il faut que tu ailles dans le menu principal, celui qui contient entre autres […] ‘Musique téléchargée’, ‘Accueil’, ‘Bibliothèque’, ‘Listes de lecture’ […], puis choisis ‘Listes de lecture’ et en fin de liste tu devrais trouver ‘Auto’. Dis-moi déjà si elle apparait bien à cet endroit.
      Ensuite, la choisir permet à ton appllication DS Audio de charger tous les morceaux de la liste. Je viens de le faire pas à pas et ça fonctionne normalement.

      Dans l’attente de plus d’infos pour t’aider.

Répondre à nick Annuler la réponse

Your email address will not be published.