Aller au contenu
Documentation
Le projet

CLI — Commandes

Listes de lecture

Référence détaillée d’Aède : listes de lecture.

aede playlist parcourt la bibliothèque cataloguée et crée une playlist .m3u prête à lire dans les dossiers d’album contenant la musique.

aede playlist                       # un .m3u dans chaque dossier d’album
aede playlist ~/Music/Ozzy          # seulement sous ce chemin
aede playlist --simple              # chemins seuls, sans métadonnées #EXTINF
aede playlist --artists             # aussi une playlist de discographie par artiste
aede playlist --dry-run             # prévoir les écritures sans créer de fichier

Sans dossier en argument, la commande couvre tous les dossiers d’album du catalogue. Elle produit quelques kilo-octets de texte par album sans décoder l’audio. Comme elle peut écrire dans beaucoup de dossiers, commencer par --dry-run permet d’examiner le périmètre.

Noms et portabilité des playlists#

Le fichier porte le nom de son dossier, par exemple 1959 Kind of Blue [FLAC].m3u, plutôt que le titre d’album lu dans les tags.

Ce choix répond à deux contraintes :

  • Noms autorisés : un titre comme 1/2: The Early Years comporte des caractères interdits selon le système (/, :). Le dossier a déjà un nom accepté à l’endroit où la playlist est écrite.
  • Unicité : deux dossiers peuvent contenir des albums de même titre, par exemple une extraction CD originale et une nouvelle édition haute résolution. Le nom du dossier permet à chacun de garder sa propre playlist.

Les chemins des pistes sont relatifs au dossier de la playlist. Déplacer ce dossier avec sa musique vers un disque, une carte micro-SD ou un emplacement partagé conserve ainsi les liens, tant que le lecteur peut accéder à ces fichiers.

(Remarque : --m3u appliqué à une sélection de aede search ou aede artist produit au contraire des chemins absolus. Cet export peut être placé ailleurs sur le même système sans perdre ses références. Les deux méthodes partagent le même moteur de rendu, notamment pour les lignes de durée et de titre #EXTINF.)

Coffrets et discographies#

L’ordre des pistes suit les tags : numéro de disque, puis numéro de piste.

Un coffret garde une playlist commune. Si une édition occupe les sous-dossiers Disc 1 et Disc 2, Aède place la playlist dans leur dossier d’album parent et y inclut les deux disques. Les pistes numérotées de 1 à 17 sur chaque disque restent ainsi dans leur ordre de lecture.

Avec --artists, Aède cherche aussi un dossier commun aux albums d’un artiste pour y écrire une playlist de discographie. Si les albums sont dispersés ou partagent seulement une racine suivie telle que ~/Music, cette playlist d’artiste n’est pas écrite. Une bibliothèque organisée à plat n’est ainsi pas encombrée de centaines de playlists à sa racine.

Relancer sans réécrire inutilement#

Seuls les fichiers ordinaires à destination sont comparés avec un tampon d’octets de taille fixe. Les liens et fichiers spéciaux sont refusés, notamment un tube nommé qui attendrait sinon un émetteur. La génération depuis le catalogue ne recrée pas les dossiers d’album ou d’artiste absents : elle signale ces échecs, continue avec les dossiers disponibles et renvoie un code de sortie non nul. Cela ne modifie pas les exports explicites de sélection et ne constitue pas un bac à sable contre un remplacement concurrent des dossiers parents.

Une seconde exécution sur des données inchangées n’écrit rien.

Aède compare le texte de la playlist, pas seulement l’existence du .m3u. Son contenu est calculé depuis les pistes actuelles du catalogue. Ajouter une piste, la scanner puis relancer la commande permet donc de mettre à jour la playlist si le nouveau texte diffère.

Si le texte est identique, le fichier reste intact, date de modification comprise. Les outils de sauvegarde et de synchronisation ne le considèrent pas comme modifié sans raison.

Des éditions partageant un dossier contribuent à une playlist commune, publiée depuis un temporaire privé après écriture complète. Les chemins contenant un retour chariot ou saut de ligne sont refusés avant toute écriture, y compris avec --m3u : ils ne peuvent pas tenir sur une ligne M3U sans introduire une autre entrée. Les sauts de ligne des titres sont remplacés par des espaces.