StreamingCommunity 3.2.5__py3-none-any.whl → 3.2.7__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.

Potentially problematic release.


This version of StreamingCommunity might be problematic. Click here for more details.

Files changed (36) hide show
  1. StreamingCommunity/Api/Site/altadefinizione/film.py +2 -2
  2. StreamingCommunity/Api/Site/altadefinizione/series.py +1 -1
  3. StreamingCommunity/Api/Site/animeunity/serie.py +1 -1
  4. StreamingCommunity/Api/Site/animeworld/film.py +1 -1
  5. StreamingCommunity/Api/Site/animeworld/serie.py +1 -2
  6. StreamingCommunity/Api/Site/cb01new/film.py +1 -1
  7. StreamingCommunity/Api/Site/crunchyroll/film.py +3 -4
  8. StreamingCommunity/Api/Site/crunchyroll/series.py +10 -6
  9. StreamingCommunity/Api/Site/crunchyroll/util/ScrapeSerie.py +20 -0
  10. StreamingCommunity/Api/Site/guardaserie/series.py +1 -2
  11. StreamingCommunity/Api/Site/mediasetinfinity/film.py +12 -3
  12. StreamingCommunity/Api/Site/mediasetinfinity/series.py +14 -6
  13. StreamingCommunity/Api/Site/mediasetinfinity/util/get_license.py +1 -4
  14. StreamingCommunity/Api/Site/raiplay/film.py +2 -2
  15. StreamingCommunity/Api/Site/raiplay/series.py +2 -1
  16. StreamingCommunity/Api/Site/streamingcommunity/film.py +1 -1
  17. StreamingCommunity/Api/Site/streamingcommunity/series.py +2 -2
  18. StreamingCommunity/Api/Site/streamingwatch/film.py +1 -1
  19. StreamingCommunity/Lib/Downloader/DASH/downloader.py +13 -15
  20. StreamingCommunity/Lib/Downloader/DASH/parser.py +1 -1
  21. StreamingCommunity/Lib/Downloader/HLS/downloader.py +9 -16
  22. StreamingCommunity/Lib/Downloader/HLS/segments.py +143 -260
  23. StreamingCommunity/TelegramHelp/config.json +0 -2
  24. StreamingCommunity/Upload/version.py +1 -1
  25. StreamingCommunity/Util/bento4_installer.py +191 -0
  26. StreamingCommunity/Util/config_json.py +1 -1
  27. StreamingCommunity/Util/headers.py +0 -3
  28. StreamingCommunity/Util/os.py +15 -46
  29. StreamingCommunity/__init__.py +2 -1
  30. StreamingCommunity/run.py +11 -10
  31. {streamingcommunity-3.2.5.dist-info → streamingcommunity-3.2.7.dist-info}/METADATA +4 -8
  32. {streamingcommunity-3.2.5.dist-info → streamingcommunity-3.2.7.dist-info}/RECORD +36 -35
  33. {streamingcommunity-3.2.5.dist-info → streamingcommunity-3.2.7.dist-info}/WHEEL +0 -0
  34. {streamingcommunity-3.2.5.dist-info → streamingcommunity-3.2.7.dist-info}/entry_points.txt +0 -0
  35. {streamingcommunity-3.2.5.dist-info → streamingcommunity-3.2.7.dist-info}/licenses/LICENSE +0 -0
  36. {streamingcommunity-3.2.5.dist-info → streamingcommunity-3.2.7.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,191 @@
1
+ # 18.07.25
2
+
3
+ import os
4
+ import platform
5
+ import logging
6
+ import shutil
7
+ import zipfile
8
+
9
+
10
+ # External library
11
+ import requests
12
+ from rich.console import Console
13
+ from rich.progress import Progress, SpinnerColumn, BarColumn, TextColumn, TimeRemainingColumn
14
+
15
+
16
+ # Variable
17
+ console = Console()
18
+
19
+ BENTO4_CONFIGURATION = {
20
+ 'windows': {
21
+ 'base_dir': lambda home: os.path.join(os.path.splitdrive(home)[0] + os.sep, 'binary'),
22
+ 'download_url': 'https://www.bok.net/Bento4/binaries/Bento4-SDK-{version}.{platform}.zip',
23
+ 'versions': {
24
+ 'x64': 'x86_64-microsoft-win32',
25
+ 'x86': 'x86-microsoft-win32-vs2010',
26
+ },
27
+ 'executables': ['mp4decrypt.exe']
28
+ },
29
+ 'darwin': {
30
+ 'base_dir': lambda home: os.path.join(home, 'Applications', 'binary'),
31
+ 'download_url': 'https://www.bok.net/Bento4/binaries/Bento4-SDK-{version}.{platform}.zip',
32
+ 'versions': {
33
+ 'x64': 'universal-apple-macosx',
34
+ 'arm64': 'universal-apple-macosx'
35
+ },
36
+ 'executables': ['mp4decrypt']
37
+ },
38
+ 'linux': {
39
+ 'base_dir': lambda home: os.path.join(home, '.local', 'bin', 'binary'),
40
+ 'download_url': 'https://www.bok.net/Bento4/binaries/Bento4-SDK-{version}.{platform}.zip',
41
+ 'versions': {
42
+ 'x64': 'x86_64-unknown-linux',
43
+ 'x86': 'x86-unknown-linux',
44
+ 'arm64': 'x86_64-unknown-linux'
45
+ },
46
+ 'executables': ['mp4decrypt']
47
+ }
48
+ }
49
+
50
+
51
+ class Bento4Downloader:
52
+ def __init__(self):
53
+ self.os_name = platform.system().lower()
54
+ self.arch = self._detect_arch()
55
+ self.home_dir = os.path.expanduser('~')
56
+ self.base_dir = BENTO4_CONFIGURATION[self.os_name]['base_dir'](self.home_dir)
57
+ self.version = "1-6-0-641" # Latest stable version as of Nov 2023
58
+ os.makedirs(self.base_dir, exist_ok=True)
59
+
60
+ def _detect_arch(self) -> str:
61
+ machine = platform.machine().lower()
62
+ arch_map = {
63
+ 'amd64': 'x64',
64
+ 'x86_64': 'x64',
65
+ 'x64': 'x64',
66
+ 'arm64': 'arm64',
67
+ 'aarch64': 'arm64',
68
+ 'x86': 'x86',
69
+ 'i386': 'x86',
70
+ 'i686': 'x86'
71
+ }
72
+ return arch_map.get(machine, machine)
73
+
74
+ def _download_file(self, url: str, destination: str) -> bool:
75
+ try:
76
+ response = requests.get(url, stream=True)
77
+ response.raise_for_status()
78
+ total_size = int(response.headers.get('content-length', 0))
79
+
80
+ with open(destination, 'wb') as file, \
81
+ Progress(
82
+ SpinnerColumn(),
83
+ TextColumn("[progress.description]{task.description}"),
84
+ BarColumn(),
85
+ TextColumn("[progress.percentage]{task.percentage:>3.0f}%"),
86
+ TimeRemainingColumn()
87
+ ) as progress:
88
+
89
+ download_task = progress.add_task("[green]Downloading Bento4", total=total_size)
90
+ for chunk in response.iter_content(chunk_size=8192):
91
+ size = file.write(chunk)
92
+ progress.update(download_task, advance=size)
93
+
94
+ return True
95
+
96
+ except Exception as e:
97
+ logging.error(f"Download error: {e}")
98
+ return False
99
+
100
+ def _extract_executables(self, zip_path: str) -> list:
101
+ try:
102
+ extracted_files = []
103
+ config = BENTO4_CONFIGURATION[self.os_name]
104
+ executables = config['executables']
105
+
106
+ with zipfile.ZipFile(zip_path, 'r') as zip_ref:
107
+ for zip_info in zip_ref.filelist:
108
+ for executable in executables:
109
+ if zip_info.filename.endswith(executable):
110
+
111
+ # Extract to base directory
112
+ zip_ref.extract(zip_info, self.base_dir)
113
+ src_path = os.path.join(self.base_dir, zip_info.filename)
114
+ dst_path = os.path.join(self.base_dir, executable)
115
+
116
+ # Move to final location
117
+ shutil.move(src_path, dst_path)
118
+ os.chmod(dst_path, 0o755)
119
+ extracted_files.append(dst_path)
120
+
121
+ # Clean up intermediate directories
122
+ parts = zip_info.filename.split('/')
123
+ if len(parts) > 1:
124
+ shutil.rmtree(os.path.join(self.base_dir, parts[0]))
125
+
126
+ return extracted_files
127
+
128
+ except Exception as e:
129
+ logging.error(f"Extraction error: {e}")
130
+ return []
131
+
132
+ def download(self) -> list:
133
+ try:
134
+ config = BENTO4_CONFIGURATION[self.os_name]
135
+ platform_str = config['versions'].get(self.arch)
136
+
137
+ if not platform_str:
138
+ raise ValueError(f"Unsupported architecture: {self.arch}")
139
+
140
+ download_url = config['download_url'].format(
141
+ version=self.version,
142
+ platform=platform_str
143
+ )
144
+
145
+ zip_path = os.path.join(self.base_dir, "bento4.zip")
146
+ console.print(f"[bold blue]Downloading Bento4 from {download_url}[/]")
147
+
148
+ if self._download_file(download_url, zip_path):
149
+ extracted_files = self._extract_executables(zip_path)
150
+ os.remove(zip_path)
151
+
152
+ if extracted_files:
153
+ console.print("[bold green]Bento4 successfully installed[/]")
154
+ return extracted_files
155
+
156
+ raise Exception("Failed to install Bento4")
157
+
158
+ except Exception as e:
159
+ logging.error(f"Error downloading Bento4: {e}")
160
+ console.print(f"[bold red]Error downloading Bento4: {str(e)}[/]")
161
+ return []
162
+
163
+ def check_mp4decrypt() -> str:
164
+ """Check for mp4decrypt in the system and download if not found."""
165
+ try:
166
+ # First check if mp4decrypt is in PATH
167
+ mp4decrypt = "mp4decrypt.exe" if platform.system().lower() == "windows" else "mp4decrypt"
168
+ mp4decrypt_path = shutil.which(mp4decrypt)
169
+
170
+ if mp4decrypt_path:
171
+ return mp4decrypt_path
172
+
173
+ # If not found, check in binary directory
174
+ downloader = Bento4Downloader()
175
+ base_dir = downloader.base_dir
176
+ local_path = os.path.join(base_dir, mp4decrypt)
177
+
178
+ if os.path.exists(local_path):
179
+ return local_path
180
+
181
+ # Download if not found
182
+ extracted_files = downloader.download()
183
+ return extracted_files[0] if extracted_files else None
184
+
185
+ except Exception as e:
186
+ logging.error(f"Error checking or downloading mp4decrypt: {e}")
187
+ return None
188
+
189
+ except Exception as e:
190
+ logging.error(f"Error checking or downloading mp4decrypt: {e}")
191
+ return None
@@ -568,4 +568,4 @@ def get_use_large_bar():
568
568
 
569
569
 
570
570
  # Initialize the ConfigManager when the module is imported
571
- config_manager = ConfigManager()
571
+ config_manager = ConfigManager()
@@ -1,8 +1,5 @@
1
1
  # 4.04.24
2
2
 
3
- import random
4
-
5
-
6
3
  # External library
7
4
  import ua_generator
8
5
 
@@ -20,11 +20,11 @@ from unidecode import unidecode
20
20
  from rich.console import Console
21
21
  from rich.prompt import Prompt
22
22
  from pathvalidate import sanitize_filename, sanitize_filepath
23
- from dns.resolver import dns
24
23
 
25
24
 
26
25
  # Internal utilities
27
26
  from .ffmpeg_installer import check_ffmpeg
27
+ from .bento4_installer import check_mp4decrypt
28
28
 
29
29
 
30
30
  # Variable
@@ -284,43 +284,6 @@ class InternManager():
284
284
  else:
285
285
  return f"{bytes / (1024 * 1024):.2f} MB/s"
286
286
 
287
- # def check_dns_provider(self):
288
- # """
289
- # Check if the system's current DNS server matches any known DNS providers.
290
-
291
- # Returns:
292
- # bool: True if the current DNS server matches a known provider,
293
- # False if no match is found or in case of errors
294
- # """
295
- # dns_providers = {
296
- # "Cloudflare": ["1.1.1.1", "1.0.0.1"],
297
- # "Google": ["8.8.8.8", "8.8.4.4"],
298
- # "OpenDNS": ["208.67.222.222", "208.67.220.220"],
299
- # "Quad9": ["9.9.9.9", "149.112.112.112"],
300
- # "AdGuard": ["94.140.14.14", "94.140.15.15"],
301
- # "Comodo": ["8.26.56.26", "8.20.247.20"],
302
- # "Level3": ["209.244.0.3", "209.244.0.4"],
303
- # "Norton": ["199.85.126.10", "199.85.127.10"],
304
- # "CleanBrowsing": ["185.228.168.9", "185.228.169.9"],
305
- # "Yandex": ["77.88.8.8", "77.88.8.1"]
306
- # }
307
-
308
- # try:
309
- # resolver = dns.resolver.Resolver()
310
- # nameservers = resolver.nameservers
311
-
312
- # if not nameservers:
313
- # return False
314
-
315
- # for server in nameservers:
316
- # for provider, ips in dns_providers.items():
317
- # if server in ips:
318
- # return True
319
- # return False
320
-
321
- # except Exception:
322
- # return False
323
-
324
287
  def check_dns_resolve(self, domains_list: list = None):
325
288
  """
326
289
  Check if the system's current DNS server can resolve a domain name.
@@ -348,6 +311,7 @@ class OsSummary:
348
311
  self.ffmpeg_path = None
349
312
  self.ffprobe_path = None
350
313
  self.ffplay_path = None
314
+ self.mp4decrypt_path = None
351
315
 
352
316
  def get_binary_directory(self):
353
317
  """Get the binary directory based on OS."""
@@ -442,10 +406,8 @@ class OsSummary:
442
406
  }
443
407
  arch = arch_map.get(arch, arch)
444
408
 
445
- # Check binary directory
409
+ # Check FFmpeg binaries
446
410
  if os.path.exists(binary_dir):
447
-
448
- # Search for any file containing 'ffmpeg' and the architecture
449
411
  ffmpeg_files = glob.glob(os.path.join(binary_dir, f'*ffmpeg*{arch}*'))
450
412
  ffprobe_files = glob.glob(os.path.join(binary_dir, f'*ffprobe*{arch}*'))
451
413
 
@@ -453,7 +415,6 @@ class OsSummary:
453
415
  self.ffmpeg_path = ffmpeg_files[0]
454
416
  self.ffprobe_path = ffprobe_files[0]
455
417
 
456
- # Set executable permissions if needed
457
418
  if system != 'windows':
458
419
  os.chmod(self.ffmpeg_path, 0o755)
459
420
  os.chmod(self.ffprobe_path, 0o755)
@@ -462,11 +423,19 @@ class OsSummary:
462
423
  else:
463
424
  self.ffmpeg_path, self.ffprobe_path, self.ffplay_path = check_ffmpeg()
464
425
 
426
+ # Check mp4decrypt
427
+ self.mp4decrypt_path = check_mp4decrypt()
428
+
465
429
  if not self.ffmpeg_path or not self.ffprobe_path:
466
430
  console.log("[red]Can't locate ffmpeg or ffprobe")
467
431
  sys.exit(0)
468
432
 
433
+ if not self.mp4decrypt_path:
434
+ console.log("[yellow]Warning: mp4decrypt not found")
435
+
469
436
  console.print(f"[cyan]Path: [red]ffmpeg [bold yellow]'{self.ffmpeg_path}'[/bold yellow][white], [red]ffprobe '[bold yellow]{self.ffprobe_path}'[/bold yellow]")
437
+ if self.mp4decrypt_path:
438
+ console.print(f"[cyan]Path: [red]mp4decrypt [bold yellow]'{self.mp4decrypt_path}'[/bold yellow]")
470
439
 
471
440
 
472
441
  os_manager = OsManager()
@@ -479,10 +448,6 @@ def suppress_output():
479
448
  with contextlib.redirect_stdout(io.StringIO()):
480
449
  yield
481
450
 
482
- def compute_sha1_hash(input_string: str) -> str:
483
- """Computes the SHA-1 hash of the input string."""
484
- return hashlib.sha1(input_string.encode()).hexdigest()
485
-
486
451
  def get_call_stack():
487
452
  """Retrieves the current call stack with details about each call."""
488
453
  stack = inspect.stack()
@@ -514,6 +479,10 @@ def get_ffprobe_path():
514
479
  """Returns the path of FFprobe."""
515
480
  return os_summary.ffprobe_path
516
481
 
482
+ def get_mp4decrypt_path():
483
+ """Returns the path of mp4decrypt."""
484
+ return os_summary.mp4decrypt_path
485
+
517
486
  def get_wvd_path():
518
487
  """
519
488
  Searches the system's binary folder and returns the path of the first file ending with 'wvd'.
@@ -3,4 +3,5 @@
3
3
  from .run import main
4
4
  from .Lib.Downloader.HLS.downloader import HLS_Downloader
5
5
  from .Lib.Downloader.MP4.downloader import MP4_downloader
6
- from .Lib.Downloader.TOR.downloader import TOR_downloader
6
+ from .Lib.Downloader.TOR.downloader import TOR_downloader
7
+ from .Lib.Downloader.DASH.downloader import DASH_Downloader
StreamingCommunity/run.py CHANGED
@@ -33,6 +33,7 @@ from StreamingCommunity.TelegramHelp.telegram_bot import get_bot_instance, Teleg
33
33
  SHOW_TRENDING = config_manager.get_bool('DEFAULT', 'show_trending')
34
34
  NOT_CLOSE_CONSOLE = config_manager.get_bool('DEFAULT', 'not_close')
35
35
  TELEGRAM_BOT = config_manager.get_bool('DEFAULT', 'telegram_bot')
36
+ BYPASS_DNS = config_manager.get_bool('DEFAULT', 'bypass_dns')
36
37
 
37
38
 
38
39
  # Variable
@@ -227,16 +228,16 @@ def main(script_id = 0):
227
228
  # Get all site hostname
228
229
  hostname_list = [hostname for site_info in config_manager.configSite.values() if (hostname := _extract_hostname(site_info.get('full_url')))]
229
230
 
230
- if not internet_manager.check_dns_resolve(hostname_list):
231
- print()
232
- console.print("[red] ERROR: DNS configuration is required!")
233
- console.print("[red]The program cannot function correctly without proper DNS settings.")
234
- console.print("[yellow]Please configure one of these DNS servers:")
235
- console.print("[blue]• Cloudflare (1.1.1.1) 'https://developers.cloudflare.com/1.1.1.1/setup/windows/'")
236
- console.print("[blue]• Quad9 (9.9.9.9) 'https://docs.quad9.net/Setup_Guides/Windows/Windows_10/'")
237
- console.print("\n[yellow]⚠️ The program will not work until you configure your DNS settings.")
238
-
239
- os._exit(0)
231
+ if not BYPASS_DNS:
232
+ if not internet_manager.check_dns_resolve(hostname_list):
233
+ console.print("[red] ERROR: DNS configuration is required!")
234
+ console.print("[red]The program cannot function correctly without proper DNS settings.")
235
+ console.print("[yellow]Please configure one of these DNS servers:")
236
+ console.print("[red]• Cloudflare (1.1.1.1) 'https://developers.cloudflare.com/1.1.1.1/setup/windows/'")
237
+ console.print("[red]• Quad9 (9.9.9.9) 'https://docs.quad9.net/Setup_Guides/Windows/Windows_10/'")
238
+ console.print("\n[yellow]⚠️ The program will not work until you configure your DNS settings.")
239
+
240
+ os._exit(0)
240
241
 
241
242
  # Load search functions
242
243
  search_functions = load_search_functions()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: StreamingCommunity
3
- Version: 3.2.5
3
+ Version: 3.2.7
4
4
  Home-page: https://github.com/Lovi-0/StreamingCommunity
5
5
  Author: Lovi-0
6
6
  Project-URL: Bug Reports, https://github.com/Lovi-0/StreamingCommunity/issues
@@ -18,7 +18,6 @@ Requires-Dist: certifi
18
18
  Requires-Dist: psutil
19
19
  Requires-Dist: unidecode
20
20
  Requires-Dist: curl_cffi
21
- Requires-Dist: dnspython
22
21
  Requires-Dist: jsbeautifier
23
22
  Requires-Dist: pathvalidate
24
23
  Requires-Dist: pycryptodomex
@@ -149,7 +148,7 @@ python run_streaming.py
149
148
  Download HTTP Live Streaming (HLS) content from m3u8 URLs.
150
149
 
151
150
  ```python
152
- from StreamingCommunity.Download import HLS_Downloader
151
+ from StreamingCommunity import HLS_Downloader
153
152
 
154
153
  # Initialize with m3u8 URL and optional output path
155
154
  downloader = HLS_Downloader(
@@ -170,7 +169,7 @@ See [HLS example](./Test/Download/HLS.py) for complete usage.
170
169
  Direct MP4 file downloader with support for custom headers and referrer.
171
170
 
172
171
  ```python
173
- from StreamingCommunity.Download import MP4_downloader
172
+ from StreamingCommunity import MP4_downloader
174
173
 
175
174
  # Basic usage
176
175
  downloader = MP4_downloader(
@@ -202,7 +201,7 @@ See [MP4 example](./Test/Download/MP4.py) for complete usage.
202
201
  Download content via torrent magnet links.
203
202
 
204
203
  ```python
205
- from StreamingCommunity.Download import TOR_downloader
204
+ from StreamingCommunity import TOR_downloader
206
205
 
207
206
  # Initialize torrent client
208
207
  client = TOR_downloader()
@@ -526,8 +525,6 @@ To enable qBittorrent integration, follow the setup guide [here](https://github.
526
525
  "default_video_workser": 12,
527
526
  "default_audio_workser": 12,
528
527
  "segment_timeout": 8,
529
- "download_audio": true,
530
- "merge_audio": true,
531
528
  "specific_list_audio": [
532
529
  "ita"
533
530
  ],
@@ -552,7 +549,6 @@ To enable qBittorrent integration, follow the setup guide [here](https://github.
552
549
 
553
550
  #### Audio Settings
554
551
  - `download_audio`: Whether to download audio tracks
555
- - `merge_audio`: Whether to merge audio with video
556
552
  - `specific_list_audio`: List of audio languages to download
557
553
  * Can be changed with `--specific_list_audio ita,eng`
558
554
 
@@ -1,6 +1,6 @@
1
- StreamingCommunity/__init__.py,sha256=Cw-N0VCg7sef1WqdtvVwrhs1zc4LoUhs5C8k7vpM1lQ,207
1
+ StreamingCommunity/__init__.py,sha256=NPxefEfOANbfmXVfYMlofaZfzcMMcrUUpjWx81X_cQQ,267
2
2
  StreamingCommunity/global_search.py,sha256=ip3D0OKNRTXHpe_Wy7v2KM-yNZdnnbG5FOBYSSk6wB8,12401
3
- StreamingCommunity/run.py,sha256=zMNYMPXBNlsZzctuE3aZmteZ7GASd9w62AL0ErIlgoY,14143
3
+ StreamingCommunity/run.py,sha256=_7e8BEGFCCHdKSv64q6M3IenxT0-TQ629VJaAZMPhhY,14242
4
4
  StreamingCommunity/Api/Player/ddl.py,sha256=cPinK99iX4ThvAHLlzcACcnFvM-M_NK0f4imh9PQY1I,2174
5
5
  StreamingCommunity/Api/Player/hdplayer.py,sha256=TTI_DNR9swFlUayJPfZBwqcH2pmw-oLk9PHu725wxnY,1936
6
6
  StreamingCommunity/Api/Player/maxstream.py,sha256=JlVTCAo9ze0wF2h0eNPYqdorhwK7DPXpmLAyHMnT7-Y,5017
@@ -12,52 +12,52 @@ StreamingCommunity/Api/Player/vixcloud.py,sha256=0DnukAIBqGqTmL9I6JkpAkHLMf1UG1D
12
12
  StreamingCommunity/Api/Player/Helper/Vixcloud/js_parser.py,sha256=U-8QlD5kGzIk3-4t4D6QyYmiDe8UBrSuVi1YHRQb7AU,4295
13
13
  StreamingCommunity/Api/Player/Helper/Vixcloud/util.py,sha256=mTEAND-KepqRHRYlAorJ1mc6ICB-f0Whhp5OZ8R4MJ8,5306
14
14
  StreamingCommunity/Api/Site/altadefinizione/__init__.py,sha256=6CF9MCh3AstetNlTqG_uzRUQEmMR4iix2vPzGbl3EWM,4180
15
- StreamingCommunity/Api/Site/altadefinizione/film.py,sha256=sEPIZFU0Tvvgkk3-KD6yypmvISqLuQWNzl6Q2F76a00,3716
16
- StreamingCommunity/Api/Site/altadefinizione/series.py,sha256=-rCYx-Fa7aZiYepcIne7OdH1aaUFZZAPX-ToBv6mxFs,8192
15
+ StreamingCommunity/Api/Site/altadefinizione/film.py,sha256=fMrDew-M9S4ZTXNTYir4GJexQjG5aSlIYL_k-92iWKc,3701
16
+ StreamingCommunity/Api/Site/altadefinizione/series.py,sha256=I_Fol3grdTZmLwLFskkU7v9fcddzQUENtWmgeNXoC4s,8177
17
17
  StreamingCommunity/Api/Site/altadefinizione/site.py,sha256=2kUNQ8ebYlX5dkSql-CvEhU01TOTNtuyEMIAD6SC3lg,2865
18
18
  StreamingCommunity/Api/Site/altadefinizione/util/ScrapeSerie.py,sha256=9iulNlnNAhTfI5iKNW3I6pZqYeYwovAswa13L3LPGDM,4251
19
19
  StreamingCommunity/Api/Site/animeunity/__init__.py,sha256=cLuZOgtQ-1vKIKf3iJjznBu3ET1Q3WZtO0UoK9U0YPU,4034
20
20
  StreamingCommunity/Api/Site/animeunity/film.py,sha256=Vqg6yag2siR-Y3ougBsV8mzdQXChxg6ghz_KVXFQ3pE,998
21
- StreamingCommunity/Api/Site/animeunity/serie.py,sha256=ib86sLXYsYbrvrFNbzKdhlwMUO3DT7JS5yTTrrSr2jk,5711
21
+ StreamingCommunity/Api/Site/animeunity/serie.py,sha256=wqpbry4wkkwc5M2sf3k6icQRRZ7Jw9hv4BE8BlMHec0,5696
22
22
  StreamingCommunity/Api/Site/animeunity/site.py,sha256=GLULPQATMHcXiH99d772v1ICH-PnnZgSM3q5__eN-gs,4977
23
23
  StreamingCommunity/Api/Site/animeunity/util/ScrapeSerie.py,sha256=UladSvOlTEVLiV0-rAz45zrET5qRHMuTGuKEpeQoumU,3872
24
24
  StreamingCommunity/Api/Site/animeworld/__init__.py,sha256=fjStJyOl6VBVDgoi6wr2yA0CQ_UQ4atTBzal0gOBgRM,2822
25
- StreamingCommunity/Api/Site/animeworld/film.py,sha256=W9KOS9Wvx3Mlqx5WojR-NgnF9WX8mI79JZPS7UwG-dc,1763
26
- StreamingCommunity/Api/Site/animeworld/serie.py,sha256=MXyV1fK05jPW4iV9NWrRKW-R4ect-TSN78-2APayniU,3516
25
+ StreamingCommunity/Api/Site/animeworld/film.py,sha256=Ysp0k5AlrOsl19S9LV4nwVg8cjFf5w0FZRO9CiO6NxA,1748
26
+ StreamingCommunity/Api/Site/animeworld/serie.py,sha256=b1yuBnLNqJ-IWEVqLnQuYv6VbUQ60a5YFpZbJrS3lnI,3486
27
27
  StreamingCommunity/Api/Site/animeworld/site.py,sha256=HBUAYiOa-UPGAO4lyTL1qIqqpDNVhWRHZ-nyLFltl7I,3702
28
28
  StreamingCommunity/Api/Site/animeworld/util/ScrapeSerie.py,sha256=EDTouftxigb4ojTEGWC0sOgOLCNjE1-1GFEMrK-qzRQ,3615
29
29
  StreamingCommunity/Api/Site/cb01new/__init__.py,sha256=95M3DiNbLbZ6v1oFkPuAPEVJWf12W2JzJvxZKjZs_V8,2071
30
- StreamingCommunity/Api/Site/cb01new/film.py,sha256=vjd1ftm4LhxxG0TTKEwlOXtx0AYgxBbV5ZlQH8aSxGU,1695
30
+ StreamingCommunity/Api/Site/cb01new/film.py,sha256=mjJQFoh8aTp7ydmr6_WLT0G0_HfEDGeVXp3QfSalVRw,1680
31
31
  StreamingCommunity/Api/Site/cb01new/site.py,sha256=82GPxjOyY7Dlj1WbA0YNovgbKhuF3Vmca07IVXGh6lE,2139
32
32
  StreamingCommunity/Api/Site/crunchyroll/__init__.py,sha256=hBb29hfYD_rGMkhhAknnkBOB-oG_yE2rfUtbPw0wPLQ,3456
33
- StreamingCommunity/Api/Site/crunchyroll/film.py,sha256=01WAHToRQdOkCJ1_eRgumR4ZGoJuhxvzUW7vBNn8K5g,2624
34
- StreamingCommunity/Api/Site/crunchyroll/series.py,sha256=RSeqlhDNFrITfCGnvXYE5XMDt6digcmNpaRAz-DQHj8,7111
33
+ StreamingCommunity/Api/Site/crunchyroll/film.py,sha256=AkDWcvDe43zSJH_Pxig4JmagDJuUw2PkB_q6dChL7MQ,2559
34
+ StreamingCommunity/Api/Site/crunchyroll/series.py,sha256=VCBnVrOj_Cmu4pAWGSfAgf-7GP8GsmSINLfHBwZ7f6U,7209
35
35
  StreamingCommunity/Api/Site/crunchyroll/site.py,sha256=BmOQw060M7KvH_wL-V_x1s6918rxM_Pp54tuNgG5ju0,3210
36
- StreamingCommunity/Api/Site/crunchyroll/util/ScrapeSerie.py,sha256=fH8W_LjI7upc3pZlKRdW0bRwyb-gfNy5CzxqmWFOxaQ,7290
36
+ StreamingCommunity/Api/Site/crunchyroll/util/ScrapeSerie.py,sha256=ZY6z4pT5q7igiNZnJAvE9x0WiORTvFSH-U_CpqOzusA,7855
37
37
  StreamingCommunity/Api/Site/crunchyroll/util/get_license.py,sha256=KpVvJbGUTLeVD-tt8r7ajBPWVT7Tm6GrKwzpW8CS-tg,6881
38
38
  StreamingCommunity/Api/Site/guardaserie/__init__.py,sha256=vnbt1DVG6nmHaLSUOO_2NQYi9iTiOPLrwtvUd_DZDZg,2800
39
- StreamingCommunity/Api/Site/guardaserie/series.py,sha256=U9rMZCjRqHLFjo468vikxl-2RqO6DCJjebB-G8Y6LDg,6492
39
+ StreamingCommunity/Api/Site/guardaserie/series.py,sha256=o7jjf64E95A2rGzYSEARTsZgOlQHeuXtfp4IlD4GtTU,6462
40
40
  StreamingCommunity/Api/Site/guardaserie/site.py,sha256=z9PKJesarOFlIrCeaed5095poJWYroVoWRV1LYTR4E4,2252
41
41
  StreamingCommunity/Api/Site/guardaserie/util/ScrapeSerie.py,sha256=hPul0-9sgi0IZplHn9UywtpAa3xhVKDC0lefb5l81-g,4413
42
42
  StreamingCommunity/Api/Site/mediasetinfinity/__init__.py,sha256=dBKs42xEuIjHZ8mnqmjpdySjFYYuwDi6drWbBvzMzR8,3257
43
- StreamingCommunity/Api/Site/mediasetinfinity/film.py,sha256=suOqSPA4852h5u33JONNwMONDGI-YB7-KaF0Rqp0kps,2294
44
- StreamingCommunity/Api/Site/mediasetinfinity/series.py,sha256=c3s7J99ExNigrMAJmZtdI4dKzEpFf2VRuMXGq2z80iE,6879
43
+ StreamingCommunity/Api/Site/mediasetinfinity/film.py,sha256=mOKktBmlW90mRDZfENWNpp5l2svRGXeo6MG0S7X2nlM,2582
44
+ StreamingCommunity/Api/Site/mediasetinfinity/series.py,sha256=JLcXcq5OKqBCYwcuworzHl2DNXO2ivxV-cqF8HaqKD8,7131
45
45
  StreamingCommunity/Api/Site/mediasetinfinity/site.py,sha256=SVNcqcQAOxAKw0mcUzeQqDbfcnRFEPtxKNjl2Xe7FlY,3240
46
46
  StreamingCommunity/Api/Site/mediasetinfinity/util/ScrapeSerie.py,sha256=-PUhtJ1Umb1SjLh6Ujs0cOmOi-uC0WrSkIecv6XDhgQ,9382
47
47
  StreamingCommunity/Api/Site/mediasetinfinity/util/fix_mpd.py,sha256=B7uZfQ8X4p8KsiPVangFSs5rKKKpA3tavjPCdNrqyCc,1712
48
- StreamingCommunity/Api/Site/mediasetinfinity/util/get_license.py,sha256=Goqix4dExqJUL500ohdIi0R28kknaSz_rXXX288d6O0,6461
48
+ StreamingCommunity/Api/Site/mediasetinfinity/util/get_license.py,sha256=-uM5G2M-9MwJq-TyXEV6PcpsWBoGdJ8KcuNQwgn5cos,6330
49
49
  StreamingCommunity/Api/Site/raiplay/__init__.py,sha256=6Hjkc_C0du_stc9cOKJIyWjW-YQPMmJLoLXZpiwX1S8,3106
50
- StreamingCommunity/Api/Site/raiplay/film.py,sha256=wBv5kQXx7-aCKhAZ5LABZ8zUzu_jPGdXOl9OM2p8dpY,1982
51
- StreamingCommunity/Api/Site/raiplay/series.py,sha256=uQVbeA_g3Z1Ciqeq99gsY2F8mC5DssH3ueGbCW8gd9Q,6161
50
+ StreamingCommunity/Api/Site/raiplay/film.py,sha256=uGN4sMMSkUJHjOUZbI-8yjpy5oGTcw1sNTPxct_PKvc,1967
51
+ StreamingCommunity/Api/Site/raiplay/series.py,sha256=Lfxe0cvsipcDZbX6W2bYLbnuXb-pcEEgBT-Tq8CXwaM,6147
52
52
  StreamingCommunity/Api/Site/raiplay/site.py,sha256=kWo2YPcUOPgsThJU_RahnDwJP4QpkmgzdzRqtoubR5U,3166
53
53
  StreamingCommunity/Api/Site/raiplay/util/ScrapeSerie.py,sha256=V7fFP9KLuMXitRsHtInxUJBcGClfSk_tOUNWFC8pG5A,5807
54
54
  StreamingCommunity/Api/Site/streamingcommunity/__init__.py,sha256=q5F3e2h7fuYKGLMfXOzK71sGfPW38CYP-dfGjwFe3mQ,5577
55
- StreamingCommunity/Api/Site/streamingcommunity/film.py,sha256=1hnKFm4Cw8YWp5FgGAVVlJrY_U8fzm5nBcjAWvCLcDk,2738
56
- StreamingCommunity/Api/Site/streamingcommunity/series.py,sha256=twmRNl8urVx16HBz1ZlQsnPku2gtNTbidr2b4Dt583M,8994
55
+ StreamingCommunity/Api/Site/streamingcommunity/film.py,sha256=ma9cLfU4w_e-qoN2JMLZdB4_LZoYa38W79y_MYstwTg,2723
56
+ StreamingCommunity/Api/Site/streamingcommunity/series.py,sha256=TlqvvOdB1FCHwsGCfvcBE6bzcJbOEfPC9lGiMrDm5vU,8952
57
57
  StreamingCommunity/Api/Site/streamingcommunity/site.py,sha256=MMi4mcKu0iPhud685IVW4xc7hFkJe09OjT6L90tsRHk,3985
58
58
  StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py,sha256=vnqVwDb4sxEXzMcr9B4ZZHFuADwcHSMCa3VMguKIe_U,5555
59
59
  StreamingCommunity/Api/Site/streamingwatch/__init__.py,sha256=Swp2KHYBH96W8yBbjGF5x-xjnoal7hNj1JE05CWMsz4,3337
60
- StreamingCommunity/Api/Site/streamingwatch/film.py,sha256=4tTatZSCMSkxEzhGD7PoexheBye_n2LByvfzfUlDNKE,1652
60
+ StreamingCommunity/Api/Site/streamingwatch/film.py,sha256=bLV3KjF7KFhpp8BvfQrpSFP9R__YmTlB-ypJBSivT5o,1637
61
61
  StreamingCommunity/Api/Site/streamingwatch/series.py,sha256=ak4RdpR2-IuAimP3x5ZqEv9CH2_RcTZGN1hXlpoixJo,6141
62
62
  StreamingCommunity/Api/Site/streamingwatch/site.py,sha256=dHEL5_3nSBynlXz82IUbCHkxIpuvhmE2aRpdE1b6wq8,3448
63
63
  StreamingCommunity/Api/Site/streamingwatch/util/ScrapeSerie.py,sha256=Ui_2Vccf6C_ZLLMxLbUL0r5n8mWQiQTl4YZQAhXRf0g,4268
@@ -70,11 +70,11 @@ StreamingCommunity/Api/Template/Util/manage_ep.py,sha256=FYe2DC9SXIXzlRYI7fW4ieB
70
70
  StreamingCommunity/Lib/Downloader/__init__.py,sha256=JhbBh5hOnSM7VmtkxJ7zZ_FtWEC1JdnKThsSBjLV5FY,140
71
71
  StreamingCommunity/Lib/Downloader/DASH/cdm_helpher.py,sha256=at7_pYAbb_391PrQXWIxPZYT9gaS7qrVgKMdbQSMSyw,4714
72
72
  StreamingCommunity/Lib/Downloader/DASH/decrypt.py,sha256=RuzxsXjJKKzdbbUESfujCXqg_t1brOJLAvVNFWej48o,2353
73
- StreamingCommunity/Lib/Downloader/DASH/downloader.py,sha256=5Qo0pJXp6ttop_D7rodupkPpzl42ecIj9kDtAUx-zAI,8315
74
- StreamingCommunity/Lib/Downloader/DASH/parser.py,sha256=QUyYhmu-zI2GieiNZaoOoDVPTclSKXsrdeToAtbC9yI,9858
73
+ StreamingCommunity/Lib/Downloader/DASH/downloader.py,sha256=nuYZLM_Np0TKZ7wc7hYL5hivrEzqQ7sdvfx40LnVP_Q,8093
74
+ StreamingCommunity/Lib/Downloader/DASH/parser.py,sha256=ZW6oErH9i8Nrp6yPc8usiRBv9ftkfVYh46wEg8MOl6o,9835
75
75
  StreamingCommunity/Lib/Downloader/DASH/segments.py,sha256=ZV9FYibbS8E722MHVxl16N6rN1tPioZTNqO4jWBpGGo,12672
76
- StreamingCommunity/Lib/Downloader/HLS/downloader.py,sha256=035NFocH-wgAn1CPrC6zE1JfdU7c6Smp6G0WgCn_ecE,21630
77
- StreamingCommunity/Lib/Downloader/HLS/segments.py,sha256=I0kQlpK_txi6p5zXwtueZxkYINfmCDcErdHIUxgOAHY,18099
76
+ StreamingCommunity/Lib/Downloader/HLS/downloader.py,sha256=yzusDF32uSR_MZqdrNoJ27nR2VXRvflckTxiw04JoNk,21189
77
+ StreamingCommunity/Lib/Downloader/HLS/segments.py,sha256=0uEjyG8vZLKSEkZGmkheeZXqWCyF8-UbuFI1tEil5JM,12257
78
78
  StreamingCommunity/Lib/Downloader/MP4/downloader.py,sha256=OBObY930wrOG0IUlDRROOfgU_u6uYHvckED4nnPjXzs,7367
79
79
  StreamingCommunity/Lib/Downloader/TOR/downloader.py,sha256=CrRGdLGI_45AnhtTZm8r7KO7uGmU9k6pywy-qO18LG8,19242
80
80
  StreamingCommunity/Lib/FFmpeg/__init__.py,sha256=6PBsZdE1jrD2EKOVyx3JEHnyDZzVeKlPkH5T0zyfOgU,130
@@ -90,21 +90,22 @@ StreamingCommunity/Lib/TMBD/__init__.py,sha256=XzE42tw3Ws59DD1PF8WmGtZ0D4D7Hk3Af
90
90
  StreamingCommunity/Lib/TMBD/obj_tmbd.py,sha256=dRSvJFS5yqmsBZcw2wqbStcBtXNjU_3n5czMyremAtU,1187
91
91
  StreamingCommunity/Lib/TMBD/tmdb.py,sha256=byg0EFnlmd9JeLvn1N9K3QkB1KEfeMuFa7OVfGqks1Y,10685
92
92
  StreamingCommunity/TelegramHelp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
- StreamingCommunity/TelegramHelp/config.json,sha256=VhZMgjueZGqAoNuysb7gsuNUtDNEF74JCl0z497raDY,1521
93
+ StreamingCommunity/TelegramHelp/config.json,sha256=4Tnram-K5wNK0QjWY9R4VpiHfGnMbahvDEdJ2VBWOoc,1460
94
94
  StreamingCommunity/TelegramHelp/telegram_bot.py,sha256=zCqj7xBofh9FYfEYl55mgT945jqtKo7qJhn-SMLvAvA,26455
95
95
  StreamingCommunity/Upload/update.py,sha256=ZGQHcnTLAfXla_PqvykDeg2-WKOYfX9zX2I3KrdKHpc,3814
96
- StreamingCommunity/Upload/version.py,sha256=uqq5tWhV2LPM2Z6StoTErOliammnmvGkcMB0hQLcrww,171
96
+ StreamingCommunity/Upload/version.py,sha256=xHCI5wpbmfATQoDKu6smmB7Jq_R3elpw8qGq48nmaA8,171
97
+ StreamingCommunity/Util/bento4_installer.py,sha256=P5ipziMCvezxan8GUh9vm8B1LXGyHusFVDf842LSwis,6966
97
98
  StreamingCommunity/Util/color.py,sha256=NvD0Eni-25oOOkY-szCEoc0lGvzQxyL7xhM0RE4EvUM,458
98
- StreamingCommunity/Util/config_json.py,sha256=Q1V1Umrp4LEkelNQ638_ANAsGEioHzYnvy3FfQOJAHs,24227
99
+ StreamingCommunity/Util/config_json.py,sha256=4sn-vvrYybZMOlT-blx3bM9njxQRQS_HwSPfqQ0qZ94,24226
99
100
  StreamingCommunity/Util/ffmpeg_installer.py,sha256=yRVIPwbh05tZ-duZmXkH0qasLNxaQCAT_E4cTP79Z3c,14890
100
- StreamingCommunity/Util/headers.py,sha256=TItkaFMx1GqsVNEIS3Tr0BGU5EHyF-HkZVliHORT3P8,308
101
+ StreamingCommunity/Util/headers.py,sha256=RP3A6Gr8UB8VU6uzw_yDOjEKkIFKpi7Gi6_w2ACxE30,292
101
102
  StreamingCommunity/Util/logger.py,sha256=9kGD6GmWj2pM8ADpJc85o7jm8DD0c5Aguqnq-9kmxos,3314
102
103
  StreamingCommunity/Util/message.py,sha256=81vPmsGBusovIhheIO4Ec6p7BYvMj1wE_CthtRyp6OM,1333
103
- StreamingCommunity/Util/os.py,sha256=rQZCZ2ZE7rOm_dalcao-FBAY9aM7mAnzfSK8cl8FEKs,18063
104
+ StreamingCommunity/Util/os.py,sha256=vLNRGWsQYTSUGdpj19fR_n0i-6bhZYeJh5IZpahdyKM,16832
104
105
  StreamingCommunity/Util/table.py,sha256=Nw5PlsvfEIOQZWy5VhsU5OK3heuBXGwsqmLl0k8yQzc,9813
105
- streamingcommunity-3.2.5.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
106
- streamingcommunity-3.2.5.dist-info/METADATA,sha256=k0hN5gZuISzNryn-yiqhBIfT8dDUYWZcAdPmEsuTEmg,25476
107
- streamingcommunity-3.2.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
108
- streamingcommunity-3.2.5.dist-info/entry_points.txt,sha256=Qph9XYfDC8n4LfDLOSl6gJGlkb9eFb5f-JOr_Wb_5rk,67
109
- streamingcommunity-3.2.5.dist-info/top_level.txt,sha256=YsOcxKP-WOhWpIWgBlh0coll9XUx7aqmRPT7kmt3fH0,19
110
- streamingcommunity-3.2.5.dist-info/RECORD,,
106
+ streamingcommunity-3.2.7.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
107
+ streamingcommunity-3.2.7.dist-info/METADATA,sha256=pCGVpbT5rIjdWH1qxZcIUxdNWvIAWd78bA0KIJ0hk4U,25312
108
+ streamingcommunity-3.2.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
109
+ streamingcommunity-3.2.7.dist-info/entry_points.txt,sha256=Qph9XYfDC8n4LfDLOSl6gJGlkb9eFb5f-JOr_Wb_5rk,67
110
+ streamingcommunity-3.2.7.dist-info/top_level.txt,sha256=YsOcxKP-WOhWpIWgBlh0coll9XUx7aqmRPT7kmt3fH0,19
111
+ streamingcommunity-3.2.7.dist-info/RECORD,,