#1 Le 04/03/2010, à 10:13
- cracolinux
Générer un playliste de MP3 (script nautilus)
Bonjour les gens!
Voilà, j'aimerais construire mon script pour générer des playlists de mp3.
Je le mettrais ici lorsqu'il sera ok, avec une explication des commandes.
J'ai donc penser à utiliser la commande ls en redirigeant son résultat vers un fichier .m3u avec > ou >>
EX:
$ ls *.mp3 > /home/trucmuch/musique/list.m3u
le problème, c'est qu'avec cette syntaxe, ls ne donne pas le chemin absolue des fichiers.
Donc le fichier généré est inutilisable.
J'ai cherché les options possibles, mais je n'ai rien trouvé.
Question-->
Est-ce que quelqu'un sait faire faire ça à ls ?
<--
Je sais que la variable d'environnement PWD me donne accès à ce chemin, mais, je n'ai pas réussi à la "mixer" avec ls de façon à obtenir une liste.
Merci de votre aide!
Dernière modification par cracolinux (Le 20/03/2010, à 17:15)
Hors ligne
#2 Le 04/03/2010, à 10:25
- gl38
Re : Générer un playliste de MP3 (script nautilus)
Il me semble que
locate ".mp3"|grep /home/musique
fait ce que tu veux si ta base est à jour, sinon updatedb est là pour ça.
Cordialement,
Guy
Hors ligne
#3 Le 04/03/2010, à 10:42
- cracolinux
Re : Générer un playliste de MP3 (script nautilus)
Salut gl38!
Merci, en effet, ta commande marche. Mais je n'obtiens pas ce que je voudrais.
Elle liste les mp3 présents dans mon système de fichiers linux, alors que je voudrais faire une playlist avec des mp3 présent sur une partition windows...
Ces fichiers ne semblent pas être inclus dans la base de données de locate...
Je regarde si la commande find ne pourrait pas remplacer locate dans ce cas..
Hors ligne
#4 Le 04/03/2010, à 11:04
- gl38
Re : Générer un playliste de MP3 (script nautilus)
find /home/musique -name "*.mp3"
Cordialement,
Guy
Hors ligne
#5 Le 04/03/2010, à 11:14
- cracolinux
Re : Générer un playliste de MP3 (script nautilus)
Merci Guy mais, je me retrouve à nouveau sans mon chemin absolu:
/media/924C274F4C272E03/musique/Police and Sting/! (1997) The Police & Sting - The Very Best Of Sting & The Police$ find -name "*.mp3"
./Sting & The Police - The Very Best Of Sting & The Police - 06 - Walking On The Moon.mp3
./Sting & The Police - The Very Best Of Sting & The Police - 01 - Message In A Bottle.mp3
./Sting & The Police - The Very Best Of Sting & The Police - 02 - Can't Stand Losing You.mp3
./Sting & The Police - The Very Best Of Sting & The Police - 03 - Englishman In New York.mp3
./Sting & The Police - The Very Best Of Sting & The Police - 04 - Every Breath You Take.mp3
./Sting & The Police - The Very Best Of Sting & The Police - 05 - Seven Days.mp3
./Sting & The Police - The Very Best Of Sting & The Police - 07 - Fields of God.mp3
./Sting & The Police - The Very Best Of Sting & The Police - 08 - Fragile.mp3
./Sting & The Police - The Very Best Of Sting & The Police - 09 - Every Little Thing She Does Is Ma.mp3
./Sting & The Police - The Very Best Of Sting & The Police - 10 - De Do Do Do, De Da Da Da.mp3
./Sting & The Police - The Very Best Of Sting & The Police - 11 - If You Love Somebody Set Them Fre.mp3
./Sting & The Police - The Very Best Of Sting & The Police - 12 - Let Your Soul Be Your Pilot - Edi.mp3
./Sting & The Police - The Very Best Of Sting & The Police - 13 - Russians.mp3
./Sting & The Police - The Very Best Of Sting & The Police - 14 - If I Ever Lose My Faith In You.mp3
./Sting & The Police - The Very Best Of Sting & The Police - 15 - When We Dance.mp3
./Sting & The Police - The Very Best Of Sting & The Police - 16 - Don't Stand So Close To Me.mp3
./Sting & The Police - The Very Best Of Sting & The Police - 17 - Roxanne.mp3
./Sting & The Police - The Very Best Of Sting & The Police - 18 - Roxanne '97 - Puff Daddy Remix.mp3
Hors ligne
#6 Le 04/03/2010, à 11:37
- gl38
Re : Générer un playliste de MP3 (script nautilus)
Bizarre, moi j'ai le nom absolu.
Il y a aussi
du -a /home/musique|grep mp3
qui donne le chemin, mais il y a la taille en plus en tête de gondole.
Il faut donc arranger le résultat.
Pour arranger les résultats précédents, il y la commande surpuissante sed :
si tu sauves ta liste précédente dans un fichier essai
et
si tu tapes
sed -e "s/\.\//blabla\//g" essai >essai1
tu as blabla en tête de chaque ligne de essai1
Cordialement,
Guy
Hors ligne
#7 Le 04/03/2010, à 12:17
- AnsuzPeorth
Re : Générer un playliste de MP3 (script nautilus)
Merci Guy mais, je me retrouve à nouveau sans mon chemin absolu:
c'est normal, tu as fait un cd dans ton dossier musique avant de lancer find, donc il ne precise pas le chemin où tu te trouve.
Soit tu ajoute au résultat le dossier, ou tu mets le nom de dossier dans find comme te l'a préciser gl38.
find /home/dossier/musique
Sinon, pour générer une playlist dans chaque dossier de musique:
http://forum.ubuntu-fr.org/viewtopic.ph … 6#p2608936
Dernière modification par AnsuzPeorth (Le 04/03/2010, à 12:18)
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#8 Le 04/03/2010, à 14:14
- cracolinux
Re : Générer un playliste de MP3 (script nautilus)
AnsuzPeorth, ok. Je pensais que find travaillerais dans le répertoire courant, mais apparemment non!
Merci les gars!
J'ai enfin réussi avec ça:
find "$PWD/" >> /home/xxxx/xxx.m3u
Mais il ne faut avoir que des mp3 dans le dossier courant, sinon...
Si vous avez des idées d'améliorations...:)
EDIT :
voici une amélioration :
find "$PWD/"*.mp3 > /home/xxx/xxx.m3u
Maintenant, seul les .mp3 sont pris en compte et enregistrés dans la playlist.
Dernière modification par cracolinux (Le 04/03/2010, à 14:29)
Hors ligne
#9 Le 04/03/2010, à 15:06
- AnsuzPeorth
Re : Générer un playliste de MP3 (script nautilus)
AnsuzPeorth, ok. Je pensais que find travaillerais dans le répertoire courant, mais apparemment non!
Il travaille récursivement, tous les sous-dossiers sont traités également. Sa sortie sera depuis le dossier courant si tu n'indiques pas de dossiers à traiter.
voici une amélioration :
find "$PWD/"*.mp3 > /home/xxx/xxx.m3u
Maintenant, seul les .mp3 sont pris en compte et enregistrés dans la playlist.
Tu regarde les solutions qu'on peut te donner ???(proposer par gl38 ici même)
find "$PWD" -name "*.mp3"
Tu as regardé le lien ? J'ai utiliser find pour créer un m3u dans chaque dossier et sous dossiers (cette commande peut être améliorer, cherche sur le forum, je l'ai déjà fait).
Monte en haut de page, tu trouveras le script proposé par l'auteur de la discussion.
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#10 Le 04/03/2010, à 15:52
- cracolinux
Re : Générer un playliste de MP3 (script nautilus)
Oui, j'ai bien regardé son script, même si je ne comprend pas tout!
Donc, pour traiter un dossier et ses sous dossier, on a :
find "$PWD" -name "*.mp3" > /home/xxx/xxx.m3u
alors que :
find "$PWD/"*.mp3 > /home/xxx/xxx.m3u
ne traite que le dossier en cours, c'est ça?
J'aimerais maintenant transformer le script pour pouvoir le mettre dans les nautilus scripts.
Comme ça, clique droit sur le répertoire et hop!
Comment, je peux m'y prendre? Je veux dire, est ce que $1 prend la valeur du dossier cliqué?
Dernière modification par cracolinux (Le 01/05/2010, à 10:42)
Hors ligne
#11 Le 04/03/2010, à 16:23
- AnsuzPeorth
Re : Générer un playliste de MP3 (script nautilus)
Oui, j'ai bien regardé son script, même si je ne comprend pas tout!
Donc, pour traiter un dossier et c'est sous dossier, on a :
find "$PWD" -name "*.mp3" > /home/xxx/xxx.m3u
alors que :
find "$PWD/"*.mp3 > /home/xxx/xxx.m3u
ne traite que le dossier en cours, c'est ça?
Non, "$PWD/"*.mp3 utilise bash pour remplacer .* par n'importe quel caractère.
Alors que -name "*\.mp3" est interne à find et cherche les fichier avec .mp3 dedans.
find cherche tjrs recursivement, pour éviter cela, il faut lui mettre l'option -maxdepth
find "$PWD" -maxdepth 1 -name "*.mp3"
Tu peux aussi lui demander de matcher plusieurs extensions:
find /home/images -iregex ".*\.\(jpg\|png\)"
find /home/images -iname "*\.jpg" -o -name "*\.png"
iname le i pour insensible à la casse.
J'aimerais maintenant transformer le script pour pouvoir le mettre dans les nautilus script.
Comme ça, clique droit sur le répertoire et hop!Comment, je peux m'y prendre? Je veux dire, est ce que $1 prend la valeur du dossier cliqué?
Regarde dans la doc ubuntu, ou l'aide de nautilus, ou simple recherche google répondra mieux que moi à tes questions.
Pour find, pareil, man find ou sur le net.
Rechercher est la base de l'apprentissage en programmation
Une fois que tu as passé un long moment à chercher sans réponses, post sur le forum !
Dernière modification par AnsuzPeorth (Le 04/03/2010, à 16:24)
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#12 Le 04/03/2010, à 16:45
- cracolinux
Re : Générer un playliste de MP3 (script nautilus)
cracolinux a écrit :find "$PWD/"*.mp3 > /home/xxx/xxx.m3u
ne traite que le dossier en cours, c'est ça?
Non, "$PWD/"*.mp3 utilise bash pour remplacer .* par n'importe quel caractère.
Alors que -name "*\.mp3" est interne à find et cherche les fichier avec .mp3 dedans.
D'accord, mais en l'occurence:
find "$PWD/"*.mp3 > /home/xxx/xxx.m3u
ne traite pas les sous dossier, il n'y a pas de récursivité.
Je fais des recherches, merci de ton aide.
Hors ligne
#13 Le 04/03/2010, à 17:31
- AnsuzPeorth
Re : Générer un playliste de MP3 (script nautilus)
find "$PWD/"*.mp3 > /home/xxx/xxx.m3u
ne traite pas les sous dossier, il n'y a pas de récursivité.
.
C'est vrai !!! ( j'avais pas vu ça sous cet angle, pas fait gaffe, arf les habitudes ...!)
EDIT:j'ai pi être dit une bêtise, je sais pas si c'est bash ou find qui fait la substitution des chemins.
Dernière modification par AnsuzPeorth (Le 04/03/2010, à 18:03)
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#14 Le 04/03/2010, à 20:08
- Lapogne71
Re : Générer un playliste de MP3 (script nautilus)
Bonjour les gens!
Voilà, j'aimerais construire mon script pour générer des playlists de mp3.
Je le mettrais ici lorsqu'il sera ok, avec une explication des commandes.
Si çà t'intéresse, je viens de poster mon script de génération de m3u :
Hors ligne
#15 Le 04/03/2010, à 20:34
- cracolinux
Re : Générer un playliste de MP3 (script nautilus)
Eh ben, on est nombreux à plancher la dessus on dirait!!
Je suis en train "d'étudier" $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS pour pouvoir me servir des nautilus scripts
Hors ligne
#16 Le 04/03/2010, à 20:41
- cracolinux
Re : Générer un playliste de MP3 (script nautilus)
Si certains on des idées avec ls, je prend !!
Je trouve incroyable que cette commande ne puisse fournir une liste de fichier avec chemin absolu...
Qu'est ce que vous en dite?
En attendant, je bloque la dessus (tiré de la documentation) :
printf %s "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" |
while read -r arg
do
do_something "$arg"
done
Je reconnais printf, je pense que c'est une commande de C que j'ai du voir le jour ou j'ai voulu apprendre le C et que j'ai arrêté après 2 heures...honte sur moi.
Pour le reste, je ne comprends pas ce que donnera ce code...
Dernière modification par cracolinux (Le 04/03/2010, à 21:56)
Hors ligne
#17 Le 10/03/2010, à 17:05
- cracolinux
Re : Générer un playliste de MP3 (script nautilus)
Voilà mon programme de playliste :
Il sera facile de le modifier pour ajouter des chemins supplémentaires.
Pour le lancer, le fichier doit être exécutable. Pour faciliter son utilisation, on peut également ajouter son emplacement dans le PATH...
#!/bin/bash
# playlist par cracolinux
# Utilisation ./playlist fichier-playlist-voulu [1 ou rien]
# si le deuxieme argument entré est 1
# alors on choisi de mettre la playlist
# dans le rep courant, soit le répertoire des MP3 en cours
# et on quitte avec EXIT
if [[ $2 == 1 ]]
then
find "$PWD" -maxdepth 1 -name "*.mp3" > "$PWD/$1.m3u"
exit
fi
# si le programme n'est pas déjà quitté
# on met la playlist dans /home/xxx/Musique
# il n'y a pas de deuxieme argument
find "$PWD" -maxdepth 1 -name "*.mp3" > "/home/xxx/Musique/$1.m3u"
J'aimerai pouvoir améliorer ce script avec l'aide que vous pourrez m'apporter, n'ayant pas réussi à trouver mon bonheur dans les man.
1- Je voudrais ajouter plusieurs choix dans -name. Ici, seul les fichiers contenant ".mp3" sont recherchés, ce qui signifie que les ".MP3" avec des majuscules sont ignorés...c'est embêtant...
2- De même, je souhaiterais que les "m4a" soit pris en compte, etc...
Le problème, je ne sais pas comment agir sur la commande find et sur ses options pour ajouter ces fonctionnalités...
Votre aide sera la bienvenue!
De plus, je suis toujours preneur pour de l'aide sur une version nautilus script.
Merci!
Dernière modification par cracolinux (Le 10/03/2010, à 21:56)
Hors ligne
#18 Le 10/03/2010, à 17:50
- AnsuzPeorth
Re : Générer un playliste de MP3 (script nautilus)
1- Je voudrais ajouter plusieurs choix dans -name. Ici, seul les fichiers contenant ".mp3" sont recherchés, ce qui signifie que les ".MP3" avec des majuscules sont ignorés...c'est embêtant...
2- De même, je souhaiterais que les "m4a" soit pris en compte, etc...Le problème, je ne sais pas comment agir sur la commande find et sur ses options pour ajouter ces fonctionnalités...
J'ai vraiment l'impression de parler dans le vent......! Regarde les réponses que je t'ai donné plus haut !
Et pour nautilus, l'exemple de la boucle que tu donne, pour chaque chemin trouvé dans NAUTIlUS (selections), une action sur ce chemin
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#19 Le 10/03/2010, à 18:20
- cracolinux
Re : Générer un playliste de MP3 (script nautilus)
T'enerves pas!
Je les ai déjà regardé tes réponses, je suis pas débile. Par contre, je suis nul, je veux bien le reconnaitre, et j'ai pas tout compris au script de WW.
C'est pour ça que je demandais si il y avait moyen d'ajouter des choses à -name :
qqchose du genre :
-name "*.mp3" and "*.MP3" and "*.M4a"....etc...
j'ajoute que j'ai regardé la man page et que les operateurs que j'ai testé ne fonctionnent pas
EDIT : Maintenant, j'ai vu la même man page, mais en français...pas pareil!
Dernière modification par cracolinux (Le 10/03/2010, à 21:57)
Hors ligne
#20 Le 10/03/2010, à 18:31
- AnsuzPeorth
Re : Générer un playliste de MP3 (script nautilus)
T'enerves pas!
Oulah, il m'en faut plus
C'est pour ça que je demandais si il y avait moyen d'ajouter des choses à -name :
qqchose du genre :
-name "*.mp3" and "*.MP3" and "*.M4a"....etc...
Tu peux aussi lui demander de matcher plusieurs extensions:
Code:find /home/images -iregex ".*\.\(jpg\|png\)" find /home/images -iname "*\.jpg" -o -name "*\.png"
iname le i pour insensible à la casse.
-name "*.mp3" → fichier mp3
-iname "*.mp3" → fichier mp3 MP3
Pareil pour -iregex
Pour le script nautilus, ca donnera un truc du genre :(en se basant sur l'exemple fourni )
printf %s "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" |
while read -r arg
do
find "$arg" -maxdepth 1 -name "*.mp3" > "$arg/$1.m3u"
done
Je n'ai pas essayé, mais si mais souvenir son bon (J'ai une mémoire de poisson rouge ), $1 correspondra au nom du dossier (=basename). A tester !
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#21 Le 10/03/2010, à 18:43
- cracolinux
Re : Générer un playliste de MP3 (script nautilus)
Cool!
Merci de l'explication sur ces options que j'avais vu sur le manuel mais que je n'avais pas comprise, j'étais resté sur -name...
donc l'opérateur que je cherchais, c'est -o ??
et -iname pour la casse...he ben, heureusement que tu es là pour me l'indiquer.
J'aimerais vraiment réussir à trouver les manuels en français..ça m'aiderais peut être!!
Je vais faire des tests avec ces nouveautés toutes fraiches pour moi.
Hors ligne
#22 Le 10/03/2010, à 18:56
- AnsuzPeorth
Re : Générer un playliste de MP3 (script nautilus)
donc l'opérateur que je cherchais, c'est -o ??
Perso je prefere utilisé -iregex, si tu as beaucoup d'extension à chercher, ca sera plus propre que toutes une serie de -iname à la queue leuleu !
Pour find en fr, google est ton ami !
http://www.google.fr/search?q=man+find+ … =firefox-a
Premier lien !
Dernière modification par AnsuzPeorth (Le 10/03/2010, à 18:57)
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#23 Le 10/03/2010, à 19:05
- cracolinux
Re : Générer un playliste de MP3 (script nautilus)
Wouah!! des explications en français, ah ben ça fait drôle!! Merci, c'est très précieux!
Hors ligne
#24 Le 20/03/2010, à 00:25
- cracolinux
Re : Générer un playliste de MP3 (script nautilus)
Youhou!! Salut les gens!
Voici mon nouveau script de création de playlist, c'est un script nautilus (/home/xxx/.gnome2/nautilus-scripts/).
Pour les gens qui savent pas, le fichier doit pouvoir être exécuté (clic droit, propriétés, permissions ou chmod u+x fichier en question)
#!/bin/bash
# playlist par cracolinux
##
##cas des dossiers avec un nom contenant des espaces (4 espaces ici, ajouter si besoin)
##
set $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
case $# in
1 ) cd $1 ;;
2 ) cd $1\ $2 ;;
3 ) cd $1\ $2\ $3 ;;
4 ) cd $1\ $2\ $3\ $4 ;;
5 ) cd $1\ $2\ $3\ $4\ $5 ;;
esac
##demande zenity et création de la playlist
fichier=$(zenity --entry --title="PlaylistMP3" --text="Choix du nom" --entry-text="Entrez le nom du fichier")
find "$PWD" -maxdepth 1 -iname "*.mp3" -o -iname "*.m4a" > "/home/xxxxx/Musique/$fichier.m3u"
Maintenant, j'attends que AnsuzPeorth vienne me donner ses bons conseils pour améliorer mon code dégeulasse, je parle de la combine pour les espaces dans les noms de répertoire...
Whahh!! j'ai fais plein de progrès
Dernière modification par cracolinux (Le 20/03/2010, à 00:28)
Hors ligne
#25 Le 20/03/2010, à 01:15
- AnsuzPeorth
Re : Générer un playliste de MP3 (script nautilus)
Bjr,
Plutot que ton système D (débrouille ou dégueu )
dossier=$(printf %s "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS")
cd "${dossier}"
ou
cd "$(printf %s "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS")"
La solution t'était donnée plus haut !
Tu pourrais peut être vérifier si c'est bien un dossier et si un seul élément est dans NAUTILUS_PATHS ?
abs.traduc pour apprendre le bash (voir ma signature)
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne