Copy the Flac folder to the MP3 folder, then use foobar to convert the contents of the MP3 folder (which currently contains FLACs) to MP3s and after that delete all flac files (for example from within foobar).
Use:Code: [Select]$replace(%path%,\FLAC\,\MP3\)\%filename%In the Name Format box of the Converter.
Thanks a lot, It seems interesting, but results are strange. For instance...
But biggest problem is that it doesn´t keep album art in tag, or dosn´t copy abum art file from source directory.
I believe dbPowerAmp does, if you need a program to do that. You can also embed art in the files post-conversion, using mp3tag.
Quote from: lieti on 21 June, 2010, 03:49:21 PMThanks a lot, It seems interesting, but results are strange. For instance... Yeah, for Output Path you'll need to select "Specify folder" and leave it blank. My guess is you selected "Source Track Folder".Quote from: lieti on 21 June, 2010, 03:49:21 PMBut biggest problem is that it doesn´t keep album art in tag, or dosn´t copy abum art file from source directory.It's a new file, so it never had artwork; there is nothing to "keep". But yes, the Converter doesn't transfer artwork from source tags to the new file's tags. No part of fb2k does artwork embedding, the Converter included.I believe dbPowerAmp does, if you need a program to do that. You can also embed art in the files post-conversion, using mp3tag.
because you put that pattern in name format and colon [:] is not valid characteryou should select root folder in "Output path" setting and use some common sense in name pattern (check foobar help file)
print "-----------------------------------------------"print "Application to relocate mp3 files whilst "print "preserving directory structure and album art"print "DL 2012"print "v. 0.1"print "-----------------------------------------------"import os, subprocessimport tkFileDialogfrom Tkinter import *from tkMessageBox import askokcancel# moveit: file f relocates from src to destdef moveit( f , sorc , dest): fullPath = sorc + "\\" + f subprocess.Popen("move" + " \"" + fullPath + "\" " + " \"" + dest + "\" ",shell=True) return# copyit: file f duplicates in dest folderdef copyit( f , sorc , dest): fullPath = sorc + "\\" + f subprocess.Popen("copy" + " \"" + fullPath + "\" " + " \"" + dest + "\" ",shell=True) return# parseDirs: reproduces directory structure, copys/moves filesdef parseDirs(srcMain , dstMain): src = srcMain dst = dstMain reparseDirs =  # directories to reparse reparseDirs.append('') # outer loop : moves between directories while len(reparseDirs)>0: subfolder = reparseDirs.pop() print('\rreparseDirs:' + src + "\\" + subfolder) listOfFiles = os.listdir(src + "\\" + subfolder) # inner loop : moves files, creates directories for f in listOfFiles: temp = f temp=temp.lower() #verify file longer than 4 chars (e.g. at least x.xx) if len(temp)>3: ext = temp[len(temp)-4:len(temp)] else: ext = 'x.xx' # dummy output # identify file type if os.path.isdir(src + "\\" + subfolder + "\\" + f): # duplicate folder structure print('creating folder: ' + f) try: os.mkdir(dst + "\\" + subfolder + "\\" + f) except OSError: print 'folder already exists' reparseDirs.append(subfolder + "\\" + f) # search source dir for files elif ('flac' in ext)|('ape' in ext)|('m4a' in ext)|('alac' in ext): #ignore lossless print ('ignoring lossless file: ' + f) elif 'cue' in ext: #ignore cue print ('ignoring cue file: ' + f) elif 'mp3' in ext: #relocate mp3 print ('moving mp3 in file: ' + f) moveit(f , src + "\\" + subfolder, dst + "\\" + subfolder) else: #copy other file types print ('copying file: ' + f) copyit(f , src + "\\" + subfolder, dst + "\\" + subfolder)########### Begin GUI Blockclass openDialog(Frame): def __init__(self, parent=None): Frame.__init__(self, parent) self.parent = parent # create a reference to the Tk() instance self.createWidgets() self.launchApp() def createWidgets(self): self.textDirIn = StringVar() self.textDirOut = StringVar() self.DirIn = Entry(self, width=70, textvariable=self.textDirIn) self.DirIn.pack() self.DirOut = Entry(self, width=70, textvariable=self.textDirOut) self.DirOut.pack() self.pack() def getDir(self): self.dirin=tkFileDialog.askdirectory() return self.dirin def launchApp(self): inputDir = self.getDir() self.textDirIn.set(inputDir) outputDir = self.getDir() self.textDirOut.set(outputDir) if askokcancel(title="Continue?", message="Continue using these folders?"): print 'Continue...' parseDirs(inputDir,outputDir) self.textDirIn.set('complete!') self.textDirOut.set('close window to finish') print 'complete: close window to finish' else: print 'Operation cancelled' self.textDirIn.set('cancelled') self.textDirOut.set('cancelled')########### End GUI Block#### MAIN ####if __name__ == "__main__": root=Tk() openDialog(root) root.mainloop()
my bad.the post above doesnt recreate all subfolders.this one does.$replace( $replace(%path%,.flac,),\FLAC\,\MP3\)just change .flac if you have other formats.
Now, if we could find a way to have Foobar preserve the album art during the transcode, I'd be one happy camper.
I don't think Foobar can copy across embedded artwork yet; I seem to recall this being raised before in the forum as something which wasn't possible.
hey all,thanks for this thread. really helped me out by converting my entire flac library to mp3 while keeping the same folder structure.for anyone else who wants to knowim using foobar v1.1.10select files, right clickspecify the output folderselect "generate multi-tracks"paste this $replace( %directoryname%\ %filename%,\FLAC\,\MP3\)and it will do it perfectly.test with a few files first to make sure, but its working great for me.good luck.
flac is like this by artist\album (nas server)\\modesty\Modesty\media\Min musikk\FLAC\Pop og rock\Adele\Adele 19\(all songs to album 19.flac)\\modesty\Modesty\media\Min musikk\FLAC\Pop og rock\Adele\Adele 21\(all songs to album 21.flac)i like to have output cat like this\\modesty\Modesty\media\mp3 convert\Adele\Adele 19\(all songs by songs from album 19.mp3)\\modesty\Modesty\media\mp3 convert\Adele\Adele 21\(all songs by songs from album 21.mp3)