Greboca  

Suport technique et veille technologique

Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.

C’est alors la barrière de la prise en main qui fait peur, et pourtant...

Les logiciels libres

L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.

Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.

Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.

Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.

LinuxFr.org : les journaux  -  Créer ses listes de lecture audio

 -  Décembre 2023 - 

Sommaire

'lut les moules,

Le contexte

Maintenant que noël est (presque) passé, il va falloir commencer à penser au réveillon du jour de l'an et à préparer ses listes de lecture pour faire la fête, à vous la danse des canard et autres chenille pour danser jusqu'au bout de la nuit sans se prendre la tête à improviser sur le moment une recherche de pistes dans votre bibliothèque audio.

Comme vous avez tagué proprement vos fichiers audio à partir de mon précédent journal, il vous sera facile de créer vos listes de lecture.

Mais tout d'abord abordons le format des listes de lecture.

Les formats des listes de lecture

Le M3U (MPEG version 3.0 URL) est certainement le format le plus courant qui a été créé à l'origine par le logiciel WinPlay3 édité par la société allemande Fraunhofer accessoirement créateur du MP3 et s'est imposé comme standard de fait. Il contient une liste de fichiers multimédia simplement repérés par leur adresse (URL). C'est un bête fichier avec une adresse par ligne avec l’extension .m3u si le texte est encodé avec un encodage non unicode ou avec l’extension .m3u8 si le texte est encodé en UTF-8. Cette dernière extension n'a plus vraiment de sens aujourd'hui, mon système Mageia est par défaut en encodage UTF-8 et les fichiers m3u que je génère sont encodés en UTF-8 sans nécessairement avoir l'extension m3u8.
Mais revenons aux adresses qui peuvent avoir le format suivant:

  • Chemin absolu vers le fichier
  • Chemin relatif vers le fichier par rapport au fichier M3U
  • URL d'un fichier distant

Le M3U étendu (Extended M3U) contient des champs supplémentaires identifiés en début de ligne par un "#" et se terminant avec un ":" s'il y a du texte qui suit. Sans être exhaustif, on retrouve par exemple :

  • #EXTM3U - placé en en-tête de fichier indiquant qu'on utilise le format Extended M3U
  • #EXTINF : informations sur la piste
  • #PLAYLIST : Le titre de la playlist

Voilà un exemple de fichier au format M3U étendu

#EXTM3U
#EXTINF:227,Roé - Soledad>
/ultra/data/musiques/classement par genre/pop/Roe - soledad.mp3
#EXTINF:141,Al Martino - Volare
/ultra/data/musiques/classement par genre/pop/Al Martino - Volare.mp3
#EXTINF:218,Nek - Laura non c'e
/ultra/data/musiques/classement par genre/pop/Nek and Cerena - Laura non ce.mp3
#EXTINF:219,Gilberto Gil - Toda menina baiana
/ultra/data/musiques/classement par genre/pop/Gilberto Gil - Toda Menina Baiana.mp3
#EXTINF:248,Umberto Tozzi - tu
/ultra/data/musiques/classement par genre/pop/Umberto Tozzi - tu.mp3

Le chiffre devant le nom de la piste est la durée de la piste en seconde. On trouvera ici davantage de détail sur ce format.

Autre format le XSPF c'est une alternative libre à M3U ou d'autres formats propriétaires de liste qu'on n'abordera pas ici comme PLS pour iTunes ou ASX pour Windows Media. Il fonctionne également sur le principe d'une liste d'adresse mais au format XML et supporte l'unicode. Cela donne quelque chose comme cela:

<?xml version="1.0" encoding="UTF-8"?>

  
    
      /ultra/data/musiques/classement par genre/pop/Roe - soledad.mp3
      Soledad
      Roé
      Roé
      227000
      1
      (embedded)
    
    
      /ultra/data/musiques/classement par genre/pop/Al Martino - Volare.mp3
      Volare
      Al Martino
      Best of Al Martino
      141000
      1
      (embedded)
    

      /ultra/data/musiques/classement par genre/pop/Umberto Tozzi - tu.mp3
      tu
      Umberto Tozzi
      Tu
      248000
      1
      (embedded)
    
  

Créer ses listes de lecture automatiquement

Maintenant pour créer automatiquement ses listes de lecture, en partant du principe que les fichiers audio ont été correctement tagués ID3 on pourra le faire automatiquement par script bash. En première approche on peut toujours créer des simples listes de lecture qui ne tiendront pas compte des tags ID3 en se contentant de parcourir un répertoire et sous répertoires et de mettre tous les fichiers audio dans un fichier playlist.m3u

#!/bin/bash
read -p "Chemin absolu ou relatif (par défaut relatif) " chemin
if [ "$chemin" = "absolu" ]
then
    path=$(pwd)
else
    path="."
fi
playlist="playlist.m3u"
rm -f $playlist
IFS=$'\n'
for fichier in $(find $path type f | grep '/*.ogg\|/*.mp3\|/*.flac')
do
      echo "Fichier trouvé $fichier"
      echo $fichier>>$playlist
done;
unset IFS

Ce script a la particularité de laisser le choix entre mettre un chemin absolu ou relatif dans la liste de lecture, le chemin relatif sera intéressant si vous importez votre bibliothèque audio sur un téléphone mobile. Il faudra faire en sorte d'avoir une arborescence relative identique et le fichier de liste de lecture placé au même endroit pour qu'il puisse retrouver les fichiers audio sans se soucier de leur chemin absolu.

Maintenant si on veut exploiter les métadonnées ID3, on pourra utiliser la commande ffprobe qui vient avec la suite ffmpeg et qui permet de lire les métadonnées. Le script ci-dessous va créer automatiquement une liste de lecture en filtrant sur le genre musical, toujours en demandant si l'on souhaite un chemin absolu ou relatif

#!/bin/bash
read -p "Genre musical : " genre
read -p "Chemin absolu ou relatif (par défaut relatif) " chemin
if [ "$chemin" = "absolu" ]
then
    path=$(pwd)
else
    path="."
fi
playlist="playlist-$genre.m3u"
rm -f $playlist
IFS=$'\n'
for fichier in $(find $path type f | grep '/*.ogg\|/*.mp3\|/*.flac')
do
   if ffprobe -loglevel quiet -hide_banner -show_entries format_tags=genre -of default=noprint_wrappers=1:nokey=1 $fichier 2>&1 | grep -i $genre ; then
      echo "Fichier trouvé $fichier"
      echo $fichier>>$playlist
   fi
done;
unset IFS

Pour convertir vos listes de lecture .m3u en M3U étendu ou .xspf qui peuvent être plus portables sur d'autres supports, on pourra simplement utiliser vlc, on charge la liste de lecture au format M3U puis à partir du menu Média->Enregistrer la liste de lecture… on choisira le format de sortie à partir de la liste déroulante.

Titre de l'image

Créer ses listes de lecture manuellement

Pour créer ses listes de lecture manuellement et simplement, on pourra utiliser une application. Personnellement j'utilise clementine qui intègre une gestion des listes de lecture intelligente multi critères basés sur les métadonnées ID3.

Titre de l'image

Titre de l'image

On aura le choix ensuite de sauvegarder sa liste de lecture dans différents formats M3U, XSPF, PLS et ASX comme déjà évoqués ici mais également CUE et WPL.

Je rappelle que même si la page d'accueil de clementine peut laisser penser que le projet est mort, son développement est très actif comme on peut le voir sur sa page github.

Quel que soit le format, clementine va sauvegarder les chemins en absolu, pour les convertir en relatif pour la raison évoquée plus haut, on pourra utiliser ce petit script

#!/bin/bash
read -p "Entrez le nom du fichier : " fichier
read -p "Entrez la chaine à remplacer : " chaine1
read -p "Entrez la chaine de remplacement : " chaine2
echo "Traitement de $fichier ..."
fichiertemp=$(basename "$fichier" | cut -d. -f1)
extension="${fichier##*.}"
sed "s|$chaine1|$chaine2|g" $fichier  > "$fichiertemp-relatif.$extension"

Pour aller plus loin

Je n'ai pas évoqué dans ce journal les lecteurs audio capables de lire les listes de lecture car il y en a une pléthore sur tous les systèmes linux, windows comme android.

Je n'ai pas évoqué également la possibilité de pouvoir écouter des podcasts dans une liste de lecture identifiés par leur URL notamment ceux de radiofrance car à vrai dire j'ai quelque peu buté sur le sujet et j'espère bien que dans les commentaires je trouverais quelques pistes pour y parvenir.

Commentaires : voir le flux Atom ouvrir dans le navigateur

par Funix

LinuxFr.org : les journaux

LinuxFr.org : Journaux

antistress adventure in Flatpak land

 -  30 avril - 

Hello nal, ça faisait un bail !Certain (il se reconnaîtra) m'a demandé de le tenir au courant lorsque j'aurai basculé sur un usage de Firefox (...)


Téléphone sous Linux ?

 -  25 avril - 

Aujourd'hui, avoir un téléphone avec un Android libéré, c'est possible, on pense en particulier à Murena.Avoir un téléphone sous GNU/Linux, c'est (...)


Quand votre voiture vous espionne… et vous le fait payer

 -  23 avril - 

Ceci se passe aux États-Unis, pour l’instant, aucune preuve qu’une telle fuite existe en Europe. Mais… si votre assurance augmente brutalement, (...)


firefox, nouvelle fenêtre dans une session isolée

 -  15 avril - 

Les fenêtres de navigation privées de firefox partagent leurs cookies de session or je souhaitais avoir des fenêtres de navigation isolées, (qui ne (...)


Pretendo tente de déprogrammer l'obsolescence des consoles Nintendo

 -  9 avril - 

Ah Nal,Gros N vient de faire un gros doigt aux utilisateurs de ses consoles 3DS et Wii U en annonçant la fermeture des services en ligne pour (...)