Added support for conversion to any filetype supported by ffmpeg

This commit is contained in:
R Dittberner 2025-10-24 17:05:45 +02:00
parent d6424add61
commit 1c1b1398ea

20
main.py
View file

@ -16,13 +16,18 @@ def main():
parser.add_argument("-n", "--name", action="store_true", help="rename videos") parser.add_argument("-n", "--name", action="store_true", help="rename videos")
parser.add_argument("-c", "--classify", action="store_true", help="assign a category to videos to move them into corresponding folders") parser.add_argument(
"-c",
"--classify",
action="store_true",
help="assign a category to videos to move them into corresponding folders",
)
parser.add_argument( parser.add_argument(
"-r", "-r",
"--reformat", "--reformat",
action="store_true", default="mp4",
help="automatically convert videos to mp4 using ffmpeg", help="automatically convert videos using ffmpeg. defaults to mp4, supports any formats supported by ffmpeg",
) )
parser.add_argument("-v", "--verbose", action="store_true") parser.add_argument("-v", "--verbose", action="store_true")
@ -75,7 +80,9 @@ def main():
newname = file newname = file
if args.classify: if args.classify:
print(f"Existing categories: {os.listdir(outputFolder)}") print(f"Existing categories: {os.listdir(outputFolder)}")
category: str = input("Enter category or delete to permanently delete file: ") category: str = input(
"Enter category or delete to permanently delete file: "
)
if category == "delete": if category == "delete":
os.remove(inputFolder + file) os.remove(inputFolder + file)
elif not os.path.exists(outputFolder + category) or not os.path.isdir( elif not os.path.exists(outputFolder + category) or not os.path.isdir(
@ -90,13 +97,14 @@ def main():
path = outputFolder + category + "/" + newname + extension path = outputFolder + category + "/" + newname + extension
shutil.move(inputFolder + file, path) shutil.move(inputFolder + file, path)
if args.reformat: if args.reformat:
if extension != ".mp4": outformat = args.reformat
if extension != f".{outformat}":
subprocess.run( subprocess.run(
["ffmpeg"], ["ffmpeg"],
["-i"], ["-i"],
[path], [path],
["-o"], ["-o"],
["mp4"], [outformat],
[f"{outputFolder}{category}{newname}.mp4"], [f"{outputFolder}{category}{newname}.mp4"],
) )
if args.verbose: if args.verbose: