51 lines
1.6 KiB
Python
51 lines
1.6 KiB
Python
import subprocess
|
|
import sys
|
|
from pathlib import Path
|
|
import os
|
|
import re
|
|
|
|
output_folder_name ="/bulk_convert_out/"
|
|
|
|
droppedFile = sys.argv[1]
|
|
droppedName = Path(droppedFile).name
|
|
originalfiles = sys.orig_argv[2:]
|
|
|
|
#long path shenanigans
|
|
joined = (' '.join(originalfiles))
|
|
re.sub (' +', ' ', joined)
|
|
listed = re.split(r'(.+?mkv)', joined)
|
|
listed = list(filter(None, listed))
|
|
listed = [i.lstrip() for i in listed]
|
|
|
|
print(droppedName)
|
|
|
|
#get path of script location and remove the tail
|
|
head_tail = os.path.split(sys.argv[0])
|
|
output_path = head_tail[0]
|
|
|
|
|
|
#skip first part of sys.argv since it points to script location
|
|
arguments = sys.argv[1:]
|
|
|
|
#check if output folder exists, otherwise create it
|
|
isExist = os.path.exists(output_path+output_folder_name)
|
|
if not isExist:
|
|
os.makedirs(output_path+output_folder_name)
|
|
|
|
print("printing listed", listed)
|
|
edited_list = ['-i "' + s +'"' for s in listed]
|
|
print("printing edited list", edited_list)
|
|
joined_list =' '.join(map(str, edited_list))
|
|
print(joined_list)
|
|
for file in edited_list:
|
|
|
|
#
|
|
print("printng file", file)
|
|
#args = 'ffmpeg.exe -i "{file}" -map 0:s -c:s copy -f matroska "{output_path}{output_folder_name}{basename}"'.format(file=file, output_path=output_path, output_folder_name=output_folder_name, basename=basename)
|
|
#print(args)
|
|
basename = os.path.basename(listed[0])
|
|
print(basename)
|
|
args = 'ffmpeg.exe {joined_list} -c copy -f matroska "{output_path}{output_folder_name}{basename}"'.format(joined_list=joined_list, output_path=output_path, output_folder_name=output_folder_name, basename=basename)
|
|
print(args)
|
|
subprocess.run(args)
|
|
k=input("press close to exit") |