Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/04/2020, à 18: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! big_smile
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! hmm

Dernière modification par kogool (Le 08/04/2020, à 18:49)


Raspberry Pi2 Raspbian Buster

Hors ligne

#2 Le 08/04/2020, à 22: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, à 22:21)

Hors ligne

#3 Le 09/04/2020, à 10: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!  smile
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! sad  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! smile

Dernière modification par kogool (Le 09/04/2020, à 11:12)


Raspberry Pi2 Raspbian Buster

Hors ligne

#4 Le 09/04/2020, à 11:57

kogool

Re : Script pour creer un fichier .m3u de playlist avec titre

Du coup j'ai opté pour le faire en 2 phase:  tongue  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à:  cool

#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 !! big_smile big_smile

Dernière modification par kogool (Le 09/04/2020, à 11:59)


Raspberry Pi2 Raspbian Buster

Hors ligne

#5 Le 09/04/2020, à 12: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/&%'

Hors ligne

#6 Le 09/04/2020, à 14:43

kogool

Re : Script pour creer un fichier .m3u de playlist avec titre

Royal au Bar !! cool cool
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 wink

Dernière modification par kogool (Le 09/04/2020, à 14:44)


Raspberry Pi2 Raspbian Buster

Hors ligne

#7 Le 09/04/2020, à 15:02

kamaris

Re : Script pour creer un fichier .m3u de playlist avec titre

De rien smile
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 wink

Hors ligne