Skip to content

Commit c9f0107

Browse files
committed
Added size column to quality table, and changed the structure of data in lists.
1 parent 8433d52 commit c9f0107

File tree

2 files changed

+45
-20
lines changed

2 files changed

+45
-20
lines changed

downloader.py

Lines changed: 44 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -21,45 +21,70 @@
2121
api = Handler(videoURL)
2222

2323
q_list = ['4k', '1080p', '720p', '480p', '360p', '240p']
24-
q_list.reverse()
24+
# q_list.reverse()
2525

26-
urlList = {}
26+
urlList = []
2727

2828

2929
def getVidInfo(r):
3030
for video_metadata in api.run(quality=r):
3131

32-
quality = video_metadata.get("q")
33-
vidLink = video_metadata.get("dlink")
32+
q = video_metadata.get("q")
33+
dlink = video_metadata.get("dlink")
34+
size = video_metadata.get("size")
3435

35-
if vidLink == None:
36+
if dlink == None:
3637
pass
3738
else:
38-
urlList.update({quality : vidLink})
39+
urlList.append([q, size,dlink])
3940
# print(r, " fetched")
4041

42+
43+
4144
# Iterate over q_list to check if res quality exist on that video
42-
for count, r in enumerate(q_list):
45+
for r in q_list:
4346
getVidInfo(r)
44-
45-
# print qualities to the terminal
47+
48+
# print(urlList)
49+
50+
# Create a new list to show
4651
showList = {}
47-
for count, q in enumerate(urlList, 1):
48-
showList.update({count: q})
49-
50-
print(tabulate(showList.items(), headers=["Q-No", "Quality"], tablefmt="heavy_grid"))
52+
for count, item in enumerate(urlList, 1):
53+
del item[2] # Remove dlink from list
54+
q = item[0]
55+
# print(i)
56+
size = item[1]
57+
showList.update( { count: { "q":q, "size": size }} )
5158

59+
# print(showList)
5260

53-
userInput = int(input("Enter the your Q-No: "))
54-
cmds.clear()
55-
print("Downloading...Please wait!")
61+
def showQTable():
62+
tableList = []
63+
for count, item in enumerate(showList, 1):
64+
q = showList[item]["q"]
65+
size = showList[item]["size"]
66+
tableList.append( [count, q, size ] )
67+
print(tabulate(tableList, headers=["Q-No", "Quality", "Size"], tablefmt="heavy_grid"))
68+
69+
showQTable()
70+
71+
72+
73+
74+
75+
try:
76+
userInput = int(input("Enter the your Q-No: "))
77+
cmds.clear()
78+
banner.WelcomeBanner()
79+
print("Downloading...Please wait!\n")
80+
except:
81+
print("Wrong Input try again!")
5682

5783
mediaPath = f"{os.getcwd()}/vids"
5884

5985
# Download the video using user's input
60-
for video_metadata in api.run(quality=showList[userInput]):
86+
for video_metadata in api.run(quality=showList[userInput]["q"]):
6187
# print(video_metadata)
62-
6388
if not os.path.exists(mediaPath):
6489
os.makedirs(mediaPath)
6590

@@ -74,8 +99,8 @@ def getVidInfo(r):
7499

75100
cmds.clear()
76101
banner.WelcomeBanner()
102+
print(f"Download Completed:\n{vidFileName} ✅")
77103
print(f"\nPlease Check the 'vid' Folder for your files!\n")
78-
print("Download Completed! ✅")
79104

80105

81106

modules/banner.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ def WelcomeBanner():
99
D O W N L O A D E R
1010
1111
-------------------------------
12-
Version: V3.0
12+
Version: V3.1
1313
API: Simatwa/y2mate-api
1414
Dev: @HansanaD
1515
-------------------------------

0 commit comments

Comments
 (0)