-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsort.py
More file actions
66 lines (50 loc) · 1.95 KB
/
Copy pathsort.py
File metadata and controls
66 lines (50 loc) · 1.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import sys
import os
from shutil import copyfile, move
from pathlib import Path
print(sys.argv[1])
directory = sys.argv[1]
video_titles=[]
for filename in os.listdir(directory):
if filename.endswith(".mkv") or filename.endswith(".mp4") or filename.endswith(".webm"):
file_path = os.path.join(directory, filename)
# print()
video_title = os.path.splitext(filename)[0].split(" codec=")[0]
if video_title in video_titles:
continue
video_titles.append(video_title)
print(video_title)
best_eqv_size=0
best_codec=""
sizes={}
# video_names=[]
video_paths=[]
for file in os.listdir(directory):
if file.startswith(video_title+" codec="):
video_path = os.path.join(directory, file)
video_paths.append(video_path)
size = os.path.getsize(video_path)/10**6
codec = file.split(" codec=")[1].split(".")[0]
quality = {
"avc1":1,
"vp9":1/0.77,
"av01":1/0.46
}
eqv_size = size*quality[codec]
sizes[codec]=size
print("{0:4s}: {1:6.1f},{2:6.1f}".format(codec,size,eqv_size))
if eqv_size>best_eqv_size:
best_eqv_size = eqv_size
best_codec = codec
vp9_avc_ratio = sizes["vp9"]/sizes["avc1"]
for video_path in video_paths:
if best_codec in video_path:
copyfile(video_path,os.path.join(directory,'..', "Input",video_title + "." + video_path.split(".")[-1]))
move(video_path,os.path.join(directory,'..', "Archive",Path(video_path).name))
print("vp9/avc: {:.0%}".format(vp9_avc_ratio))
print(best_codec)
print("")
continue
else:
continue
print(len(video_titles))