J'utilise la librairie mutagen pour récupérer les tags du fichier flac, ainsi que l'encodeur lame. Le reste c'est du python3 de base.
Il s'utilise comme suit:
./flac2mp3.py source_dir destination_dir
Le script parcours récursivement l'ensemble du répertoire source_dir, convertit les fichiers flac trouvés en mp3 en reprenant les tags et les stocke dans le dossier destination_dir en reproduisant l'arborescence du dossier d'origine.
#!/usr/bin/env python3fromos.pathimportisdir,isfile,splitext,join,normpathfromosimportwalk,mknod,makedirsimportargparseimportsubprocessfrommutagen.flacimportFLACSUPPORTED_FILES=["flac"]LAME_OPTS="-b 128 --resample 44.1"defmain():args=parser()path=args.directory[0]path=normpath(path)+"/"dest=args.destination[0]dest=normpath(dest)+"/"ifnotisdir(path):returnFalseforroot,dirs,filesinwalk(path):iffilesisNone:continueforfileinfiles:filename,extension=splitext(file)extension=extension[1:]ifextensionnotinSUPPORTED_FILES:continueorigfile=join(root,file)destpath=root.replace(path,dest,1)destfile=join(destpath,".".join((filename,"mp3")))ifnotisdir(destpath):makedirs(destpath)ifisfile(destfile):continueconvert(origfile,destfile)defparser():parser=argparse.ArgumentParser(description="FLAC to MP3 batch converter.")parser.add_argument("directory",nargs=1,help="Directory containing FLAC files to convert.")parser.add_argument("destination",nargs=1,help="Target directory to store MP3 files to.")returnparser.parse_args()defconvert(src,dest):tag=FLAC(src)title=""index=""year=""artist=""album=""iftag.get('title')isnotNone:title=tag.get('title')[0]title=title.replace('"','\'')iftag.get('tracknumber')isnotNone:index=tag.get('tracknumber')[0]iftag.get('date')isnotNone:year=tag.get('date')[0]iftag.get('artist')isnotNone:artist=tag.get('artist')[0]artist=artist.replace('"','\'')iftag.get('album')isnotNone:album=tag.get('album')[0]album=album.replace('"','\'')cmd="flac -dc \"{flac}\" | lame {opts} \ --tt \"{title}\"\ --tn \"{index}\"\ --ty \"{year}\"\ --ta \"{artist}\"\ --tl \"{album}\"\ --add-id3v2 - \"{mp3}\"".format(flac=src,mp3=dest,opts=LAME_OPTS,title=title,index=index,year=year,artist=artist,album=album)try:subprocess.check_call(cmd,shell=True)exceptsubprocess.CalledProcessErrorase:print(e)if__name__=="__main__":main()
[^] # Mon script en python pour ceux qui veulent
Posté par madhatter (site web personnel) . En réponse au journal Des "basheries". Évalué à 2.
J'utilise la librairie mutagen pour récupérer les tags du fichier flac, ainsi que l'encodeur lame. Le reste c'est du python3 de base.
Il s'utilise comme suit:
./flac2mp3.py source_dir destination_dirLe script parcours récursivement l'ensemble du répertoire source_dir, convertit les fichiers flac trouvés en mp3 en reprenant les tags et les stocke dans le dossier destination_dir en reproduisant l'arborescence du dossier d'origine.
There is no spoon...