#1 Le 08/04/2020, à 17:04
- kogool
Script pour creer un fichier .m3u de playlist avec titre
Bonjour à la communauté!
Voila mon souci, j'aimerai realiser un scripts Shell qui me cherche mes fichiers, récupere que le nom et les inseres dans un ligne
type:
#EXTINF:1,NomdeMonFichier
ICI mon fichier sous forme http://url.balabla/monfichier
Voici le debut de mon Script:
find /mnt/GandalVideos/Films/ -type f | cut -c25-1000 | sort | sed -e 's/.*/http:\/\/192.168.0.30\/GANDAL\/&/' >> /root/GANDAL.m3u
sed -i i'#EXTINF:-1,Film' /root/GANDAL.m3u
Le truc c'est qu'il me faudrait une boucle qui lise mes fichier et incrémante à chaque fois un ligne "générée" #EXTINF:1,Le_nom_de_fichier
Le test que jai fait me donne cela:
#EXTINF:-1,$LINE
Mes Vacances.2019.avi
#EXTINF:-1,$LINE
Noêl.2019.avi
#EXTINF:-1,$LINE
Ma.Retraite.2019.avi
#EXTINF:-1,$LINE
SKi.2020.avi
Quelqu'un peut il m'orienter ou bien même m'aider à construire se Script.
En vous remerciant par avance!
Je pensais a un truc dans le genre:
find /mnt/GandalVideos/Films/ -type f | cut -c25-1000 | sort | sed -e 's/.*/http:\/\/192.168.0.30\/GANDAL\/&/' >> /root/GANDAL.m3u
file="/root/GANDAL.m3u"
while IFS= read -r line
do
sed -i i'#EXTINF:-1,"$Line", /root/GANDAL.m3u
done <"$file"
Mais sa marche pas!
Dernière modification par kogool (Le 08/04/2020, à 17:49)
Raspberry Pi2 Raspbian Buster
Hors ligne
#2 Le 08/04/2020, à 21:19
- kamaris
Re : Script pour creer un fichier .m3u de playlist avec titre
C'est pas évident de comprendre ce que tu veux faire…
En tout cas, tu n'as aucune bonne raison d'écrire dans /root : tu dois écrire chez toi (/home/ton-user) ou dans /tmp pour les choses temporaires.
Après, pour demander à find de t'afficher uniquement le nom des fichiers qu'il trouve, c'est -printf '%f\n'.
Puis, pour ajouter devant un préfixe avec un numéro de ligne, tu peux passer ça à awk :
find /mnt/GandalVideos/Films/ -type f -printf '%f\n' | sort | awk '{print "préfixe_" NR ", " $0}'
Dernière modification par kamaris (Le 08/04/2020, à 21:21)
En ligne
#3 Le 09/04/2020, à 09:30
- kogool
Re : Script pour creer un fichier .m3u de playlist avec titre
Merci Kamaris pour ces infos et conseils qui vont grandement me servir!
Je m'explique sur ce dont j'ai besoin de faire.
Idéalement il faudrait que le script me trouve tout les fichiers vidéos et me construise un fichier de type m3u ou m3u8 avec
cette structure:
#EXTINF:-1,Mes Vacances
http://192.168.0.30/GANDAL/Mes Vacances.2019.avi
#EXTINF:-1,Noêl
http://192.168.0.30/GANDAL/Noêl.2019.avi
#EXTINF:-1,Ma.Retraite
http://192.168.0.30/GANDAL/Ma.Retraite.2019.avi
Phase 1 Le script énumère les vidéo trouver et ajoute devant "http://192.168.0.30/GANDAL/" afin de construire L'url pour chaque fichier (trouvés)
find /mnt/GandalVideos/Films/ -type f -printf '%f\n' | sort | sed -e 's/.*/http:\/\/192.168.0.30\/GANDAL\/&/' >> /home/pi/GANDAL.m3u
ce qui me donnera bien :
http://192.168.0.30/GANDAL/Noêl.2019.avi
Phase 2 il faudrait récupère le nom du fichier et s'en servir pour contruire cette ligne
#EXTINF:-1,Noêl
C'est ici que je sèche! Il me faudrait utilisé genre une variable et boucle, le tous pour créer ces lignes à chaque nouveau nom de fichier et les placer avant l'url dans le fichier (m3u)
Commande que je pensais utiliser:
sed -i i'#EXTINF:-1,$MaVariable' /home/pi/GANDAL.m3u
pour donner ce resultat au final:
#EXTINF:-1,Noêl
http://192.168.0.30/GANDAL/Noêl.2019.avi
Soit je fait cela en deux fichier! un avec les URL de chaque videos et un autre avec le format attendu "#EXTINF:-1,Mon_fichier.xxx"
après j'ai vu que paste peut fusionner deux fichiers entre eux ( mais la pareil paste fusionne tout sur la même ligne). Ce qui ne me convient pas! (a moins que la commande paste sache faire un saut de ligne?)
Je souhaiterais vraiment avancer sur ce point, cette partie du code qui me ferais une boucle pour lire ces nom de fichiers et construire ces lignes "#EXTINF:-1,Mon_fichier.xxx" et les inserrer au dessus de chaque ligne URL.
Merci pour votre aide!
Dernière modification par kogool (Le 09/04/2020, à 10:12)
Raspberry Pi2 Raspbian Buster
Hors ligne
#4 Le 09/04/2020, à 10:57
- kogool
Re : Script pour creer un fichier .m3u de playlist avec titre
Du coup j'ai opté pour le faire en 2 phase: et sa fonctionne!!
JE RECHERCHE LES FICHIERS ET CONSTRUIT LE FORMAT PROPRE AU FICHIER m3u (avec l’entête #EXTINF:-1,) dans le fichier EXTINF
find /mnt/GandalVideos/Films/ -type f -printf '%f\n' | sort | sed -e 's/.*/#EXTINF:-1,&/' >> /home/pi/EXTINF
JE LISTE TOUTES LES VIDEOS ET LEUR AJOUTE L'URL QUI VA BIEN (http://xxxxxx) dans un autre fichier GANDAL.m3u
find /mnt/GandalVideos/Films/ -type f -printf '%f\n' | sort | sed -e 's/.*/http:\/\/192.168.0.30\/GANDAL\/&/' >> /home/pi/GANDAL.m3u
JE FUSIONNE CES 2 FICHIERS DANS UN TROISIEME (avec saut de ligne, pour respecter la structure du fichier) base d'un fichier m3u ou m3u8 nommé Liste.m3u
paste -d"\n" '/home/pi/EXTINF' '/home/pi/GANDAL.m3u' > '/home/pi/Liste.m3u'
JE SUPPRIME LES FICHIES DE TRAVAIL
rm /home/pi/EXTINF
rm /home/pi/GANDAL.m3u
Resultat voulu est bien là:
#EXTINF:-1,Noêl.avi
http://192.168.0.30/GANDAL/noêl.avi
#EXTINF:-1,Les.Enfant.Le.Retour.avi
http://192.168.0.30/GANDAL/,Les.Enfant.Le.Retour.avi
#EXTINF:-1,Les.Crèpes.2.avi
http://192.168.0.30/GANDAL/Les.Crèpes.2.avii
#EXTINF:-1,Les Anniverssaires.avi
http://192.168.0.30/GANDAL/Les Anniverssaires.avi
Bon je l'admet c'est pas trop propre mais sa marche!je me voyais mal le faire a la main!!
Il me restera juste à virer l'extension du media dans les ligne #EXTINF:-1,blbla.xxx avec un petit CUT ou AWK ou SED.
Merci encore kamaris ton conseil ma poussé dans ma réflexion !!
Dernière modification par kogool (Le 09/04/2020, à 10:59)
Raspberry Pi2 Raspbian Buster
Hors ligne
#5 Le 09/04/2020, à 11:38
- kamaris
Re : Script pour creer un fichier .m3u de playlist avec titre
Ah d'accord, donc il n'y a pas d'histoires d'incrément en fait !
Alors, pour ce que tu veux faire, voilà qui sera plus simple :
find /mnt/GandalVideos/Films/ -type f -printf '%f\n' | sort | sed -E 's%(.*)\..*%#EXTINF:-1,\1\nhttp://192.168.0.30/GANDAL/&%'
En ligne
#6 Le 09/04/2020, à 13:43
- kogool
Re : Script pour creer un fichier .m3u de playlist avec titre
Royal au Bar !!
Tout d'abord un GRAND merci !
Je vais pouvoir m'attaquer maintenant à la partie ou j'ai des sous répertoire et il me faudra le path dans L'URL "http://"
Seulement le path du répertoire superieur aux fichiers en question!!
Merci Kamaris
Dernière modification par kogool (Le 09/04/2020, à 13:44)
Raspberry Pi2 Raspbian Buster
Hors ligne
#7 Le 09/04/2020, à 14:02
- kamaris
Re : Script pour creer un fichier .m3u de playlist avec titre
De rien
Pour ce que tu veux faire ensuite, il suffit de modifier un peu la sortie de find d'une part, les motifs de la commande « s » de sed d'autre part
En ligne