From 8670e438c91bcb9bce28b0419394aa1b6d6fea36 Mon Sep 17 00:00:00 2001 From: Tony Grosinger Date: Sun, 19 May 2013 18:14:37 -0700 Subject: [PATCH] Cleaned up options --- audio-shrink.py | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/audio-shrink.py b/audio-shrink.py index 39858e2..9a9d5bb 100644 --- a/audio-shrink.py +++ b/audio-shrink.py @@ -1,24 +1,38 @@ from optparse import OptionParser -import os, shlex, subprocess +import os +import shlex +import subprocess +import sys -parser = OptionParser() -parser.add_option('-i', '--input', dest='fInput') -parser.add_option('-o', '--output', dest='fOutput') + +usage = "usage: %prog -i -o [options]" +parser = OptionParser(usage=usage) +parser.add_option('-i', '--input', dest='fInput', help='Required, Directory to scan for media files') +parser.add_option('-o', '--output', dest='fOutput', help='Required, Directory to output transcoded files') +parser.add_option('-f', '--inputFormat', dest='inFormat', default='flac', + help='Format of file to look for in input directory') (options, args) = parser.parse_args() inputDir = options.fInput outputDir = options.fOutput +if len(inputDir) == 0 or len(outputDir) == 0: + parser.print_help() + sys.exit(1) + if not outputDir.endswith("/"): outputDir += "/" + def extractCurrentDirectory(dir): return dir.replace(inputDir, "").replace("/", "", 1) + def replace_last(source_string, replace_what, replace_with): head, sep, tail = source_string.rpartition(replace_what) return head + replace_with + tail + for root, dirs, files in os.walk(inputDir): os.chdir(root) root = extractCurrentDirectory(root) @@ -28,8 +42,8 @@ for root, dirs, files in os.walk(inputDir): os.makedirs(outputDir + root) for name in files: - if name.endswith(".flac"): + if name.endswith(".%s" % options.inFormat): print("Transcoding File: %s" % name) output = replace_last((outputDir + root + "/" + name), "flac", "ogg") - command = shlex.split("ffmpeg -i \"%s\" -f ogg -c:a libvorbis -q 8 -map 0:0 \"%s\"" % (name, output)) + command = shlex.split("ffmpeg -i \"%s\" -f ogg -c:a libvorbis -q 5 -map 0:0 \"%s\"" % (name, output)) p = subprocess.call(command)