Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails) *** mise à jour 12/10/2014 ***

#1 Le 08/10/2012, à 18:03

FelixP

[Résolu] ! Script pour noms de musique

Salut à tous ! J'ai une petite question à vous poser… (Eh oui !)
Je cherche un script pour me créer un fichier avec la liste des noms des musiques qui sont dans un dossier donné, avec la syntaxe de Wikipédia (histoire de remplir ses serveurs de données !) en sachant que les noms de mes fichiers sont du type
{piste} {Titre à Ressortir}.{mp3, flac}
Je mets la syntaxe que j'aimerais récupérer :

{{Album
|Titre        = [[Captain Morgan's Revenge]]
|Année        = 2008
|Label        = [[Napalm Records]]
|Contenu      = 
#Over the Seas
#Captain Morgan's Revenge
#The Huntmaster
#Nancy the Tavern Wench
#Death Before the Mast
#Terror on the High Seas
#Set Sail and Conquer
#Of Treasure
#Wenches and Mead
#Flower of Scotland
}}

ou plus simplement :

{{Album|Titre=[[When Dream and Day Unite]]|Année=1989|Contenu=
# A Fortune In Lies (5:12)
# Status Seeker (4:18)
# The Ytse Jam (5:43)
# The Killing Hand (8:42)
## The Observance
## Ancient Renewal
## The Stray Seed
## Thorus
## Exodus
# Light Fuse And Get Away (7:23)
# Afterlife (5:27)
# The Ones Who Help To Set The Sun (3:07)
# Only A Matter Of Time (6:38)
}}

Et même (mais je n'en demande pas tant) si vous savez comment récupérer direct la durée d'une musique… Je suis preneur !!! big_smile

Dernière modification par FelixP (Le 09/10/2012, à 21:55)


Envoyé depuis mon navigateur libre sous mon os libre.
LinuxMint 15 Olivia, avec Cinnamon 2.0, et Firefox-Nightly 29.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#2 Le 08/10/2012, à 19:12

nesthib

Re : [Résolu] ! Script pour noms de musique

Je n'ai pas de solution toute faite à te proposer, mais je te suggère d'utiliser python.
Tu as de nombreux modules pour manipuler les métadonnées audio. Par exemple mutagen. Regarde les exemples donnés, tu as entre autres comment récupérer la durée de ta musique.

L'avantage d'utiliser cette approche est que tu as aussi des modules pour manipuler wikipédia.


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#3 Le 08/10/2012, à 19:18

FelixP

Re : [Résolu] ! Script pour noms de musique

Okay, merci des conseils big_smile je vois ça de suite !


Envoyé depuis mon navigateur libre sous mon os libre.
LinuxMint 15 Olivia, avec Cinnamon 2.0, et Firefox-Nightly 29.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#4 Le 08/10/2012, à 19:31

FelixP

Re : [Résolu] ! Script pour noms de musique

hum, je suis un peu novice… -_- Porrais-tu me guider ? big_smile
J'ai déjà mis tous les p'tis fichiers *.py dans un dossier mutagen…


Envoyé depuis mon navigateur libre sous mon os libre.
LinuxMint 15 Olivia, avec Cinnamon 2.0, et Firefox-Nightly 29.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#5 Le 08/10/2012, à 19:39

nesthib

Re : [Résolu] ! Script pour noms de musique

Alors, je ne sais pas de quel fichiers tu parles. Pour installer mutagen :

sudo apt-get install python-mutagen

ensuite il te faut créer un script python :

#!/usr/bin/env python
#coding: utf-8

from mutagen.mp3 import MP3

audio = MP3("ton_morceau.mp3")
print("le morceau fait %s secondes " % audio.info.length)

lis le tutoriel mutagen. Ensuite, pour parcourir tes dossiers, tu peux utiliser le module os. Ensuite tu pourras lire ton arborescence, extraire les tags de chaque morceau et à la fin, faire un affichage selon ta syntaxe (ça ne sera pas le plus dur).

Essaie d'écrire quelque chose et poste-le ici.

Dernière modification par nesthib (Le 08/10/2012, à 19:41)


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#6 Le 08/10/2012, à 19:52

FelixP

Re : [Résolu] ! Script pour noms de musique

Au temps pour moi ! j'allais l'installer des sources disponibles sur le lien que tu m'avair fournis…


Envoyé depuis mon navigateur libre sous mon os libre.
LinuxMint 15 Olivia, avec Cinnamon 2.0, et Firefox-Nightly 29.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#7 Le 08/10/2012, à 19:56

FelixP

Re : [Résolu] ! Script pour noms de musique

Alors là je lis le tuto… big_smile et j'essaye quelques exemples !


Envoyé depuis mon navigateur libre sous mon os libre.
LinuxMint 15 Olivia, avec Cinnamon 2.0, et Firefox-Nightly 29.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#8 Le 08/10/2012, à 20:08

FelixP

Re : [Résolu] ! Script pour noms de musique

pour le module os… j'ai essayé

from os import environ
os.path("/home/felix/Musique/ACDC/Live\ 1992")

mais cela ne fonctionne pas… peux-tu m'aider ? big_smile


Envoyé depuis mon navigateur libre sous mon os libre.
LinuxMint 15 Olivia, avec Cinnamon 2.0, et Firefox-Nightly 29.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#9 Le 08/10/2012, à 20:10

FelixP

Re : [Résolu] ! Script pour noms de musique

avec chdir non plus…


Envoyé depuis mon navigateur libre sous mon os libre.
LinuxMint 15 Olivia, avec Cinnamon 2.0, et Firefox-Nightly 29.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#10 Le 08/10/2012, à 20:24

pingouinux

Re : [Résolu] ! Script pour noms de musique

Bonsoir FelixP,
Ce serait plus facile si tu donnais les messages d'erreur.
C'est plutôt :

import os
os.chdir("/.......")

Hors ligne

#11 Le 08/10/2012, à 20:27

FelixP

Re : [Résolu] ! Script pour noms de musique

désolé, j'y penserai roll C'est bon, ça fonctionne comme ça ! big_smile


Envoyé depuis mon navigateur libre sous mon os libre.
LinuxMint 15 Olivia, avec Cinnamon 2.0, et Firefox-Nightly 29.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#12 Le 08/10/2012, à 20:44

FelixP

Re : [Résolu] ! Script pour noms de musique

J'essaye de mettre plusieurs arguments dans mon affichage…

print("le morceau fait %s minutes %s" % int(audio.info.length/60) % int(int(audio.info.length)-60*int(audio.info.length/60)) ) 

il me ressort

 print("le morceau fait %s minutes %s" % int(audio.info.length/60) % int(int(audio.info.length)-60*int(audio.info.length/60)) ) 
TypeError: not enough arguments for format string

Comment puis-je ressortir plusieurs nombres ? big_smile


Envoyé depuis mon navigateur libre sous mon os libre.
LinuxMint 15 Olivia, avec Cinnamon 2.0, et Firefox-Nightly 29.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#13 Le 08/10/2012, à 21:18

FelixP

Re : [Résolu] ! Script pour noms de musique

Hum, je pense que c'est un peu trop compliqué… Je pensais faire juste un script bash utilisant les noms de fichiers ^^


Envoyé depuis mon navigateur libre sous mon os libre.
LinuxMint 15 Olivia, avec Cinnamon 2.0, et Firefox-Nightly 29.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#14 Le 08/10/2012, à 21:20

pingouinux

Re : [Résolu] ! Script pour noms de musique

print("le morceau fait %s minutes %s"%(divmod(audio.info.length,60))

Hors ligne

#15 Le 08/10/2012, à 21:36

FelixP

Re : [Résolu] ! Script pour noms de musique

Ah, ça fonctionne en effet big_smile


Envoyé depuis mon navigateur libre sous mon os libre.
LinuxMint 15 Olivia, avec Cinnamon 2.0, et Firefox-Nightly 29.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#16 Le 08/10/2012, à 21:37

FelixP

Re : [Résolu] ! Script pour noms de musique

Savez-vous comment faire une boucle dans le dossier histoire de scanner tous les fichiers ? big_smile


Envoyé depuis mon navigateur libre sous mon os libre.
LinuxMint 15 Olivia, avec Cinnamon 2.0, et Firefox-Nightly 29.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#17 Le 08/10/2012, à 21:50

pingouinux

Re : [Résolu] ! Script pour noms de musique

Peux-tu montrer le script que tu as déjà écrit ? Ce sera plus facile à adapter.

Hors ligne

#18 Le 08/10/2012, à 21:56

FelixP

Re : [Résolu] ! Script pour noms de musique

#!/usr/bin/env python
#coding: utf-8
from mutagen.mp3 import MP3
import os
os.chdir("/home/felix/Musique/ACDC/Live 1992")
audio = MP3("01 Thunderstruck.mp3")
print("(%s:%s)"%(divmod(int(audio.info.length),60)))

j'essaye d'extraire le nom de la musique avec

print("%c"%audio.info.title)

mais je reçois

Traceback (most recent call last):
  File "sans titre.py", line 8, in <module>
    print("%c"%audio.info.title)
AttributeError: 'MPEGInfo' object has no attribute 'title'

Envoyé depuis mon navigateur libre sous mon os libre.
LinuxMint 15 Olivia, avec Cinnamon 2.0, et Firefox-Nightly 29.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#19 Le 08/10/2012, à 22:05

pingouinux

Re : [Résolu] ! Script pour noms de musique

Je n'ai pas testé. Pour le titre, je ne sais pas pour le moment.

#!/usr/bin/env python
#coding: utf-8
from mutagen.mp3 import MP3
import os, glob
os.chdir("/home/felix/Musique/ACDC/Live 1992")
for fic in glob.glob("*.mp3") :
    audio=MP3(fic)
    print("(%s:%s)"%(divmod(int(audio.info.length),60)))

Hors ligne

#20 Le 08/10/2012, à 22:09

FelixP

Re : [Résolu] ! Script pour noms de musique

On peut récupérer le titre avec le nom de fichier simplement ?


Envoyé depuis mon navigateur libre sous mon os libre.
LinuxMint 15 Olivia, avec Cinnamon 2.0, et Firefox-Nightly 29.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#21 Le 08/10/2012, à 22:12

FelixP

Re : [Résolu] ! Script pour noms de musique

En tout cas ceci fonctionne très bien ! big_smile


Envoyé depuis mon navigateur libre sous mon os libre.
LinuxMint 15 Olivia, avec Cinnamon 2.0, et Firefox-Nightly 29.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#22 Le 08/10/2012, à 22:21

pingouinux

Re : [Résolu] ! Script pour noms de musique

Essayer :

print("%s"%audio['title'])

Hors ligne

#23 Le 08/10/2012, à 22:29

FelixP

Re : [Résolu] ! Script pour noms de musique

ça ne fonctionne pas sad

    print("%s"%audio['title'])
  File "/usr/lib/python2.7/site-packages/mutagen/__init__.py", line 84, in __getitem__
    else: return self.tags[key]
  File "/usr/lib/python2.7/site-packages/mutagen/_util.py", line 108, in __getitem__
    return self.__dict[key]
KeyError: 'title'

Envoyé depuis mon navigateur libre sous mon os libre.
LinuxMint 15 Olivia, avec Cinnamon 2.0, et Firefox-Nightly 29.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

#24 Le 09/10/2012, à 00:15

nesthib

Re : [Résolu] ! Script pour noms de musique

FelixP a écrit :

Savez-vous comment faire une boucle dans le dossier histoire de scanner tous les fichiers ? big_smile

tu peux utiliser os.walk

import os

for path, dirs, files in os.walk('/ton/chemin'):
    print("Nous sommes dans %s" % path)
    for file in files:
        print("Voici le fichier %s/%s" % (path, file))

pour un fichier donné tu peux faire :

audio=MP3(os.path.join(path,file))
print('Album : %s\nAnnée : %s\nTitre : %s'  % (audio['TALB'], audio['TDRC'], audio['TIT2']))

GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#25 Le 09/10/2012, à 18:26

FelixP

Re : [Résolu] ! Script pour noms de musique

Génial smile
Mais alors j'essaye d'afficher le titre et la durée en même temps,

print(" %s (%s:%s)" % (audio['TIT2'], divmod(int(audio.info.length),60)))

Mais cela ne fonctionne pas ! (Il faut que je me mette au python, moi…)

print(" %s (%s:%s)" % (audio['TIT2'], divmod(int(audio.info.length),60)))
TypeError: not enough arguments for format string

De plus, je veux n'afficher nom de l'album et date qu'une seule fois, alors comment puis-je dire à python d'usiliser, par exemple, le premier fichier du dossier ? big_smile
Et par contre, les fichiers ne sont pas scannés dans l'ordralphabétix… XD Savez-vous comment faire ? smile
Désolé pour tout ce que mon inculture de python vous inflige… wink


Envoyé depuis mon navigateur libre sous mon os libre.
LinuxMint 15 Olivia, avec Cinnamon 2.0, et Firefox-Nightly 29.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp

Hors ligne

Haut de page ↑