38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
import argparse
|
|
import os
|
|
|
|
parser = argparse.ArgumentParser(description='Remux a video file')
|
|
parser.add_argument('-d', '--directory', help='Directory to search for files')
|
|
parser.add_argument('-v', '--verbose', help='Verbose output', action='store_true')
|
|
parser.add_argument('-t', '--test', help='Test run', action='store_true')
|
|
parser.add_argument('-r', '--remove', help='Delete original file', action='store_true')
|
|
args = parser.parse_args()
|
|
|
|
if args.verbose:
|
|
print('Verbose:', args.verbose)
|
|
print('Test:', args.test)
|
|
print('Delete:', args.delete)
|
|
|
|
# Start by making a list of every .mp4 file in current directory and any subdirectories
|
|
# Then, for each file, run the remux command with mkvtoolnix
|
|
# If verbose, print out the command being run
|
|
# If test, print out the command but don't run it
|
|
|
|
if args.directory:
|
|
os.chdir(args.directory)
|
|
|
|
for root, dirs, files in os.walk('.'):
|
|
for file in files:
|
|
if file.endswith('.mp4'):
|
|
print(file)
|
|
path = os.path.join(root, file)
|
|
command = f'mkvmerge -o "{path[:-4]}.mkv" "{path}"'
|
|
if args.verbose:
|
|
print(command)
|
|
if not args.test:
|
|
result = os.system(command)
|
|
if args.remove and result == 0:
|
|
print(f'Removed {path}')
|
|
os.remove(path)
|
|
|