StreamingCommunity 3.3.9__py3-none-any.whl → 3.4.0__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.
- StreamingCommunity/Api/Player/hdplayer.py +0 -5
- StreamingCommunity/Api/Player/mediapolisvod.py +4 -13
- StreamingCommunity/Api/Player/supervideo.py +3 -8
- StreamingCommunity/Api/Player/sweetpixel.py +1 -9
- StreamingCommunity/Api/Player/vixcloud.py +5 -16
- StreamingCommunity/Api/Site/altadefinizione/film.py +4 -15
- StreamingCommunity/Api/Site/altadefinizione/site.py +2 -7
- StreamingCommunity/Api/Site/altadefinizione/util/ScrapeSerie.py +2 -7
- StreamingCommunity/Api/Site/animeunity/site.py +9 -24
- StreamingCommunity/Api/Site/animeunity/util/ScrapeSerie.py +11 -27
- StreamingCommunity/Api/Site/animeworld/film.py +4 -2
- StreamingCommunity/Api/Site/animeworld/site.py +3 -11
- StreamingCommunity/Api/Site/animeworld/util/ScrapeSerie.py +1 -4
- StreamingCommunity/Api/Site/crunchyroll/film.py +4 -5
- StreamingCommunity/Api/Site/crunchyroll/series.py +2 -3
- StreamingCommunity/Api/Site/crunchyroll/site.py +2 -9
- StreamingCommunity/Api/Site/crunchyroll/util/ScrapeSerie.py +5 -27
- StreamingCommunity/Api/Site/crunchyroll/util/get_license.py +11 -26
- StreamingCommunity/Api/Site/guardaserie/site.py +4 -12
- StreamingCommunity/Api/Site/guardaserie/util/ScrapeSerie.py +3 -10
- StreamingCommunity/Api/Site/mediasetinfinity/film.py +11 -12
- StreamingCommunity/Api/Site/mediasetinfinity/series.py +1 -2
- StreamingCommunity/Api/Site/mediasetinfinity/site.py +3 -11
- StreamingCommunity/Api/Site/mediasetinfinity/util/ScrapeSerie.py +39 -50
- StreamingCommunity/Api/Site/mediasetinfinity/util/fix_mpd.py +3 -3
- StreamingCommunity/Api/Site/mediasetinfinity/util/get_license.py +7 -25
- StreamingCommunity/Api/Site/raiplay/film.py +6 -7
- StreamingCommunity/Api/Site/raiplay/series.py +0 -2
- StreamingCommunity/Api/Site/raiplay/site.py +3 -11
- StreamingCommunity/Api/Site/raiplay/util/ScrapeSerie.py +4 -11
- StreamingCommunity/Api/Site/raiplay/util/get_license.py +3 -12
- StreamingCommunity/Api/Site/streamingcommunity/film.py +5 -16
- StreamingCommunity/Api/Site/streamingcommunity/site.py +3 -22
- StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py +11 -26
- StreamingCommunity/Api/Site/streamingwatch/__init__.py +1 -0
- StreamingCommunity/Api/Site/streamingwatch/film.py +4 -2
- StreamingCommunity/Api/Site/streamingwatch/series.py +1 -1
- StreamingCommunity/Api/Site/streamingwatch/site.py +4 -18
- StreamingCommunity/Api/Site/streamingwatch/util/ScrapeSerie.py +0 -3
- StreamingCommunity/Api/Template/config_loader.py +0 -7
- StreamingCommunity/Lib/Downloader/DASH/decrypt.py +54 -1
- StreamingCommunity/Lib/Downloader/DASH/downloader.py +131 -54
- StreamingCommunity/Lib/Downloader/DASH/parser.py +2 -3
- StreamingCommunity/Lib/Downloader/DASH/segments.py +66 -54
- StreamingCommunity/Lib/Downloader/HLS/downloader.py +31 -50
- StreamingCommunity/Lib/Downloader/HLS/segments.py +23 -28
- StreamingCommunity/Lib/FFmpeg/capture.py +37 -5
- StreamingCommunity/Lib/FFmpeg/command.py +32 -90
- StreamingCommunity/Lib/TMBD/tmdb.py +2 -4
- StreamingCommunity/TelegramHelp/config.json +0 -1
- StreamingCommunity/Upload/version.py +1 -1
- StreamingCommunity/Util/config_json.py +28 -21
- StreamingCommunity/Util/http_client.py +28 -0
- StreamingCommunity/Util/os.py +16 -6
- {streamingcommunity-3.3.9.dist-info → streamingcommunity-3.4.0.dist-info}/METADATA +1 -3
- {streamingcommunity-3.3.9.dist-info → streamingcommunity-3.4.0.dist-info}/RECORD +60 -60
- {streamingcommunity-3.3.9.dist-info → streamingcommunity-3.4.0.dist-info}/WHEEL +0 -0
- {streamingcommunity-3.3.9.dist-info → streamingcommunity-3.4.0.dist-info}/entry_points.txt +0 -0
- {streamingcommunity-3.3.9.dist-info → streamingcommunity-3.4.0.dist-info}/licenses/LICENSE +0 -0
- {streamingcommunity-3.3.9.dist-info → streamingcommunity-3.4.0.dist-info}/top_level.txt +0 -0
|
@@ -318,7 +318,7 @@ class ConfigManager:
|
|
|
318
318
|
logging.error(f"Download of {filename} failed: {e}")
|
|
319
319
|
raise
|
|
320
320
|
|
|
321
|
-
def get(self, section: str, key: str, data_type: type = str, from_site: bool = False) -> Any:
|
|
321
|
+
def get(self, section: str, key: str, data_type: type = str, from_site: bool = False, default: Any = None) -> Any:
|
|
322
322
|
"""
|
|
323
323
|
Read a value from the configuration.
|
|
324
324
|
|
|
@@ -327,9 +327,10 @@ class ConfigManager:
|
|
|
327
327
|
key (str): Key to read
|
|
328
328
|
data_type (type, optional): Expected data type. Default: str
|
|
329
329
|
from_site (bool, optional): Whether to read from the site configuration. Default: False
|
|
330
|
+
default (Any, optional): Default value if key is not found. Default: None
|
|
330
331
|
|
|
331
332
|
Returns:
|
|
332
|
-
Any: The key value converted to the specified data type
|
|
333
|
+
Any: The key value converted to the specified data type, or default if not found
|
|
333
334
|
"""
|
|
334
335
|
cache_key = f"{'site' if from_site else 'config'}.{section}.{key}"
|
|
335
336
|
logging.info(f"Reading key: {cache_key}")
|
|
@@ -343,9 +344,15 @@ class ConfigManager:
|
|
|
343
344
|
|
|
344
345
|
# Check if the section and key exist
|
|
345
346
|
if section not in config_source:
|
|
347
|
+
if default is not None:
|
|
348
|
+
logging.info(f"Section '{section}' not found. Returning default value.")
|
|
349
|
+
return default
|
|
346
350
|
raise ValueError(f"Section '{section}' not found in {'site' if from_site else 'main'} configuration")
|
|
347
351
|
|
|
348
352
|
if key not in config_source[section]:
|
|
353
|
+
if default is not None:
|
|
354
|
+
logging.info(f"Key '{key}' not found in section '{section}'. Returning default value.")
|
|
355
|
+
return default
|
|
349
356
|
raise ValueError(f"Key '{key}' not found in section '{section}' of {'site' if from_site else 'main'} configuration")
|
|
350
357
|
|
|
351
358
|
# Get and convert the value
|
|
@@ -356,7 +363,7 @@ class ConfigManager:
|
|
|
356
363
|
self.cache[cache_key] = converted_value
|
|
357
364
|
|
|
358
365
|
return converted_value
|
|
359
|
-
|
|
366
|
+
|
|
360
367
|
def _convert_to_data_type(self, value: Any, data_type: type) -> Any:
|
|
361
368
|
"""
|
|
362
369
|
Convert the value to the specified data type.
|
|
@@ -399,30 +406,30 @@ class ConfigManager:
|
|
|
399
406
|
raise ValueError(f"Cannot convert '{value}' to {data_type.__name__}: {str(e)}")
|
|
400
407
|
|
|
401
408
|
# Getters for main configuration
|
|
402
|
-
def get_string(self, section: str, key: str) -> str:
|
|
409
|
+
def get_string(self, section: str, key: str, default: str = None) -> str:
|
|
403
410
|
"""Read a string from the main configuration."""
|
|
404
|
-
return self.get(section, key, str)
|
|
405
|
-
|
|
406
|
-
def get_int(self, section: str, key: str) -> int:
|
|
411
|
+
return self.get(section, key, str, default=default)
|
|
412
|
+
|
|
413
|
+
def get_int(self, section: str, key: str, default: int = None) -> int:
|
|
407
414
|
"""Read an integer from the main configuration."""
|
|
408
|
-
return self.get(section, key, int)
|
|
409
|
-
|
|
410
|
-
def get_float(self, section: str, key: str) -> float:
|
|
415
|
+
return self.get(section, key, int, default=default)
|
|
416
|
+
|
|
417
|
+
def get_float(self, section: str, key: str, default: float = None) -> float:
|
|
411
418
|
"""Read a float from the main configuration."""
|
|
412
|
-
return self.get(section, key, float)
|
|
413
|
-
|
|
414
|
-
def get_bool(self, section: str, key: str) -> bool:
|
|
419
|
+
return self.get(section, key, float, default=default)
|
|
420
|
+
|
|
421
|
+
def get_bool(self, section: str, key: str, default: bool = None) -> bool:
|
|
415
422
|
"""Read a boolean from the main configuration."""
|
|
416
|
-
return self.get(section, key, bool)
|
|
417
|
-
|
|
418
|
-
def get_list(self, section: str, key: str) -> List[str]:
|
|
423
|
+
return self.get(section, key, bool, default=default)
|
|
424
|
+
|
|
425
|
+
def get_list(self, section: str, key: str, default: List[str] = None) -> List[str]:
|
|
419
426
|
"""Read a list from the main configuration."""
|
|
420
|
-
return self.get(section, key, list)
|
|
421
|
-
|
|
422
|
-
def get_dict(self, section: str, key: str) -> dict:
|
|
427
|
+
return self.get(section, key, list, default=default)
|
|
428
|
+
|
|
429
|
+
def get_dict(self, section: str, key: str, default: dict = None) -> dict:
|
|
423
430
|
"""Read a dictionary from the main configuration."""
|
|
424
|
-
return self.get(section, key, dict)
|
|
425
|
-
|
|
431
|
+
return self.get(section, key, dict, default=default)
|
|
432
|
+
|
|
426
433
|
# Getters for site configuration
|
|
427
434
|
def get_site(self, section: str, key: str) -> Any:
|
|
428
435
|
"""Read a value from the site configuration."""
|
|
@@ -8,6 +8,7 @@ from typing import Any, Dict, Optional, Union
|
|
|
8
8
|
|
|
9
9
|
# External library
|
|
10
10
|
import httpx
|
|
11
|
+
from curl_cffi import requests
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
# Logic class
|
|
@@ -104,6 +105,33 @@ def create_async_client(
|
|
|
104
105
|
)
|
|
105
106
|
|
|
106
107
|
|
|
108
|
+
def create_client_curl(
|
|
109
|
+
*,
|
|
110
|
+
headers: Optional[Dict[str, str]] = None,
|
|
111
|
+
cookies: Optional[Dict[str, str]] = None,
|
|
112
|
+
timeout: Optional[Union[int, float]] = None,
|
|
113
|
+
verify: Optional[bool] = None,
|
|
114
|
+
proxies: Optional[Dict[str, str]] = None,
|
|
115
|
+
impersonate: str = "chrome136",
|
|
116
|
+
allow_redirects: bool = True,
|
|
117
|
+
):
|
|
118
|
+
"""Factory for a configured curl_cffi session."""
|
|
119
|
+
session = requests.Session()
|
|
120
|
+
session.headers.update(_default_headers(headers))
|
|
121
|
+
if cookies:
|
|
122
|
+
session.cookies.update(cookies)
|
|
123
|
+
session.timeout = timeout if timeout is not None else _get_timeout()
|
|
124
|
+
session.verify = _get_verify() if verify is None else verify
|
|
125
|
+
if proxies is not None:
|
|
126
|
+
session.proxies = proxies
|
|
127
|
+
elif _get_proxies():
|
|
128
|
+
session.proxies = _get_proxies()
|
|
129
|
+
session.impersonate = impersonate
|
|
130
|
+
session.allow_redirects = allow_redirects
|
|
131
|
+
|
|
132
|
+
return session
|
|
133
|
+
|
|
134
|
+
|
|
107
135
|
def _sleep_with_backoff(attempt: int, base: float = 1.1, cap: float = 10.0) -> None:
|
|
108
136
|
"""Exponential backoff with jitter."""
|
|
109
137
|
delay = min(base * (2 ** attempt), cap)
|
StreamingCommunity/Util/os.py
CHANGED
|
@@ -71,27 +71,37 @@ class OsManager:
|
|
|
71
71
|
|
|
72
72
|
return normalized
|
|
73
73
|
|
|
74
|
-
def get_sanitize_file(self, filename: str) -> str:
|
|
75
|
-
"""Sanitize filename."""
|
|
74
|
+
def get_sanitize_file(self, filename: str, year: str = None) -> str:
|
|
75
|
+
"""Sanitize filename. Optionally append a year in format ' (YYYY)' if year is provided and valid."""
|
|
76
76
|
if not filename:
|
|
77
77
|
return filename
|
|
78
78
|
|
|
79
|
-
#
|
|
79
|
+
# Extract and validate year if provided
|
|
80
|
+
year_str = ""
|
|
81
|
+
if year:
|
|
82
|
+
y = str(year).split('-')[0].strip()
|
|
83
|
+
if y.isdigit() and len(y) == 4:
|
|
84
|
+
year_str = f" ({y})"
|
|
85
|
+
|
|
86
|
+
# Decode and sanitize base filename
|
|
80
87
|
decoded = unidecode(filename)
|
|
81
88
|
sanitized = sanitize_filename(decoded)
|
|
82
89
|
|
|
83
90
|
# Split name and extension
|
|
84
91
|
name, ext = os.path.splitext(sanitized)
|
|
85
92
|
|
|
93
|
+
# Append year if present
|
|
94
|
+
name_with_year = name + year_str
|
|
95
|
+
|
|
86
96
|
# Calculate available length for name considering the '...' and extension
|
|
87
97
|
max_name_length = self.max_length - len('...') - len(ext)
|
|
88
98
|
|
|
89
99
|
# Truncate name if it exceeds the max name length
|
|
90
|
-
if len(
|
|
91
|
-
|
|
100
|
+
if len(name_with_year) > max_name_length:
|
|
101
|
+
name_with_year = name_with_year[:max_name_length] + '...'
|
|
92
102
|
|
|
93
103
|
# Ensure the final file name includes the extension
|
|
94
|
-
return
|
|
104
|
+
return name_with_year + ext
|
|
95
105
|
|
|
96
106
|
def get_sanitize_path(self, path: str) -> str:
|
|
97
107
|
"""Sanitize complete path."""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: StreamingCommunity
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.4.0
|
|
4
4
|
Home-page: https://github.com/Arrowar/StreamingCommunity
|
|
5
5
|
Author: Arrowar
|
|
6
6
|
Project-URL: Bug Reports, https://github.com/Arrowar/StreamingCommunity/issues
|
|
@@ -182,7 +182,6 @@ mpd_url = "https://example.com/stream.mpd"
|
|
|
182
182
|
license_url = "https://example.com/get_license"
|
|
183
183
|
|
|
184
184
|
dash_process = DASH_Downloader(
|
|
185
|
-
cdm_device=get_wvd_path(),
|
|
186
185
|
license_url=license_url,
|
|
187
186
|
mpd_url=mpd_url,
|
|
188
187
|
output_path="output.mp4",
|
|
@@ -267,7 +266,6 @@ To enable qBittorrent integration, follow the setup guide [here](https://github.
|
|
|
267
266
|
"specific_list_audio": [
|
|
268
267
|
"ita"
|
|
269
268
|
],
|
|
270
|
-
"download_subtitle": true,
|
|
271
269
|
"merge_subs": true,
|
|
272
270
|
"specific_list_subtitles": [
|
|
273
271
|
"ita", // Specify language codes or use ["*"] to download all available subtitles
|
|
@@ -1,63 +1,63 @@
|
|
|
1
1
|
StreamingCommunity/__init__.py,sha256=kOpFRfO3jz3gP2QjgPC_G85Z3rsMwMnsNa0POXMnDng,382
|
|
2
2
|
StreamingCommunity/global_search.py,sha256=ip3D0OKNRTXHpe_Wy7v2KM-yNZdnnbG5FOBYSSk6wB8,12401
|
|
3
3
|
StreamingCommunity/run.py,sha256=p7RYZlHhIHzPs8n_6z7f0yikH5TEd8KeC9UIpiRJ5-c,19494
|
|
4
|
-
StreamingCommunity/Api/Player/hdplayer.py,sha256=
|
|
5
|
-
StreamingCommunity/Api/Player/mediapolisvod.py,sha256=
|
|
6
|
-
StreamingCommunity/Api/Player/supervideo.py,sha256=
|
|
7
|
-
StreamingCommunity/Api/Player/sweetpixel.py,sha256=
|
|
8
|
-
StreamingCommunity/Api/Player/vixcloud.py,sha256=
|
|
4
|
+
StreamingCommunity/Api/Player/hdplayer.py,sha256=kRMA0bY_7MsUkxWXscZySXctr106p44Y7zEJblny7r8,1744
|
|
5
|
+
StreamingCommunity/Api/Player/mediapolisvod.py,sha256=2ndSIlatFmy9C07NGii9e6XIuS32TfObA9EZ8B2w6nI,2143
|
|
6
|
+
StreamingCommunity/Api/Player/supervideo.py,sha256=S9KlHjCiLZfXEhFf7Ph0oE_bM3u3DvUBtOOjKCe9xxE,5179
|
|
7
|
+
StreamingCommunity/Api/Player/sweetpixel.py,sha256=tzKGiT_26Qh9937WKEIBVqo6EPD32jeBPyAwlQA0kJo,1481
|
|
8
|
+
StreamingCommunity/Api/Player/vixcloud.py,sha256=9Dc2SSqMsZeO9559-sb-8QdS4v0zcA_mpZ_VmpIeQik,6083
|
|
9
9
|
StreamingCommunity/Api/Player/Helper/Vixcloud/js_parser.py,sha256=U-8QlD5kGzIk3-4t4D6QyYmiDe8UBrSuVi1YHRQb7AU,4295
|
|
10
10
|
StreamingCommunity/Api/Player/Helper/Vixcloud/util.py,sha256=WjpNA-ohE6AIwYOVzacYqy7CR3fXfdf7PfIp69vk8js,5343
|
|
11
11
|
StreamingCommunity/Api/Site/altadefinizione/__init__.py,sha256=sB9NyE30zwDG0oc8Cw0gioM-UTLQs7KmazEDSAxszI8,5346
|
|
12
|
-
StreamingCommunity/Api/Site/altadefinizione/film.py,sha256=
|
|
12
|
+
StreamingCommunity/Api/Site/altadefinizione/film.py,sha256=wCDxsD7MqKJYSQYevQWS4w8yt0SfGdJ-gKqVxx3-VBs,3460
|
|
13
13
|
StreamingCommunity/Api/Site/altadefinizione/series.py,sha256=aTc23StMrh16Yu70a41jUD7sKeyzEegP2_ws7m_DtYI,8410
|
|
14
|
-
StreamingCommunity/Api/Site/altadefinizione/site.py,sha256=
|
|
15
|
-
StreamingCommunity/Api/Site/altadefinizione/util/ScrapeSerie.py,sha256=
|
|
14
|
+
StreamingCommunity/Api/Site/altadefinizione/site.py,sha256=MMNDMIYzq5KYpVyL_DvsDE8SbM5Yw15xhS_IpBb0YYQ,2815
|
|
15
|
+
StreamingCommunity/Api/Site/altadefinizione/util/ScrapeSerie.py,sha256=WNmGjYpVBiCQBs7iitIEiplUdlX6u4bhsM9x_zW2ih4,4172
|
|
16
16
|
StreamingCommunity/Api/Site/animeunity/__init__.py,sha256=KArwW7J5rHjEoNfZz4SmS_IjfJqljon_ACIvaxouzqc,5228
|
|
17
17
|
StreamingCommunity/Api/Site/animeunity/film.py,sha256=Vqg6yag2siR-Y3ougBsV8mzdQXChxg6ghz_KVXFQ3pE,998
|
|
18
18
|
StreamingCommunity/Api/Site/animeunity/serie.py,sha256=gypwpByTXPe1yhx9WfJVlDV-Urtm7P9Sz5O435ZWhvQ,5742
|
|
19
|
-
StreamingCommunity/Api/Site/animeunity/site.py,sha256=
|
|
20
|
-
StreamingCommunity/Api/Site/animeunity/util/ScrapeSerie.py,sha256=
|
|
19
|
+
StreamingCommunity/Api/Site/animeunity/site.py,sha256=2_wftLPWzNjy_DA2CJZCpCH8CNIMOhTRjQFHQnO2qE8,4695
|
|
20
|
+
StreamingCommunity/Api/Site/animeunity/util/ScrapeSerie.py,sha256=bCTMxo8X3SwMlBGDuyp48GZVQZiAzKG1FkaZGiYOMp4,3550
|
|
21
21
|
StreamingCommunity/Api/Site/animeworld/__init__.py,sha256=f3B52eUPXRB9Jet4Y-VxhUbJMFT7bTgtp9Hs_QGUTUY,5145
|
|
22
|
-
StreamingCommunity/Api/Site/animeworld/film.py,sha256=
|
|
22
|
+
StreamingCommunity/Api/Site/animeworld/film.py,sha256=j6qE_YvoOwUSU0pXw6Y3yX1R9qWS2Y4zPn1NMrc__gE,1865
|
|
23
23
|
StreamingCommunity/Api/Site/animeworld/serie.py,sha256=wmma2mlJd76SQpKRxPGlxWE8dw5BEzJGlBxc_9QR2wk,3538
|
|
24
|
-
StreamingCommunity/Api/Site/animeworld/site.py,sha256=
|
|
25
|
-
StreamingCommunity/Api/Site/animeworld/util/ScrapeSerie.py,sha256=
|
|
24
|
+
StreamingCommunity/Api/Site/animeworld/site.py,sha256=7WI0ew3L-0-BJa8obk4HTdMXYzUWGOQ9EYLfngIC-j8,3491
|
|
25
|
+
StreamingCommunity/Api/Site/animeworld/util/ScrapeSerie.py,sha256=myGsa37C7e7NojdDyiFFduSSOSEylwcXCuEwMiAssZk,3413
|
|
26
26
|
StreamingCommunity/Api/Site/crunchyroll/__init__.py,sha256=P3OfAaROt_vSKPA-abfKkYn1LIfwUhfyC_0TnsBfqxU,5344
|
|
27
|
-
StreamingCommunity/Api/Site/crunchyroll/film.py,sha256=
|
|
28
|
-
StreamingCommunity/Api/Site/crunchyroll/series.py,sha256=
|
|
29
|
-
StreamingCommunity/Api/Site/crunchyroll/site.py,sha256=
|
|
30
|
-
StreamingCommunity/Api/Site/crunchyroll/util/ScrapeSerie.py,sha256
|
|
31
|
-
StreamingCommunity/Api/Site/crunchyroll/util/get_license.py,sha256=
|
|
27
|
+
StreamingCommunity/Api/Site/crunchyroll/film.py,sha256=1h9XqW6eBKs5cQ7IgvMgst2DN3KHxxcUoBXPlJ0oQo0,2937
|
|
28
|
+
StreamingCommunity/Api/Site/crunchyroll/series.py,sha256=KOP3kTvuqTH6Rjv2eq57XQmoXdGHItZVS1HfEvPumeQ,7331
|
|
29
|
+
StreamingCommunity/Api/Site/crunchyroll/site.py,sha256=rLQh5vhcLk6QlvT7G-jtmsnkRbqn4AdhLxrcOBm5qTw,3438
|
|
30
|
+
StreamingCommunity/Api/Site/crunchyroll/util/ScrapeSerie.py,sha256=-fkXut8h9ZcSVrWKZpVMWbiAfHC9SGGAJeyIeZRFYqE,6680
|
|
31
|
+
StreamingCommunity/Api/Site/crunchyroll/util/get_license.py,sha256=vb50dkCfT5CD5grfeSFJkjs4AMxSDLUrU1qdP4ri3_o,4281
|
|
32
32
|
StreamingCommunity/Api/Site/guardaserie/__init__.py,sha256=wqW3AkQJPLszZtcNCjqZjnDXVRrr8cUaJuHUh1WjJV0,5125
|
|
33
33
|
StreamingCommunity/Api/Site/guardaserie/series.py,sha256=-ExCTCMeC6GcIJS9m2qkl46eXozOtDhT9hI8WJFvF-Q,6696
|
|
34
|
-
StreamingCommunity/Api/Site/guardaserie/site.py,sha256=
|
|
35
|
-
StreamingCommunity/Api/Site/guardaserie/util/ScrapeSerie.py,sha256=
|
|
34
|
+
StreamingCommunity/Api/Site/guardaserie/site.py,sha256=kaeM-SprJnQHwNXxubhI-VlevECwlJT6cRe5TJDO0Tg,1972
|
|
35
|
+
StreamingCommunity/Api/Site/guardaserie/util/ScrapeSerie.py,sha256=f3SL8efZX9AyMs8rhakAqelb4GFbAkHHl-dq3q2ZLyg,4131
|
|
36
36
|
StreamingCommunity/Api/Site/mediasetinfinity/__init__.py,sha256=0sssYE2ZcKLkoc3dq-6SUAWzxtW5gFP36KGWxWnfM6s,5265
|
|
37
|
-
StreamingCommunity/Api/Site/mediasetinfinity/film.py,sha256=
|
|
38
|
-
StreamingCommunity/Api/Site/mediasetinfinity/series.py,sha256=
|
|
39
|
-
StreamingCommunity/Api/Site/mediasetinfinity/site.py,sha256=
|
|
40
|
-
StreamingCommunity/Api/Site/mediasetinfinity/util/ScrapeSerie.py,sha256=
|
|
41
|
-
StreamingCommunity/Api/Site/mediasetinfinity/util/fix_mpd.py,sha256=
|
|
42
|
-
StreamingCommunity/Api/Site/mediasetinfinity/util/get_license.py,sha256=
|
|
37
|
+
StreamingCommunity/Api/Site/mediasetinfinity/film.py,sha256=9r-eef2qsvrROo4QXrupp4rq1m0SdrilyCVZK_Lz3Jw,2393
|
|
38
|
+
StreamingCommunity/Api/Site/mediasetinfinity/series.py,sha256=lpCcO8Cbu18XYIU-dzo4q8EBxWv-bYhmTOr36a7IQX4,6969
|
|
39
|
+
StreamingCommunity/Api/Site/mediasetinfinity/site.py,sha256=G9wBIVmplFUdnHlE09YJYYzfbbGAx7CpyWTS3x5CnTU,3173
|
|
40
|
+
StreamingCommunity/Api/Site/mediasetinfinity/util/ScrapeSerie.py,sha256=xpQaAzfIXlN6xMOgNKrElbpJ3Wnhn7QukNm-z-Jbmbo,9872
|
|
41
|
+
StreamingCommunity/Api/Site/mediasetinfinity/util/fix_mpd.py,sha256=c5xniYi6Z4o0zbnWvc9CocNwXVEpd2nRZPu2GnpMY_k,1762
|
|
42
|
+
StreamingCommunity/Api/Site/mediasetinfinity/util/get_license.py,sha256=Op6pykrf94BGj4jLCN28HokdWt57ITNI0cCo_Xjk444,9062
|
|
43
43
|
StreamingCommunity/Api/Site/raiplay/__init__.py,sha256=RetTL3hWU9EpQJpOvV92xr57wI_dQwm40KRgJAQ_vfA,5269
|
|
44
|
-
StreamingCommunity/Api/Site/raiplay/film.py,sha256=
|
|
45
|
-
StreamingCommunity/Api/Site/raiplay/series.py,sha256=
|
|
46
|
-
StreamingCommunity/Api/Site/raiplay/site.py,sha256=
|
|
47
|
-
StreamingCommunity/Api/Site/raiplay/util/ScrapeSerie.py,sha256=
|
|
48
|
-
StreamingCommunity/Api/Site/raiplay/util/get_license.py,sha256=
|
|
44
|
+
StreamingCommunity/Api/Site/raiplay/film.py,sha256=uh3Xr4L6v2BLGnh4Lz96E0yiTWWbTpBQdv-DK76RA_A,2800
|
|
45
|
+
StreamingCommunity/Api/Site/raiplay/series.py,sha256=JvE44zyxOvObqzse-lCbB7QimP_aIIC5ewxLZASTD-I,7310
|
|
46
|
+
StreamingCommunity/Api/Site/raiplay/site.py,sha256=5TZMt7-zMiapOX_8G7PAPXOYscqUkFvz7ykV-g9x_6A,2844
|
|
47
|
+
StreamingCommunity/Api/Site/raiplay/util/ScrapeSerie.py,sha256=G2I0G3a33jlPcFQSqg9rHG88IVGVp1w-sGkK0TvFQiA,6164
|
|
48
|
+
StreamingCommunity/Api/Site/raiplay/util/get_license.py,sha256=KYO5ya8cTePVmQ0IUqw0nh5ZzlObq18rBp_fLyXKwCA,860
|
|
49
49
|
StreamingCommunity/Api/Site/streamingcommunity/__init__.py,sha256=EHe8TY4Fcn064PlJ4ubDwr6N0muilfUMpK5-yyOwp-A,5425
|
|
50
|
-
StreamingCommunity/Api/Site/streamingcommunity/film.py,sha256=
|
|
50
|
+
StreamingCommunity/Api/Site/streamingcommunity/film.py,sha256=XTE2mR1OaPFEkaJ1at-CzjTPem0h4Qvcqo07eAFjudw,2455
|
|
51
51
|
StreamingCommunity/Api/Site/streamingcommunity/series.py,sha256=cXGpLg-9vLZ8RCsneR4H6oFO-TqAcAp2nJeP5mEWw14,9057
|
|
52
|
-
StreamingCommunity/Api/Site/streamingcommunity/site.py,sha256=
|
|
53
|
-
StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py,sha256=
|
|
54
|
-
StreamingCommunity/Api/Site/streamingwatch/__init__.py,sha256=
|
|
55
|
-
StreamingCommunity/Api/Site/streamingwatch/film.py,sha256=
|
|
56
|
-
StreamingCommunity/Api/Site/streamingwatch/series.py,sha256=
|
|
57
|
-
StreamingCommunity/Api/Site/streamingwatch/site.py,sha256=
|
|
58
|
-
StreamingCommunity/Api/Site/streamingwatch/util/ScrapeSerie.py,sha256=
|
|
52
|
+
StreamingCommunity/Api/Site/streamingcommunity/site.py,sha256=H40T9yVpe99w3Fe0PeTKNyfEHgPKYcWf9BnBXYdPC50,3482
|
|
53
|
+
StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py,sha256=j08ak99aYY5gl0YkMyF0JFPJBuI4YEsE8cXBOcHN67M,5302
|
|
54
|
+
StreamingCommunity/Api/Site/streamingwatch/__init__.py,sha256=lJA3z6pcF1U88_r9DNcRg1ZAYl0PYfFiIYEpS5kyg28,5427
|
|
55
|
+
StreamingCommunity/Api/Site/streamingwatch/film.py,sha256=ugKhyWrrof-iAlnnYCa5RvsHABXNT19rSoEWk_jsz28,1867
|
|
56
|
+
StreamingCommunity/Api/Site/streamingwatch/series.py,sha256=JSSGHInrxXwm1H-5u-3PFIznewQvOYeujmDUWvD06BY,6375
|
|
57
|
+
StreamingCommunity/Api/Site/streamingwatch/site.py,sha256=n3FYchfh9VMz7fcIbjXSvleyI1Xaz-8dtlkK3egVw48,3044
|
|
58
|
+
StreamingCommunity/Api/Site/streamingwatch/util/ScrapeSerie.py,sha256=2iwuqVh__FfC6nHFHsBuoHph_q7EkY-UVRrr8O9hcfw,4155
|
|
59
59
|
StreamingCommunity/Api/Template/__init__.py,sha256=fiDHu2yUk3Jk5CWmmnCJNy9fRLbq8RhHB_20NDD12tA,84
|
|
60
|
-
StreamingCommunity/Api/Template/config_loader.py,sha256=
|
|
60
|
+
StreamingCommunity/Api/Template/config_loader.py,sha256=IO26CKODrsns-oi0UCVXRC_By6YwaKU8Zwj4GPEglhY,1880
|
|
61
61
|
StreamingCommunity/Api/Template/loader.py,sha256=AmEv_hxJ8lyEzV2Nx72BoawzXNHUFr5VjL85oj0hmAo,5472
|
|
62
62
|
StreamingCommunity/Api/Template/site.py,sha256=S3DcEADTKM7OSDlrreMf33zDKK7HBStRImuQwg2aoRY,4937
|
|
63
63
|
StreamingCommunity/Api/Template/Class/SearchType.py,sha256=xp4vYKYHoXQF28fvWm0mk8XHvK9PkOcuWJXC5fbk4Gg,2529
|
|
@@ -65,17 +65,17 @@ StreamingCommunity/Api/Template/Util/__init__.py,sha256=v23VkosPNOQG5XbDkyCx5shE
|
|
|
65
65
|
StreamingCommunity/Api/Template/Util/manage_ep.py,sha256=EFu5_7N_Fd6fVF7Ix14uWfr_pYLybEtnVBJcS101g4M,8573
|
|
66
66
|
StreamingCommunity/Lib/Downloader/__init__.py,sha256=Zh92xTvBIEIjNQN22iXItG7_VqiDGbOpO5gOZDBdGxc,288
|
|
67
67
|
StreamingCommunity/Lib/Downloader/DASH/cdm_helpher.py,sha256=fXKrOJywtTU6oDeAQUWLLIbontlI1sMpFGDuQMmaEIQ,4361
|
|
68
|
-
StreamingCommunity/Lib/Downloader/DASH/decrypt.py,sha256=
|
|
69
|
-
StreamingCommunity/Lib/Downloader/DASH/downloader.py,sha256=
|
|
70
|
-
StreamingCommunity/Lib/Downloader/DASH/parser.py,sha256=
|
|
71
|
-
StreamingCommunity/Lib/Downloader/DASH/segments.py,sha256=
|
|
72
|
-
StreamingCommunity/Lib/Downloader/HLS/downloader.py,sha256=
|
|
73
|
-
StreamingCommunity/Lib/Downloader/HLS/segments.py,sha256=
|
|
68
|
+
StreamingCommunity/Lib/Downloader/DASH/decrypt.py,sha256=PIc-I0V8m-I29tuo7hrYIwPVVDbKDj80VHEF8kW0svw,4386
|
|
69
|
+
StreamingCommunity/Lib/Downloader/DASH/downloader.py,sha256=KWJljHnoH-DqVmRtwjudJBUpblHXQaYjY8xw02TszZs,23968
|
|
70
|
+
StreamingCommunity/Lib/Downloader/DASH/parser.py,sha256=9doZBhp2jkv5FoJtuenos6Jam_CjQzHIa2OhoLlOQYI,22798
|
|
71
|
+
StreamingCommunity/Lib/Downloader/DASH/segments.py,sha256=n2WgzbOy5UBDMBNoZyEmEdVGdRwT5w6P6WfFmlu4FOw,19754
|
|
72
|
+
StreamingCommunity/Lib/Downloader/HLS/downloader.py,sha256=cZxy2bDkYbDZTzVlWwKD8spm2Q-J4X1NYyVSiB7RYjM,27476
|
|
73
|
+
StreamingCommunity/Lib/Downloader/HLS/segments.py,sha256=JSjJZvOrPN1J3B6PJc1CpfVnOpw3KGUpevbOJs_ZC2c,19774
|
|
74
74
|
StreamingCommunity/Lib/Downloader/MP4/downloader.py,sha256=I9Vkz4RMdtm0LmikH9Hw5cHcoV7BGSaiAkwfKmWz2Ls,7771
|
|
75
75
|
StreamingCommunity/Lib/Downloader/TOR/downloader.py,sha256=tYOCuKkKDcTIJ-2bGIeplovRkLTdp89i8lUvJs_N9jc,19133
|
|
76
76
|
StreamingCommunity/Lib/FFmpeg/__init__.py,sha256=NZmOXpnc5jvdvjNnHPxvj5bzp0GUuNMXd00Fcy4rQPI,258
|
|
77
|
-
StreamingCommunity/Lib/FFmpeg/capture.py,sha256=
|
|
78
|
-
StreamingCommunity/Lib/FFmpeg/command.py,sha256=
|
|
77
|
+
StreamingCommunity/Lib/FFmpeg/capture.py,sha256=OcZN5BiYwhoyIIVU8U7qUbvJ1YVLGr01C51Kt89IrXc,6299
|
|
78
|
+
StreamingCommunity/Lib/FFmpeg/command.py,sha256=TmDHKLZ081HXxPjyPSV6lQ8SpVEpLKeiwlAQwMtDsTg,8445
|
|
79
79
|
StreamingCommunity/Lib/FFmpeg/util.py,sha256=ISSNKvK61R0pGc9w6juK6S3jBb9SvrdTlTu8ycxg8FY,8903
|
|
80
80
|
StreamingCommunity/Lib/M3U8/__init__.py,sha256=Zxij4WFCxjwyfswUfBv0oys_o0vQpAL5PoK5TGG_StY,288
|
|
81
81
|
StreamingCommunity/Lib/M3U8/decryptor.py,sha256=0VPMWbfwP9aEr4Y8OYi-e4o0ucMeCnV9HyuiOWxu_sE,2361
|
|
@@ -84,28 +84,28 @@ StreamingCommunity/Lib/M3U8/parser.py,sha256=ykffMt7wmvDij70Whxz-hin0ZcmfRIj3Vuf
|
|
|
84
84
|
StreamingCommunity/Lib/M3U8/url_fixer.py,sha256=0Wd6MsBf8BBQ6mmHFElgCX3UbHAzRzSREmi03yb4gU4,1735
|
|
85
85
|
StreamingCommunity/Lib/TMBD/__init__.py,sha256=TBKZ0zwAUvil2V2AirEPy_Q-M3Ksar2CJsUNt4tpXhk,109
|
|
86
86
|
StreamingCommunity/Lib/TMBD/obj_tmbd.py,sha256=dRSvJFS5yqmsBZcw2wqbStcBtXNjU_3n5czMyremAtU,1187
|
|
87
|
-
StreamingCommunity/Lib/TMBD/tmdb.py,sha256=
|
|
87
|
+
StreamingCommunity/Lib/TMBD/tmdb.py,sha256=UUfHLTD30uXnu1LexZilWg86c9kHzsFuOrFUNfair8U,10171
|
|
88
88
|
StreamingCommunity/TelegramHelp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
89
|
-
StreamingCommunity/TelegramHelp/config.json,sha256=
|
|
89
|
+
StreamingCommunity/TelegramHelp/config.json,sha256=rZW8TlrJyG-IU0syJpYszqCJw5olb3XJ-hq35NVRM98,1339
|
|
90
90
|
StreamingCommunity/TelegramHelp/telegram_bot.py,sha256=KiurpTrgiUNyMcLfceseaxV4xGegCUSJ8YttSeGXhJM,26429
|
|
91
91
|
StreamingCommunity/Upload/update.py,sha256=grMrdVdAo2jnpobosgXtKU7_xAIxYrhrJY5ce67HS3g,3649
|
|
92
|
-
StreamingCommunity/Upload/version.py,sha256=
|
|
92
|
+
StreamingCommunity/Upload/version.py,sha256=1K1lkDjAfiYL6zW7wTs8L9sumk_2tg2jhvvEYfgzcNU,170
|
|
93
93
|
StreamingCommunity/Util/color.py,sha256=NvD0Eni-25oOOkY-szCEoc0lGvzQxyL7xhM0RE4EvUM,458
|
|
94
|
-
StreamingCommunity/Util/config_json.py,sha256=
|
|
94
|
+
StreamingCommunity/Util/config_json.py,sha256=p4QjwydQyZUzw5GmfKu25MT-I7VOKNpK3S741HJuCNU,23476
|
|
95
95
|
StreamingCommunity/Util/headers.py,sha256=RP3A6Gr8UB8VU6uzw_yDOjEKkIFKpi7Gi6_w2ACxE30,292
|
|
96
|
-
StreamingCommunity/Util/http_client.py,sha256=
|
|
96
|
+
StreamingCommunity/Util/http_client.py,sha256=ccmf7_tHziqqFkPwPabdiRozPry39rbaEqP2z4UlA0g,7183
|
|
97
97
|
StreamingCommunity/Util/logger.py,sha256=jexWdX8G7Sf3k5suyFNYlVXNgjsJjlAP5OrhGEQ8s0A,3069
|
|
98
98
|
StreamingCommunity/Util/message.py,sha256=5oBph-Nvv6k_lp8hG4GIeDTahPqrQ9Dh0HQDry9iY5U,1261
|
|
99
|
-
StreamingCommunity/Util/os.py,sha256=
|
|
99
|
+
StreamingCommunity/Util/os.py,sha256=PCnDnz1zZhtan2Gt071fswPDpDPIRr1US0nRHog5wNQ,12580
|
|
100
100
|
StreamingCommunity/Util/table.py,sha256=61cPSXxhmAkI1aLE0X7OisB04Yb-grnLTZ5NlLfE-qA,10796
|
|
101
101
|
StreamingCommunity/Util/installer/__init__.py,sha256=CpsWRXHHsve9YC6g8--uVUsTillHi0y5mgjBboUOZrM,234
|
|
102
102
|
StreamingCommunity/Util/installer/bento4_install.py,sha256=8ZddP9_6Fa30pVJyOMqnedL8tmcrvsng9FZ_4w44W18,6976
|
|
103
103
|
StreamingCommunity/Util/installer/binary_paths.py,sha256=-vo1sAavMBCg8u1Bx-CNhUIlWdQ7C2gcT2esVMSpKxs,2470
|
|
104
104
|
StreamingCommunity/Util/installer/device_install.py,sha256=3_pQcz6-lpDth2f2kq4uiV-nPEMGTDB7Q4lThyRnwrI,4389
|
|
105
105
|
StreamingCommunity/Util/installer/ffmpeg_install.py,sha256=OobkwdIhO9QbMGjoTvYCeYzdodU0K1LX6LaMLRl7nZY,13562
|
|
106
|
-
streamingcommunity-3.
|
|
107
|
-
streamingcommunity-3.
|
|
108
|
-
streamingcommunity-3.
|
|
109
|
-
streamingcommunity-3.
|
|
110
|
-
streamingcommunity-3.
|
|
111
|
-
streamingcommunity-3.
|
|
106
|
+
streamingcommunity-3.4.0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
107
|
+
streamingcommunity-3.4.0.dist-info/METADATA,sha256=PQcyl7ZY18CExohdE9jjoPZHQSGyvdMQtRYLRlunRiE,20186
|
|
108
|
+
streamingcommunity-3.4.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
109
|
+
streamingcommunity-3.4.0.dist-info/entry_points.txt,sha256=Qph9XYfDC8n4LfDLOSl6gJGlkb9eFb5f-JOr_Wb_5rk,67
|
|
110
|
+
streamingcommunity-3.4.0.dist-info/top_level.txt,sha256=YsOcxKP-WOhWpIWgBlh0coll9XUx7aqmRPT7kmt3fH0,19
|
|
111
|
+
streamingcommunity-3.4.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|