DDownloader 0.3.9__tar.gz → 0.4.0__tar.gz
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-0.4.0/DDownloader/modules/__init__.py +1 -0
- {ddownloader-0.3.9 → ddownloader-0.4.0}/DDownloader/modules/banners.py +1 -1
- {ddownloader-0.3.9 → ddownloader-0.4.0}/DDownloader/modules/downloader.py +13 -1
- {ddownloader-0.3.9 → ddownloader-0.4.0}/PKG-INFO +1 -1
- {ddownloader-0.3.9 → ddownloader-0.4.0}/pyproject.toml +2 -2
- ddownloader-0.3.9/DDownloader/modules/__init__.py +0 -1
- {ddownloader-0.3.9 → ddownloader-0.4.0}/DDownloader/__init__.py +0 -0
- {ddownloader-0.3.9 → ddownloader-0.4.0}/DDownloader/bin/N_m3u8DL-RE.exe +0 -0
- {ddownloader-0.3.9 → ddownloader-0.4.0}/DDownloader/bin/aria2c.exe +0 -0
- {ddownloader-0.3.9 → ddownloader-0.4.0}/DDownloader/bin/ffmpeg.exe +0 -0
- {ddownloader-0.3.9 → ddownloader-0.4.0}/DDownloader/bin/mkvmerge.exe +0 -0
- {ddownloader-0.3.9 → ddownloader-0.4.0}/DDownloader/bin/mp4decrypt.exe +0 -0
- {ddownloader-0.3.9 → ddownloader-0.4.0}/DDownloader/bin/shaka-packager.exe +0 -0
- {ddownloader-0.3.9 → ddownloader-0.4.0}/DDownloader/bin/yt-dlp.exe +0 -0
- {ddownloader-0.3.9 → ddownloader-0.4.0}/DDownloader/main.py +0 -0
- {ddownloader-0.3.9 → ddownloader-0.4.0}/DDownloader/modules/args_parser.py +0 -0
- {ddownloader-0.3.9 → ddownloader-0.4.0}/DDownloader/modules/helper.py +0 -0
- {ddownloader-0.3.9 → ddownloader-0.4.0}/DDownloader/modules/streamlink.py +0 -0
- {ddownloader-0.3.9 → ddownloader-0.4.0}/LICENSE +0 -0
- {ddownloader-0.3.9 → ddownloader-0.4.0}/README.md +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "0.4.0"
|
@@ -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.
|
26
|
+
print(f"{Fore.YELLOW}[DDownloader] - {Fore.GREEN}A DRM-Protected & Non-Protected Content Downloader - {Fore.RED}[V0.4.0] \n{Fore.RESET}")
|
27
27
|
|
28
28
|
# =========================================================================================================== #
|
29
29
|
|
@@ -34,13 +34,24 @@ class DOWNLOADER:
|
|
34
34
|
else:
|
35
35
|
raise ValueError(f"Unknown binary type: {binary_type}")
|
36
36
|
|
37
|
+
# First check project's bin directory
|
37
38
|
binary_path = os.path.join(bin_dir, binary_name)
|
39
|
+
|
40
|
+
# For ffmpeg on Linux, fall back to system path if not found in project
|
41
|
+
if binary_type == 'ffmpeg' and platform.system() == 'Linux' and not os.path.isfile(binary_path):
|
42
|
+
system_ffmpeg = '/usr/bin/ffmpeg'
|
43
|
+
if os.path.isfile(system_ffmpeg):
|
44
|
+
binary_path = system_ffmpeg
|
45
|
+
logger.info(Fore.YELLOW + f"Using system ffmpeg at: {binary_path}" + Fore.RESET)
|
46
|
+
else:
|
47
|
+
logger.error(f"ffmpeg not found in project bin or system path")
|
48
|
+
raise FileNotFoundError(f"ffmpeg not found in project bin or system path")
|
38
49
|
|
39
50
|
if not os.path.isfile(binary_path):
|
40
51
|
logger.error(f"Binary not found: {binary_path}")
|
41
52
|
raise FileNotFoundError(f"Binary not found: {binary_path}")
|
42
53
|
|
43
|
-
if platform.system() == 'Linux':
|
54
|
+
if platform.system() == 'Linux' and not binary_path.startswith('/usr/bin/'):
|
44
55
|
chmod_command = ['chmod', '+x', binary_path]
|
45
56
|
try:
|
46
57
|
subprocess.run(chmod_command, check=True)
|
@@ -238,6 +249,7 @@ class DOWNLOADER:
|
|
238
249
|
"-o", f"\"{output_file}\"", # Output file
|
239
250
|
"--no-check-certificate", # Bypass certificate verification
|
240
251
|
"--extractor-args", "youtube:player_client=android", # Force a specific extractor
|
252
|
+
"--ignore-errors", # Ignore errors and continue downloading
|
241
253
|
]
|
242
254
|
|
243
255
|
# Add playlist-specific options if the URL is a playlist
|
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "DDownloader"
|
7
|
-
version = "0.
|
7
|
+
version = "0.4.0"
|
8
8
|
description = "A downloader for DRM-protected & Non DRM-protected content."
|
9
9
|
readme = { file = "README.md", content-type = "text/markdown" }
|
10
10
|
authors = [
|
@@ -25,7 +25,7 @@ classifiers = [
|
|
25
25
|
|
26
26
|
[tool.poetry]
|
27
27
|
name = "DDownloader"
|
28
|
-
version = "0.
|
28
|
+
version = "0.4.0"
|
29
29
|
description = "A downloader for DRM-protected & Non DRM-protected content."
|
30
30
|
authors = ["ThatNotEasy <apidotmy@proton.me>"]
|
31
31
|
license = "MIT"
|
@@ -1 +0,0 @@
|
|
1
|
-
__version__ = "0.3.9"
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|