Copier les musiques d'un .pls (ou autre)

Bonjour,

J’utilise actuellement rhytmbox pour écouter mes musiques, avec ce logiciel j’ai créé quelques playlist. Parmis ces playlists il y en a une que je souhaite copier dans un dossier (par cela j’entends les fichiers audio, pas seulement le fichier de playlist). J’aimerai donc savoir s’il est possible de copier les musiques de la playlist à partir de son fichier .pls ce qui m’éviterai de devoir le faire manuellement

Je ne sais pas si la solution à mon problème est simple mais j’ai cherché (peut être pas efficacement) et je n’ai rien trouvé.

Merci d’avance,

Tristan

en partant du principe que tes zic sont dans une dossier /chemin/dossier et que les titres des musiques ne commencent jamais par un /

edit: je viens de percuter que j’avais mélanger pls et m3u à l’ancienne ^^'
script corrigé

#!/bin/bash

$destination="/ton/nouveau/dossier"
$playlist="/ton/fichier/pls"
cat ${playlist} | while read line
do
	if [ ${line:0:4} == "File" ]; then
		fichier=`echo ${line} | awk -F "=" '{print $2}'`
		cp ${fichier} ${destination}
	fi
done

Tout d’abord merci pour ta réponse

Je n’avais pas pensé à faire un script vu que je n’y connaissais rien (j’en ai jamais fait en fait, mais ce document va changer ca :mrgreen: )

Donc après avoir lu ton code et l’avoir rempli selon mes configurations j’ai eu les erreurs suivantes

[code]tt@debian-tt:~/Bureau/Test$ ls
lalala.sh lalala.sh~ Musique playlist.pls
tt@debian-tt:~/Bureau/Test$ ./lalala.sh
./lalala.sh: ligne3: =/home/tt/Bureau/Test/Musique/: Aucun fichier ou dossier de ce type
./lalala.sh: ligne4: =/home/tt/Bureau/Test/playlist.pls: Aucun fichier ou dossier de ce type

./lalala.sh: ligne 7 : [: == : opérateur unaire attendu
[/code]

:think:

Voici aussi le dossier lalala.sh (au cas où je l’aurai mal complété)

[code]#!/bin/bash

$destination="/home/tt/Bureau/Test/Musique/"
$playlist="/home/tt/Bureau/Test/playlist.pls"
cat ${playlist} | while read line
do
if [ ${line:0:1} == “/” ]; then
cp ${line} ${destination}
fi
done[/code]

[EDIT]

En faisant nano playlist.sh j’ai regardé comment c’était foutu

File2=file:///home/tt/Musique/Musique%20classique/Vivaldi,%20Antonio/The%20Mill$
Title2=Summer [G Minor]; Presto

donc dans ce cas ca ne serait pas plutot :

${line:0:1} == “F” à la place de ${line:0:1} == “/”

et un condition sur “line” dans la ligne ou on demande de copier (ne lui demande de copier qu’a partir du “/home”

j’avais corrigé le coup du File au lieu de / :slightly_smiling:
pour la suite oui, le file:// le gène
qu’à cela ne tienne !

$destination="/ton/nouveau/dossier"
$playlist="/ton/fichier/pls"
cat ${playlist} | while read line
do
	if [ ${line:0:4} == "File" ]; then
		fichier=`echo ${line} | awk -F "=" '{print $2}'`
		if [ ${fichier:0:7} == "file://"]; then
			fichier=`echo ${fichier:7}`
		fi
		cp ${fichier} ${destination}
	fi
done

Mais ca c’etait en vue d’une lecture du fichier

la il me répond toujours :

./lalala.sh: ligne3: =/home/tt/Bureau/Test/Musique/: Aucun fichier ou dossier de ce type ./lalala.sh: ligne4: =/home/tt/Bureau/Test/playlist.pls: Aucun fichier ou dossier de ce type

et je ne vois pas pk (ils existent ^^)

normal, j’étais ou pas réveillé, ou encore dan mon php

#!/bin/bash DEST="/ton/nouveau/dossier" PLS="/ton/fichier/pls" cat ${PLS} | while read line do if [ ${line:0:4} == "File" ]; then FICHIER=`echo ${line} | awk -F "=" '{print $2}'` if [ ${FICHIER:0:7} == "file://"]; then FICHIER=`echo ${fichier:7}` fi cp ${FICHIER} ${DEST} fi done

le $ devant la déclaration des var en début de script était de trop