DDownloader 0.3.7__py3-none-any.whl → 0.3.8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- DDownloader/modules/__init__.py +1 -1
- DDownloader/modules/banners.py +1 -1
- DDownloader/modules/downloader.py +3 -2
- DDownloader/modules/helper.py +63 -26
- {ddownloader-0.3.7.dist-info → ddownloader-0.3.8.dist-info}/METADATA +1 -1
- ddownloader-0.3.8.dist-info/RECORD +20 -0
- {ddownloader-0.3.7.dist-info → ddownloader-0.3.8.dist-info}/WHEEL +1 -1
- DDownloader/modules/__pycache__/__init__.cpython-310.pyc +0 -0
- DDownloader/modules/__pycache__/args_parser.cpython-310.pyc +0 -0
- DDownloader/modules/__pycache__/banners.cpython-310.pyc +0 -0
- DDownloader/modules/__pycache__/dash_downloader.cpython-310.pyc +0 -0
- DDownloader/modules/__pycache__/helper.cpython-310.pyc +0 -0
- DDownloader/modules/__pycache__/hls_downloader.cpython-310.pyc +0 -0
- ddownloader-0.3.7.dist-info/RECORD +0 -26
- {ddownloader-0.3.7.dist-info → ddownloader-0.3.8.dist-info}/LICENSE +0 -0
- {ddownloader-0.3.7.dist-info → ddownloader-0.3.8.dist-info}/entry_points.txt +0 -0
DDownloader/modules/__init__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "0.3.
|
1
|
+
__version__ = "0.3.8"
|
DDownloader/modules/banners.py
CHANGED
@@ -23,7 +23,7 @@ def banners():
|
|
23
23
|
stdout.write(""+Fore.YELLOW +"╔════════════════════════════════════════════════════════════════════════════╝\n")
|
24
24
|
stdout.write(""+Fore.YELLOW +"║ \x1b[38;2;255;20;147m• "+Fore.GREEN+"GITHUB "+Fore.RED+" |"+Fore.LIGHTWHITE_EX+" GITHUB.COM/THATNOTEASY "+Fore.YELLOW+"║\n")
|
25
25
|
stdout.write(""+Fore.YELLOW +"╚════════════════════════════════════════════════════════════════════════════╝\n")
|
26
|
-
print(f"{Fore.YELLOW}[DDownloader] - {Fore.GREEN}A DRM-Protected & Non-Protected Content Downloader - {Fore.RED}[V0.3.
|
26
|
+
print(f"{Fore.YELLOW}[DDownloader] - {Fore.GREEN}A DRM-Protected & Non-Protected Content Downloader - {Fore.RED}[V0.3.8] \n{Fore.RESET}")
|
27
27
|
|
28
28
|
# =========================================================================================================== #
|
29
29
|
|
@@ -61,15 +61,16 @@ class DOWNLOADER:
|
|
61
61
|
# =========================================================================================================== #
|
62
62
|
|
63
63
|
def _build_command(self):
|
64
|
-
self.binary_path = self._get_binary_path("N_m3u8DL-RE")
|
65
64
|
command = [
|
66
|
-
self.
|
65
|
+
self._get_binary_path("N_m3u8DL-RE"),
|
67
66
|
f'"{self.manifest_url}"',
|
68
67
|
'-mt',
|
69
68
|
'-M', 'format=mp4',
|
70
69
|
'--save-dir', '"downloads"',
|
71
70
|
'--tmp-dir', '"downloads"',
|
72
71
|
'--del-after-done',
|
72
|
+
'--decryption-engine', '"FFMPEG"',
|
73
|
+
'--decryption-binary-path', f'"{self._get_binary_path("ffmpeg")}"',
|
73
74
|
'--save-name', f'"{self.output_name}"'
|
74
75
|
]
|
75
76
|
|
DDownloader/modules/helper.py
CHANGED
@@ -92,52 +92,89 @@ def detect_platform():
|
|
92
92
|
|
93
93
|
def get_media_info(file_path):
|
94
94
|
try:
|
95
|
-
logger.info(f"Parsing media file: {file_path}")
|
95
|
+
logger.info(f"📂 Parsing media file: {file_path}")
|
96
96
|
media_info = MediaInfo.parse(file_path)
|
97
|
-
|
97
|
+
|
98
|
+
result = {
|
99
|
+
"file_path": file_path,
|
100
|
+
"tracks": [],
|
101
|
+
"container": None,
|
102
|
+
"file_size": None,
|
103
|
+
"duration": None,
|
104
|
+
"bit_rate": None,
|
105
|
+
}
|
98
106
|
|
99
107
|
for track in media_info.tracks:
|
100
108
|
track_info = {"track_type": track.track_type}
|
101
109
|
|
102
|
-
if track.track_type == "
|
110
|
+
if track.track_type == "General":
|
111
|
+
result.update({
|
112
|
+
"container": getattr(track, "format", None),
|
113
|
+
"file_size": getattr(track, "file_size", None),
|
114
|
+
"duration": getattr(track, "duration", None),
|
115
|
+
"bit_rate": getattr(track, "overall_bit_rate", None),
|
116
|
+
"title": getattr(track, "title", None),
|
117
|
+
"encoded_application": getattr(track, "encoded_application", None),
|
118
|
+
"encoded_library": getattr(track, "encoded_library", None),
|
119
|
+
"writing_library": getattr(track, "writing_library", None),
|
120
|
+
"file_creation_date": getattr(track, "file_created_date", None),
|
121
|
+
})
|
122
|
+
|
123
|
+
elif track.track_type == "Video":
|
103
124
|
track_info.update({
|
104
|
-
"codec": track
|
105
|
-
"
|
106
|
-
"
|
107
|
-
"
|
108
|
-
"
|
109
|
-
"
|
110
|
-
"
|
125
|
+
"codec": getattr(track, "codec_id", getattr(track, "format", None)),
|
126
|
+
"codec_profile": getattr(track, "format_profile", None),
|
127
|
+
"width": getattr(track, "width", None),
|
128
|
+
"height": getattr(track, "height", None),
|
129
|
+
"frame_rate": getattr(track, "frame_rate", None),
|
130
|
+
"bit_rate": getattr(track, "bit_rate", None),
|
131
|
+
"duration": getattr(track, "duration", None),
|
132
|
+
"aspect_ratio": getattr(track, "display_aspect_ratio", None),
|
133
|
+
"hdr_format": getattr(track, "hdr_format", None),
|
134
|
+
"bit_depth": getattr(track, "bit_depth", None),
|
135
|
+
"color_space": getattr(track, "colour_primaries", None),
|
136
|
+
"color_range": getattr(track, "colour_range", None),
|
137
|
+
"color_transfer": getattr(track, "transfer_characteristics", None),
|
138
|
+
"chroma_subsampling": getattr(track, "chroma_subsampling", None),
|
111
139
|
})
|
140
|
+
|
112
141
|
elif track.track_type == "Audio":
|
113
142
|
track_info.update({
|
114
|
-
"codec": track
|
115
|
-
"
|
116
|
-
"
|
117
|
-
"
|
118
|
-
"
|
119
|
-
"
|
143
|
+
"codec": getattr(track, "codec_id", getattr(track, "format", None)),
|
144
|
+
"codec_profile": getattr(track, "format_profile", None),
|
145
|
+
"channels": getattr(track, "channel_s", None),
|
146
|
+
"sample_rate": getattr(track, "sampling_rate", None),
|
147
|
+
"bit_rate": getattr(track, "bit_rate", None),
|
148
|
+
"duration": getattr(track, "duration", None),
|
149
|
+
"language": getattr(track, "language", "Unknown"),
|
150
|
+
"compression_mode": getattr(track, "compression_mode", None),
|
151
|
+
"bit_depth": getattr(track, "bit_depth", None),
|
120
152
|
})
|
153
|
+
|
121
154
|
elif track.track_type == "Text":
|
122
155
|
track_info.update({
|
123
|
-
"
|
124
|
-
"
|
156
|
+
"format": getattr(track, "format", None),
|
157
|
+
"language": getattr(track, "language", "Unknown"),
|
158
|
+
"default": getattr(track, "default", None),
|
159
|
+
"forced": getattr(track, "forced", None),
|
160
|
+
"format_profile": getattr(track, "format_profile", None),
|
125
161
|
})
|
126
|
-
|
162
|
+
|
163
|
+
elif track.track_type == "Chapters":
|
127
164
|
track_info.update({
|
128
|
-
"
|
129
|
-
"
|
130
|
-
"duration": track.duration,
|
131
|
-
"overall_bit_rate": track.overall_bit_rate,
|
165
|
+
"title": getattr(track, "title", None),
|
166
|
+
"chapter_count": getattr(track, "part_count", None),
|
132
167
|
})
|
133
168
|
|
134
|
-
|
169
|
+
if any(value is not None for value in track_info.values()): # Avoid empty entries
|
170
|
+
result["tracks"].append(track_info)
|
135
171
|
|
136
|
-
logger.info(f"Successfully extracted media
|
172
|
+
logger.info(f"✅ Successfully extracted media info for: {file_path}")
|
137
173
|
return result
|
138
174
|
|
139
175
|
except Exception as e:
|
140
|
-
logger.error(f"Error
|
176
|
+
logger.error(f"❌ Error parsing media file '{file_path}': {e}")
|
141
177
|
return None
|
178
|
+
|
142
179
|
|
143
180
|
# =========================================================================================================== #
|
@@ -0,0 +1,20 @@
|
|
1
|
+
DDownloader/__init__.py,sha256=lVZwmZNId0Dai7XBQpxglmJtIxAtZplRHDsvobL2UNo,33
|
2
|
+
DDownloader/bin/aria2c.exe,sha256=7NovO7hmaCdsPJK3Hue8N5mefFlAcJMjU_LnUnE9f6g,4840960
|
3
|
+
DDownloader/bin/ffmpeg.exe,sha256=NqWbY4tJ-ObGIvTefEyKr4RC8wE4pYiC7irz9BDl_Vw,148103168
|
4
|
+
DDownloader/bin/mkvmerge.exe,sha256=s2WkBPBuhpWPNHKXwDBfQ4vOMXLYTfxu62PbnRqK55A,19144712
|
5
|
+
DDownloader/bin/mp4decrypt.exe,sha256=JnI7mk4UduPVnUDg1aZBr4y_SWRFy8s-u_H6gG5xeOg,452096
|
6
|
+
DDownloader/bin/N_m3u8DL-RE.exe,sha256=5ck6jeDFjFCSLBeoo7q9fSGT-0Oxp_rNCxjeknTvgGE,17197568
|
7
|
+
DDownloader/bin/shaka-packager.exe,sha256=oQmfiToKeryylxsR9BiKuhXR_fS-PqPEu9W9rEsbrt8,5369344
|
8
|
+
DDownloader/bin/yt-dlp.exe,sha256=TYiozhv_gpxxZ90h6LSo7rDbFEG8JzQPCJa754HJw8A,19557107
|
9
|
+
DDownloader/main.py,sha256=7XJrLtMaw_5taymEoPfDgfQCw9K3JJmW8gScR6gVOPw,5792
|
10
|
+
DDownloader/modules/__init__.py,sha256=kd0YV9qLZ1Lpx7vbSzAMrAwjgdZJD_tInTnDqY6-nTY,21
|
11
|
+
DDownloader/modules/args_parser.py,sha256=Xc9ZzBu-QPFrBURIcq7rl8IJbrdPMy7EMWc-odVM2QU,1105
|
12
|
+
DDownloader/modules/banners.py,sha256=yiMLSbH92XXf_92g4No5i7wLF50bPyp2wuBh4rfV5Yk,5656
|
13
|
+
DDownloader/modules/downloader.py,sha256=Ul0zCB5t9DR8sx1YisP_RFzCWVWm7J8mor4rhOKudNA,7867
|
14
|
+
DDownloader/modules/helper.py,sha256=-PMfT0pd3AsXY1K_WP1mER3dpw9gJ99Y-Erque_62nQ,8242
|
15
|
+
DDownloader/modules/streamlink.py,sha256=t7aaHCnINzSFybTmAd-dvfGFQkepFHJwrOBcNxyJviY,504
|
16
|
+
ddownloader-0.3.8.dist-info/entry_points.txt,sha256=36xFMHKWyVvFKBCCMd3ctyd6tyujf685-qilrMpsA1E,53
|
17
|
+
ddownloader-0.3.8.dist-info/LICENSE,sha256=cnjTim3BMjb9cVC_b3oS41FESKLuvuDsufVHa_ymZRw,1090
|
18
|
+
ddownloader-0.3.8.dist-info/METADATA,sha256=hM7TxtkmJc31-ftcjhhTcmNhyjm7Xz-a7ILCZq9fGUI,4906
|
19
|
+
ddownloader-0.3.8.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
|
20
|
+
ddownloader-0.3.8.dist-info/RECORD,,
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,26 +0,0 @@
|
|
1
|
-
DDownloader/__init__.py,sha256=lVZwmZNId0Dai7XBQpxglmJtIxAtZplRHDsvobL2UNo,33
|
2
|
-
DDownloader/bin/aria2c.exe,sha256=7NovO7hmaCdsPJK3Hue8N5mefFlAcJMjU_LnUnE9f6g,4840960
|
3
|
-
DDownloader/bin/ffmpeg.exe,sha256=NqWbY4tJ-ObGIvTefEyKr4RC8wE4pYiC7irz9BDl_Vw,148103168
|
4
|
-
DDownloader/bin/mkvmerge.exe,sha256=s2WkBPBuhpWPNHKXwDBfQ4vOMXLYTfxu62PbnRqK55A,19144712
|
5
|
-
DDownloader/bin/mp4decrypt.exe,sha256=JnI7mk4UduPVnUDg1aZBr4y_SWRFy8s-u_H6gG5xeOg,452096
|
6
|
-
DDownloader/bin/N_m3u8DL-RE.exe,sha256=5ck6jeDFjFCSLBeoo7q9fSGT-0Oxp_rNCxjeknTvgGE,17197568
|
7
|
-
DDownloader/bin/shaka-packager.exe,sha256=oQmfiToKeryylxsR9BiKuhXR_fS-PqPEu9W9rEsbrt8,5369344
|
8
|
-
DDownloader/bin/yt-dlp.exe,sha256=TYiozhv_gpxxZ90h6LSo7rDbFEG8JzQPCJa754HJw8A,19557107
|
9
|
-
DDownloader/main.py,sha256=7XJrLtMaw_5taymEoPfDgfQCw9K3JJmW8gScR6gVOPw,5792
|
10
|
-
DDownloader/modules/__init__.py,sha256=Jl3PXrkK7-Eox4dKIMxhOA7uVtSB0CC7qOf4NAQqa_s,21
|
11
|
-
DDownloader/modules/__pycache__/__init__.cpython-310.pyc,sha256=XTOXC62dWICZNMKQGsrzT2Q_plhIs0EDYWbbzPnP4cI,192
|
12
|
-
DDownloader/modules/__pycache__/args_parser.cpython-310.pyc,sha256=wRZBVDvaj3u6kMxUgDeegIgCDbpI5Xc8-FcnePt8O-Y,845
|
13
|
-
DDownloader/modules/__pycache__/banners.cpython-310.pyc,sha256=OPyrjSYpT2vf2uKiVJJ3QeMbiLUECT1fVo7B51Dc7LM,5618
|
14
|
-
DDownloader/modules/__pycache__/dash_downloader.cpython-310.pyc,sha256=dGuwXBw_MuwE9i7sC_Ze_wK3iz_9KA85w-0aJjwJyDs,4644
|
15
|
-
DDownloader/modules/__pycache__/helper.cpython-310.pyc,sha256=wOX6-I0QgXxXQXfzV7TUBahhb30Xid6MWx6rxZkIv0g,4200
|
16
|
-
DDownloader/modules/__pycache__/hls_downloader.cpython-310.pyc,sha256=Hg5C_O0M4WtnP6fN9OTwRDr1s8F67feBVkQONLNIT-E,4633
|
17
|
-
DDownloader/modules/args_parser.py,sha256=Xc9ZzBu-QPFrBURIcq7rl8IJbrdPMy7EMWc-odVM2QU,1105
|
18
|
-
DDownloader/modules/banners.py,sha256=s63Rd9cwGLvDbNUvCpWMK0I2rIBAYGl5dmQO9eP9Wvs,5656
|
19
|
-
DDownloader/modules/downloader.py,sha256=xzuWBzXSoz0yU-BtkAPuqRNaPsxgcnTYvunWOtroQKU,7783
|
20
|
-
DDownloader/modules/helper.py,sha256=b8h-h4_JqE02D26qBzSRW11LWhYUTnBkNIeYlWRO-ZY,5951
|
21
|
-
DDownloader/modules/streamlink.py,sha256=t7aaHCnINzSFybTmAd-dvfGFQkepFHJwrOBcNxyJviY,504
|
22
|
-
ddownloader-0.3.7.dist-info/entry_points.txt,sha256=36xFMHKWyVvFKBCCMd3ctyd6tyujf685-qilrMpsA1E,53
|
23
|
-
ddownloader-0.3.7.dist-info/LICENSE,sha256=cnjTim3BMjb9cVC_b3oS41FESKLuvuDsufVHa_ymZRw,1090
|
24
|
-
ddownloader-0.3.7.dist-info/METADATA,sha256=8Utz-Ii1130UMi1wnkM0qQu6sgD6eDUSFlG_ge4KrMA,4906
|
25
|
-
ddownloader-0.3.7.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
26
|
-
ddownloader-0.3.7.dist-info/RECORD,,
|
File without changes
|
File without changes
|