add filtering for codec

This commit is contained in:
2025-08-15 12:18:45 +02:00
parent a0dfa826d9
commit 62a68990a4

View File

@ -98,12 +98,19 @@ def scan_files(path):
pbar.close()
return media_files
def print_all(media_files):
def print_all(media_files, filter_mode):
media_files_filtered = list() #stores all found files that match the given codec filter
media_files.sort(key=lambda x: x.size, reverse=True)
for media_file in media_files:
# print ("{:<64} | {:<8} | {:<16} | {:<8} | {:<16}".format(cut_file_name(media_file.name, 64), str(datetime.timedelta(seconds=media_file.duration)).split(".")[0], human_readable_size(media_file.size), media_file.codec, str(media_file.resolution[0])+"x"+str(media_file.resolution[1])))
if int(media_file.resolution[0]) >= 1800 and media_file.codec != "av1" and media_file.codec != "vp9" and media_file.codec != "h265":
print ('"'+media_file.name+'" ', end='')
print ("{:<64} | {:<8} | {:<16} | {:<8} | {:<16}".format(cut_file_name(media_file.name, 64), str(datetime.timedelta(seconds=media_file.duration)).split(".")[0], human_readable_size(media_file.size), media_file.codec, str(media_file.resolution[0])+"x"+str(media_file.resolution[1])))
if((filter_mode != " ") and (media_file.codec == filter_mode) ):
media_files_filtered.append(media_file.name)
if(filter_mode != " "):
print("\nFound files with selected filter: " + filter_mode + "\n")
for media_file_filtered in media_files_filtered:
print(media_file_filtered)
print("\n")
def print_codecs(media_files):
codecs = list()
@ -129,15 +136,20 @@ def print_codecs(media_files):
print("\ntotal "+ str(len(media_files)) + str(" files"))
def main() -> None:
if(len(sys.argv) != 2):
path = '.' #use current pwd
else:
if(len(sys.argv) == 3):
path = sys.argv[1] #use arg0 as path
filter_mode = sys.argv[2] #use arg2 as filter input
elif (len(sys.argv) == 2):
path = sys.argv[1] #use arg0 as path
filter_mode = " "
else:
path = '.' #use current pwd
filter_mode = " "
media_files = scan_files(path) #scan all media files
print("")
print_all(media_files)
print_all(media_files, filter_mode)
print("")
print_codecs(media_files)