forked from bipinkrish/Mdisk-Downloader-Bot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mdisk.py
143 lines (112 loc) · 5.16 KB
/
mdisk.py
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
import requests
import json
import os
import subprocess
#setting
currentFile = __file__
realPath = os.path.realpath(currentFile)
dirPath = os.path.dirname(realPath)
dirName = os.path.basename(dirPath)
ytdlp = dirPath + "/binaries/yt-dlp"
aria2c = dirPath + "/binaries/aria2c"
mkvmerge = dirPath + "/binaries/mkvmerge"
ffmpeg = dirPath + "/ffmpeg/ffmpeg"
os.system(f"chmod 777 {ytdlp} {aria2c} {mkvmerge} {ffmpeg} ffmpeg/ffprobe ffmpeg/qt-faststart")
def req(link):
inp = link #input('Enter the Link: ')
fxl = inp.split("/")
cid = fxl[-1]
URL = f'https://diskuploader.entertainvideo.com/v1/file/cdnurl?param={cid}'
header = {
'Accept': '*/*',
'Accept-Language': 'en-US,en;q=0.5',
'Accept-Encoding': 'gzip, deflate, br',
'Referer': 'https://mdisk.me/',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36'
}
print("Requesting to Server")
#requesting
resp = requests.get(url=URL, headers=header).json()['source']
result = subprocess.run([ytdlp, '--no-warning', '-k', '--user-agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36', '--allow-unplayable-formats', '-F', resp], capture_output=True, text=True)
outtext = result.stdout
#print(outtext)
#printingrequiredonly
outtext = outtext.split("-")
temp = outtext[0]
temp = temp.split("\n")
temp = temp[-2]
outtext = outtext[-1]
outtext = f"{temp}\n{outtext}"
print (outtext)
return outtext
def mdow(link,v,a,message):
#setting
os.system(f"mkdir {message.id}")
input_video = dirPath + f'/{message.id}/vid.mp4'
input_audio = dirPath + f'/{message.id}/aud.m4a'
#input
inp = link #input('Enter the Link: ')
fxl = inp.split("/")
cid = fxl[-1]
URL = f'https://diskuploader.entertainvideo.com/v1/file/cdnurl?param={cid}'
header = {
'Accept': '*/*',
'Accept-Language': 'en-US,en;q=0.5',
'Accept-Encoding': 'gzip, deflate, br',
'Referer': 'https://mdisk.me/',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36'
}
print("Requesting to Server")
#requesting
resp = requests.get(url=URL, headers=header).json()['source']
#choosing
vid_format = v
aud_format = a
#downloading
#video
if not os.path.exists(input_video):
subprocess.run([ytdlp, '--no-warning', '-k', '-f', vid_format, resp, '-o', input_video, '--user-agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36',
'--allow-unplayable-formats', '--external-downloader', aria2c, '--external-downloader-args', '-x 16 -s 16 -k 1M'])
else:
pass
#audio
if not os.path.exists(input_audio):
subprocess.run([ytdlp, '--no-warning', '-k', '-f', aud_format, resp, '-o', input_audio, '--user-agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36',
'--allow-unplayable-formats', '--external-downloader', aria2c, '--external-downloader-args', '-x 16 -s 16 -k 1M'])
else:
pass
#renaming
output = requests.get(url=URL, headers=header).json()['filename']
output = output.replace(".mkv", "").replace(".mp4", "")
#mkvmerge not used
#mkvmerge_command = [mkvmerge, '--appimage-extract-and-run', '--output', output + '.mkv', '--language', '0:und', '--default-track', '0:yes', '--compression', '0:none', input_video,'--language', '0:en', '--default-track', '0:yes', '--compression', '0:none', input_audio]
#subprocess.run(mkvmerge_command)
#merge
cmd = f'{ffmpeg} -i {input_video} -i {input_audio} -c copy "{output}.mkv"'
subprocess.call(cmd, shell=True)
print('Muxing Done')
#cleaning
if os.path.exists(output+'.mkv'):
print('Cleaning Leftovers...')
os.remove(input_audio)
os.remove(input_video)
print('Done!')
foutput = f"{output}.mkv"
os.system(f'rmdir {message.id}')
return foutput
else:
print("Trying with Changes")
ffoutput = f" {output}.mkv"
#mkvmerge not used
#mkvmerge_command = f'{mkvmerge} --appimage-extract-and-run --output "{ffoutput}" --language 0:und --default-track 0:yes --compression 0:none {input_video} --language 0:en --default-track 0:yes --compression 0:none {input_audio}'
#os.system(mkvmerge_command)
cmd = f'{ffmpeg} -i {input_video} -i {input_audio} -c copy "{ffoutput}"'
subprocess.call(cmd, shell=True)
print('Muxing Done')
if os.path.exists(output+'.mkv'):
print('Cleaning Leftovers...')
os.remove(input_audio)
os.remove(input_video)
print('Done!')
os.system(f'rmdir {message.id}')
return ffoutput