dejavu/scripts/generate-test-files.py

69 lines
2 KiB
Python
Executable file

import os, subprocess
from os import listdir
from os.path import isfile, join
from optparse import OptionParser
usage = "usage: %prog [options] SONGS_PATH DESTINATION_FOLDER"
parser = OptionParser(usage=usage, version="%prog 1.1")
parser.add_option("-s", "--start",
action="store",
dest="start_time",
type=int,
default=10,
metavar="X",
help='Test files begin on X sec of the original song'
)
parser.add_option("--test-seconds",
action="append",
dest="test_seconds",
type=int,
default=[],
metavar="X",
help='Sets the seconds of the test files'
)
parser.add_option("--audio-format",
action="append",
dest="audio_formats",
default=[],
metavar="FORMAT",
help='Sets audio formats of files to read'
)
(options, args) = parser.parse_args()
if len(args) != 2:
parser.error("wrong number of arguments")
if args[0][len(args[0])-1] != "/":
args[0] += "/"
if args[1][len(args[1])-1] != "/":
args[1] += "/"
if len(options.test_seconds) == 0:
options.test_seconds = [1,2,3,4,5,6,7,8,9,10]
if len(options.audio_formats) == 0:
options.audio_formats = ['wav','mp3']
try:
os.stat(args[1])
except:
os.mkdir(args[1])
test_files = [ f for f in listdir(args[0]) if isfile(join(args[0],f)) and
os.path.splitext(f)[len(os.path.splitext(f))-1][1:] in options.audio_formats ]
for file in test_files:
filename = os.path.basename(file)
filename,extension = os.path.splitext(filename)
for i in options.test_seconds:
test_file_name = "%s%s_%s_%ssec%s" % (args[1],filename,options.start_time,i,extension)
subprocess.check_output(["ffmpeg", "-ss", "%s" % options.start_time, '-t' , "%s" % i, "-i", args[0]+file, test_file_name])