Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- import argparse
- import time
- from datetime import datetime
- import subprocess
- import shlex
- import string
- parser = argparse.ArgumentParser(description='Split files into tracks based on track start times input by the user.')
- parser.add_argument('filename', metavar='<filename>', type=str, help='a file name to split')
- options = parser.parse_args()
- print(options)
- print(options.filename)
- date_format = "%H:%M:%S"
- start = "00:00"
- times = input('Enter the times separated by comma: ')
- timesList = times.split(',')
- tracks = len(timesList)
- for i in range(tracks):
- print(str(i))
- print("Track" + str(i+1) + " " + timesList[i])
- seconds = timesList[i].split(':')
- hours = int(seconds[0])
- minutes = int(seconds[1])
- seconds = int(seconds[2])
- seconds = seconds - 1
- if seconds < 1:
- seconds = 59
- minutes = minutes -1
- if minutes < 1:
- hours = hours - 1
- minutes = 59
- print("Hours: " + str(hours))
- print("Minutes: " + str(minutes))
- print("Seconds: " + str(seconds))
- if i > 0:
- start = timesList[i-1]
- time1 = datetime.strptime(timesList[i-1], date_format)
- time2 = datetime.strptime(str(hours)+":"+str(minutes)+":"+str(seconds), date_format)
- time3 = time2 - time1
- print(time3)
- print("Track" + str(i) + " Will run from " + start + " to " + str(minutes) + ":" + '{:0>2}'.format(str(seconds)))
- if i == 0:
- name = str.replace(options.filename," ","_")
- FFMPEG = "ffmpeg -y -ss "+ start +" -i "+ options.filename +" -vn -to 00:"+ str(minutes) +":"+ '{:0>2}'.format(str(seconds))+" "+ name +"-Track-"+ str(i) +".flac"
- print(FFMPEG)
- args = shlex.split(FFMPEG)
- print(args)
- subprocess.Popen(args).wait()
- else:
- name = str.replace(options.filename," ","_")
- FFMPEG = "ffmpeg -y -ss "+ timesList[i-1] +" -t "+ str(time3) +" -i "+ options.filename +" -vn "+ name +"-Track-"+ str(i) +".flac"
- print(FFMPEG)
- args = shlex.split(FFMPEG)
- print(args)
- subprocess.Popen(args).wait()
- print (timesList)
- print (tracks)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement