StreamingCommunity 3.1.0__tar.gz → 3.2.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.
Files changed (103) hide show
  1. {streamingcommunity-3.1.0/StreamingCommunity.egg-info → streamingcommunity-3.2.0}/PKG-INFO +1 -1
  2. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Player/ddl.py +4 -2
  3. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Player/hdplayer.py +2 -1
  4. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Player/maxstream.py +7 -7
  5. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Player/mediapolisvod.py +4 -4
  6. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Player/mixdrop.py +6 -5
  7. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Player/supervideo.py +3 -2
  8. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Player/sweetpixel.py +4 -3
  9. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Player/vixcloud.py +6 -5
  10. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Lib/Downloader/HLS/segments.py +5 -4
  11. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Lib/Downloader/MP4/downloader.py +3 -3
  12. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Upload/update.py +1 -1
  13. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Upload/version.py +1 -1
  14. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Util/config_json.py +5 -7
  15. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0/StreamingCommunity.egg-info}/PKG-INFO +1 -1
  16. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/LICENSE +0 -0
  17. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/MANIFEST.in +0 -0
  18. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/README.md +0 -0
  19. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Player/Helper/Vixcloud/js_parser.py +0 -0
  20. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Player/Helper/Vixcloud/util.py +0 -0
  21. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/1337xx/__init__.py +0 -0
  22. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/1337xx/site.py +0 -0
  23. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/1337xx/title.py +0 -0
  24. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/altadefinizione/__init__.py +0 -0
  25. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/altadefinizione/film.py +0 -0
  26. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/altadefinizione/series.py +0 -0
  27. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/altadefinizione/site.py +0 -0
  28. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/altadefinizione/util/ScrapeSerie.py +0 -0
  29. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/animeunity/__init__.py +0 -0
  30. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/animeunity/film.py +0 -0
  31. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/animeunity/serie.py +0 -0
  32. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/animeunity/site.py +0 -0
  33. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/animeunity/util/ScrapeSerie.py +0 -0
  34. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/animeworld/__init__.py +0 -0
  35. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/animeworld/film.py +0 -0
  36. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/animeworld/serie.py +0 -0
  37. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/animeworld/site.py +0 -0
  38. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/animeworld/util/ScrapeSerie.py +0 -0
  39. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/cb01new/__init__.py +0 -0
  40. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/cb01new/film.py +0 -0
  41. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/cb01new/site.py +0 -0
  42. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/guardaserie/__init__.py +0 -0
  43. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/guardaserie/series.py +0 -0
  44. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/guardaserie/site.py +0 -0
  45. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/guardaserie/util/ScrapeSerie.py +0 -0
  46. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/raiplay/__init__.py +0 -0
  47. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/raiplay/film.py +0 -0
  48. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/raiplay/series.py +0 -0
  49. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/raiplay/site.py +0 -0
  50. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/raiplay/util/ScrapeSerie.py +0 -0
  51. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/streamingcommunity/__init__.py +0 -0
  52. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/streamingcommunity/film.py +0 -0
  53. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/streamingcommunity/series.py +0 -0
  54. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/streamingcommunity/site.py +0 -0
  55. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py +0 -0
  56. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/streamingwatch/__init__.py +0 -0
  57. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/streamingwatch/film.py +0 -0
  58. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/streamingwatch/series.py +0 -0
  59. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/streamingwatch/site.py +0 -0
  60. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Site/streamingwatch/util/ScrapeSerie.py +0 -0
  61. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Template/Class/SearchType.py +0 -0
  62. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Template/Util/__init__.py +0 -0
  63. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Template/Util/manage_ep.py +0 -0
  64. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Template/__init__.py +0 -0
  65. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Template/config_loader.py +0 -0
  66. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Api/Template/site.py +0 -0
  67. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Lib/Downloader/HLS/downloader.py +0 -0
  68. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Lib/Downloader/TOR/downloader.py +0 -0
  69. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Lib/Downloader/__init__.py +0 -0
  70. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Lib/FFmpeg/__init__.py +0 -0
  71. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Lib/FFmpeg/capture.py +0 -0
  72. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Lib/FFmpeg/command.py +0 -0
  73. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Lib/FFmpeg/util.py +0 -0
  74. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Lib/M3U8/__init__.py +0 -0
  75. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Lib/M3U8/decryptor.py +0 -0
  76. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Lib/M3U8/estimator.py +0 -0
  77. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Lib/M3U8/parser.py +0 -0
  78. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Lib/M3U8/url_fixer.py +0 -0
  79. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Lib/Proxies/proxy.py +0 -0
  80. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Lib/TMBD/__init__.py +0 -0
  81. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Lib/TMBD/obj_tmbd.py +0 -0
  82. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Lib/TMBD/tmdb.py +0 -0
  83. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/TelegramHelp/__init__.py +0 -0
  84. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/TelegramHelp/config.json +0 -0
  85. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/TelegramHelp/telegram_bot.py +0 -0
  86. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Util/color.py +0 -0
  87. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Util/ffmpeg_installer.py +0 -0
  88. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Util/headers.py +0 -0
  89. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Util/logger.py +0 -0
  90. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Util/message.py +0 -0
  91. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Util/os.py +0 -0
  92. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/Util/table.py +0 -0
  93. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/__init__.py +0 -0
  94. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/global_search.py +0 -0
  95. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity/run.py +0 -0
  96. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity.egg-info/SOURCES.txt +0 -0
  97. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity.egg-info/dependency_links.txt +0 -0
  98. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity.egg-info/entry_points.txt +0 -0
  99. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity.egg-info/requires.txt +0 -0
  100. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/StreamingCommunity.egg-info/top_level.txt +0 -0
  101. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/requirements.txt +0 -0
  102. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/setup.cfg +0 -0
  103. {streamingcommunity-3.1.0 → streamingcommunity-3.2.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: StreamingCommunity
3
- Version: 3.1.0
3
+ Version: 3.2.0
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
@@ -15,6 +15,7 @@ from StreamingCommunity.Util.headers import get_userAgent
15
15
 
16
16
  # Variable
17
17
  max_timeout = config_manager.get_int("REQUESTS", "timeout")
18
+ REQUEST_VERIFY = config_manager.get_bool('REQUESTS', 'verify')
18
19
 
19
20
 
20
21
  class VideoSource:
@@ -41,7 +42,8 @@ class VideoSource:
41
42
  url=url,
42
43
  headers=self.headers,
43
44
  cookies=self.cookie,
44
- timeout=max_timeout
45
+ timeout=max_timeout,
46
+ verify=REQUEST_VERIFY
45
47
  )
46
48
  response.raise_for_status()
47
49
 
@@ -77,4 +79,4 @@ class VideoSource:
77
79
  logging.error("Failed to retrieve content from the URL.")
78
80
 
79
81
  except Exception as e:
80
- logging.error(f"An error occurred while parsing the playlist: {e}")
82
+ logging.error(f"An error occurred while parsing the playlist: {e}")
@@ -14,11 +14,12 @@ from StreamingCommunity.Util.config_json import config_manager
14
14
 
15
15
  # Variable
16
16
  MAX_TIMEOUT = config_manager.get_int("REQUESTS", "timeout")
17
+ REQUEST_VERIFY = config_manager.get_bool('REQUESTS', 'verify')
17
18
 
18
19
 
19
20
  class VideoSource:
20
21
  def __init__(self, proxy=None):
21
- self.client = httpx.Client(headers={'user-agent': get_userAgent()}, timeout=MAX_TIMEOUT, proxy=proxy)
22
+ self.client = httpx.Client(headers={'user-agent': get_userAgent()}, timeout=MAX_TIMEOUT, proxy=proxy, verify=REQUEST_VERIFY)
22
23
 
23
24
  def extractLinkHdPlayer(self, response):
24
25
  """Extract iframe source from the page."""
@@ -18,7 +18,7 @@ from StreamingCommunity.Util.headers import get_userAgent
18
18
 
19
19
  # Variable
20
20
  MAX_TIMEOUT = config_manager.get_int("REQUESTS", "timeout")
21
-
21
+ REQUEST_VERIFY = config_manager.get_bool('REQUESTS', 'verify')
22
22
 
23
23
  class VideoSource:
24
24
  def __init__(self, url: str):
@@ -39,7 +39,7 @@ class VideoSource:
39
39
  Sends a request to the initial URL and extracts the redirect URL.
40
40
  """
41
41
  try:
42
- response = httpx.get(self.url, headers=self.headers, follow_redirects=True, timeout=MAX_TIMEOUT)
42
+ response = httpx.get(self.url, headers=self.headers, follow_redirects=True, timeout=MAX_TIMEOUT, verify=REQUEST_VERIFY)
43
43
  response.raise_for_status()
44
44
 
45
45
  # Extract the redirect URL from the HTML
@@ -58,7 +58,7 @@ class VideoSource:
58
58
  Sends a request to the redirect URL and extracts the Maxstream URL.
59
59
  """
60
60
  try:
61
- response = httpx.get(self.redirect_url, headers=self.headers, follow_redirects=True, timeout=MAX_TIMEOUT)
61
+ response = httpx.get(self.redirect_url, headers=self.headers, follow_redirects=True, timeout=MAX_TIMEOUT, verify=REQUEST_VERIFY)
62
62
  response.raise_for_status()
63
63
 
64
64
  # Extract the Maxstream URL from the HTML
@@ -77,12 +77,12 @@ class VideoSource:
77
77
 
78
78
  # Make request to stayonline api
79
79
  data = {'id': self.redirect_url.split("/")[-2], 'ref': ''}
80
- response = httpx.post('https://stayonline.pro/ajax/linkEmbedView.php', headers=headers, data=data)
80
+ response = httpx.post('https://stayonline.pro/ajax/linkEmbedView.php', headers=headers, data=data, verify=REQUEST_VERIFY)
81
81
  response.raise_for_status()
82
82
  uprot_url = response.json()['data']['value']
83
83
 
84
84
  # Retry getting maxtstream url
85
- response = httpx.get(uprot_url, headers=self.headers, follow_redirects=True, timeout=MAX_TIMEOUT)
85
+ response = httpx.get(uprot_url, headers=self.headers, follow_redirects=True, timeout=MAX_TIMEOUT, verify=REQUEST_VERIFY)
86
86
  response.raise_for_status()
87
87
  soup = BeautifulSoup(response.text, "html.parser")
88
88
  maxstream_url = soup.find("a").get("href")
@@ -104,7 +104,7 @@ class VideoSource:
104
104
  Sends a request to the Maxstream URL and extracts the .m3u8 file URL.
105
105
  """
106
106
  try:
107
- response = httpx.get(self.maxstream_url, headers=self.headers, follow_redirects=True, timeout=MAX_TIMEOUT)
107
+ response = httpx.get(self.maxstream_url, headers=self.headers, follow_redirects=True, timeout=MAX_TIMEOUT, verify=REQUEST_VERIFY)
108
108
  response.raise_for_status()
109
109
  soup = BeautifulSoup(response.text, "html.parser")
110
110
 
@@ -138,4 +138,4 @@ class VideoSource:
138
138
  """
139
139
  self.get_redirect_url()
140
140
  self.get_maxstream_url()
141
- return self.get_m3u8_url()
141
+ return self.get_m3u8_url()
@@ -12,7 +12,7 @@ from StreamingCommunity.Util.headers import get_headers
12
12
 
13
13
  # Variable
14
14
  MAX_TIMEOUT = config_manager.get_int("REQUESTS", "timeout")
15
-
15
+ REQUEST_VERIFY = config_manager.get_bool('REQUESTS', 'verify')
16
16
 
17
17
  class VideoSource:
18
18
 
@@ -29,7 +29,7 @@ class VideoSource:
29
29
  return "Error: Unable to determine video JSON URL"
30
30
 
31
31
  try:
32
- response = httpx.get(video_url, headers=get_headers(), timeout=MAX_TIMEOUT)
32
+ response = httpx.get(video_url, headers=get_headers(), timeout=MAX_TIMEOUT, verify=REQUEST_VERIFY)
33
33
  if response.status_code != 200:
34
34
  return f"Error: Failed to fetch video data (Status: {response.status_code})"
35
35
 
@@ -50,7 +50,7 @@ class VideoSource:
50
50
  'cont': element_key,
51
51
  'output': '62',
52
52
  }
53
- stream_response = httpx.get('https://mediapolisvod.rai.it/relinker/relinkerServlet.htm', params=params, headers=get_headers(), timeout=MAX_TIMEOUT)
53
+ stream_response = httpx.get('https://mediapolisvod.rai.it/relinker/relinkerServlet.htm', params=params, headers=get_headers(), timeout=MAX_TIMEOUT, verify=REQUEST_VERIFY)
54
54
 
55
55
  if stream_response.status_code != 200:
56
56
  return f"Error: Failed to fetch stream URL (Status: {stream_response.status_code})"
@@ -61,4 +61,4 @@ class VideoSource:
61
61
  return m3u8_url
62
62
 
63
63
  except Exception as e:
64
- return f"Error: {str(e)}"
64
+ return f"Error: {str(e)}"
@@ -17,7 +17,7 @@ from StreamingCommunity.Util.headers import get_userAgent
17
17
 
18
18
  # Variable
19
19
  MAX_TIMEOUT = config_manager.get_int("REQUESTS", "timeout")
20
-
20
+ REQUEST_VERIFY = config_manager.get_bool('REQUESTS', 'verify')
21
21
 
22
22
  class VideoSource:
23
23
  STAYONLINE_BASE_URL = "https://stayonline.pro"
@@ -45,7 +45,7 @@ class VideoSource:
45
45
  def get_redirect_url(self) -> str:
46
46
  """Extract the stayonline redirect URL from the initial page."""
47
47
  try:
48
- response = httpx.get(self.url, headers=self.headers, follow_redirects=True, timeout=MAX_TIMEOUT)
48
+ response = httpx.get(self.url, headers=self.headers, follow_redirects=True, timeout=MAX_TIMEOUT, verify=REQUEST_VERIFY)
49
49
  response.raise_for_status()
50
50
  soup = BeautifulSoup(response.text, "html.parser")
51
51
 
@@ -68,7 +68,7 @@ class VideoSource:
68
68
  raise ValueError("Redirect URL not set. Call get_redirect_url first.")
69
69
 
70
70
  try:
71
- response = httpx.get(self.redirect_url, headers=self.headers, follow_redirects=True, timeout=MAX_TIMEOUT)
71
+ response = httpx.get(self.redirect_url, headers=self.headers, follow_redirects=True, timeout=MAX_TIMEOUT, verify=REQUEST_VERIFY)
72
72
  response.raise_for_status()
73
73
  soup = BeautifulSoup(response.text, "html.parser")
74
74
 
@@ -89,7 +89,7 @@ class VideoSource:
89
89
  self.headers['referer'] = f'{self.STAYONLINE_BASE_URL}/l/{link_id}/'
90
90
  data = {'id': link_id, 'ref': ''}
91
91
 
92
- response = httpx.post(f'{self.STAYONLINE_BASE_URL}/ajax/linkView.php', headers=self.headers, data=data, timeout=MAX_TIMEOUT)
92
+ response = httpx.post(f'{self.STAYONLINE_BASE_URL}/ajax/linkView.php', headers=self.headers, data=data, timeout=MAX_TIMEOUT, verify=REQUEST_VERIFY)
93
93
  response.raise_for_status()
94
94
  return response.json()['data']['value']
95
95
 
@@ -128,7 +128,8 @@ class VideoSource:
128
128
  response = httpx.get(
129
129
  f'{self.MIXDROP_BASE_URL}/e/{video_id}',
130
130
  headers=self._get_mixdrop_headers(),
131
- timeout=MAX_TIMEOUT
131
+ timeout=MAX_TIMEOUT,
132
+ verify=REQUEST_VERIFY
132
133
  )
133
134
  response.raise_for_status()
134
135
  soup = BeautifulSoup(response.text, "html.parser")
@@ -17,6 +17,7 @@ from StreamingCommunity.Util.headers import get_headers
17
17
 
18
18
  # Variable
19
19
  MAX_TIMEOUT = config_manager.get_int("REQUESTS", "timeout")
20
+ REQUEST_VERIFY = config_manager.get_bool('REQUESTS', 'verify')
20
21
 
21
22
 
22
23
  class VideoSource:
@@ -41,7 +42,7 @@ class VideoSource:
41
42
  - str: The response content if successful, None otherwise.
42
43
  """
43
44
  try:
44
- response = requests.get(url, headers=self.headers, timeout=MAX_TIMEOUT, impersonate="chrome110")
45
+ response = requests.get(url, headers=self.headers, timeout=MAX_TIMEOUT, impersonate="chrome110", verify=REQUEST_VERIFY)
45
46
  if response.status_code >= 400:
46
47
  logging.error(f"Request failed with status code: {response.status_code}")
47
48
  return None
@@ -161,4 +162,4 @@ class VideoSource:
161
162
 
162
163
  except Exception as e:
163
164
  logging.error(f"An error occurred: {e}")
164
- return None
165
+ return None
@@ -14,7 +14,7 @@ from StreamingCommunity.Util.headers import get_userAgent
14
14
 
15
15
  # Variable
16
16
  MAX_TIMEOUT = config_manager.get_int("REQUESTS", "timeout")
17
-
17
+ REQUEST_VERIFY = config_manager.get_bool('REQUESTS', 'verify')
18
18
 
19
19
  class VideoSource:
20
20
  def __init__(self, full_url, episode_data, session_id, csrf_token):
@@ -30,7 +30,8 @@ class VideoSource:
30
30
  cookies={"sessionId": session_id},
31
31
  headers={"User-Agent": get_userAgent(), "csrf-token": csrf_token},
32
32
  base_url=full_url,
33
- timeout=MAX_TIMEOUT
33
+ timeout=MAX_TIMEOUT,
34
+ verify=REQUEST_VERIFY
34
35
  )
35
36
 
36
37
  def get_playlist(self):
@@ -46,4 +47,4 @@ class VideoSource:
46
47
 
47
48
  except Exception as e:
48
49
  logging.error(f"Error in new API system: {e}")
49
- return None
50
+ return None
@@ -20,6 +20,7 @@ from .Helper.Vixcloud.js_parser import JavaScriptParser
20
20
 
21
21
  # Variable
22
22
  MAX_TIMEOUT = config_manager.get_int("REQUESTS", "timeout")
23
+ REQUEST_VERIFY = config_manager.get_bool('REQUESTS', 'verify')
23
24
  console = Console()
24
25
 
25
26
 
@@ -57,7 +58,7 @@ class VideoSource:
57
58
  }
58
59
 
59
60
  try:
60
- response = httpx.get(f"{self.url}/iframe/{self.media_id}", headers=self.headers, params=params, timeout=MAX_TIMEOUT, proxy=self.proxy)
61
+ response = httpx.get(f"{self.url}/iframe/{self.media_id}", headers=self.headers, params=params, timeout=MAX_TIMEOUT, proxy=self.proxy, verify=REQUEST_VERIFY)
61
62
  response.raise_for_status()
62
63
 
63
64
  # Parse response with BeautifulSoup to get iframe source
@@ -100,7 +101,7 @@ class VideoSource:
100
101
  """
101
102
  try:
102
103
  if self.iframe_src is not None:
103
- response = httpx.get(self.iframe_src, headers=self.headers, timeout=MAX_TIMEOUT)
104
+ response = httpx.get(self.iframe_src, headers=self.headers, timeout=MAX_TIMEOUT, verify=REQUEST_VERIFY)
104
105
  response.raise_for_status()
105
106
 
106
107
  # Parse response with BeautifulSoup to get content
@@ -178,7 +179,7 @@ class VideoSourceAnime(VideoSource):
178
179
  str: Parsed script content
179
180
  """
180
181
  try:
181
- response = httpx.get(f"{self.url}/embed-url/{episode_id}", headers=self.headers, timeout=MAX_TIMEOUT)
182
+ response = httpx.get(f"{self.url}/embed-url/{episode_id}", headers=self.headers, timeout=MAX_TIMEOUT, verify=REQUEST_VERIFY)
182
183
  response.raise_for_status()
183
184
 
184
185
  # Extract and clean embed URL
@@ -186,7 +187,7 @@ class VideoSourceAnime(VideoSource):
186
187
  self.iframe_src = embed_url
187
188
 
188
189
  # Fetch video content using embed URL
189
- video_response = httpx.get(embed_url)
190
+ video_response = httpx.get(embed_url, verify=REQUEST_VERIFY)
190
191
  video_response.raise_for_status()
191
192
 
192
193
  # Parse response with BeautifulSoup to get content of the scriot
@@ -198,4 +199,4 @@ class VideoSourceAnime(VideoSource):
198
199
 
199
200
  except Exception as e:
200
201
  logging.error(f"Error fetching embed URL: {e}")
201
- return None
202
+ return None
@@ -110,7 +110,7 @@ class M3U8_Segments:
110
110
  self.key_base_url = f"{parsed_url.scheme}://{parsed_url.netloc}/"
111
111
 
112
112
  try:
113
- client_params = {'headers': {'User-Agent': get_userAgent()}, 'timeout': MAX_TIMEOOUT}
113
+ client_params = {'headers': {'User-Agent': get_userAgent()}, 'timeout': MAX_TIMEOOUT, 'verify': REQUEST_VERIFY}
114
114
  response = httpx.get(url=key_uri, **client_params)
115
115
  response.raise_for_status()
116
116
 
@@ -158,7 +158,7 @@ class M3U8_Segments:
158
158
  """
159
159
  if self.is_index_url:
160
160
  try:
161
- client_params = {'headers': {'User-Agent': get_userAgent()}, 'timeout': MAX_TIMEOOUT}
161
+ client_params = {'headers': {'User-Agent': get_userAgent()}, 'timeout': MAX_TIMEOOUT, 'verify': REQUEST_VERIFY}
162
162
  response = httpx.get(self.url, **client_params, follow_redirects=True)
163
163
  response.raise_for_status()
164
164
 
@@ -202,7 +202,8 @@ class M3U8_Segments:
202
202
  'headers': {'User-Agent': get_userAgent()},
203
203
  'timeout': SEGMENT_MAX_TIMEOUT,
204
204
  'follow_redirects': True,
205
- 'http2': False
205
+ 'http2': False,
206
+ 'verify': REQUEST_VERIFY
206
207
  }
207
208
  return httpx.Client(**client_params)
208
209
 
@@ -463,4 +464,4 @@ class M3U8_Segments:
463
464
  f"[white]Failed segments: [red]{self.info_nFailed}")
464
465
 
465
466
  if self.info_nRetry > len(self.segments) * 0.3:
466
- console.print("[yellow]Warning: High retry count detected. Consider reducing worker count in config.")
467
+ console.print("[yellow]Warning: High retry count detected. Consider reducing worker count in config.")
@@ -88,7 +88,7 @@ def MP4_downloader(url: str, path: str, referer: str = None, headers_: dict = No
88
88
  return None, False
89
89
 
90
90
  if GET_ONLY_LINK:
91
- console.print(f"URL: {url}[/bold red]")
91
+ console.print(f"[bold red]URL: {url}[/bold red]")
92
92
  return path, True
93
93
 
94
94
  if not (url.lower().startswith('http://') or url.lower().startswith('https://')):
@@ -115,7 +115,7 @@ def MP4_downloader(url: str, path: str, referer: str = None, headers_: dict = No
115
115
  os.makedirs(os.path.dirname(path), exist_ok=True)
116
116
 
117
117
  try:
118
- with httpx.Client() as client:
118
+ with httpx.Client(verify=REQUEST_VERIFY) as client:
119
119
  with client.stream("GET", url, headers=headers) as response:
120
120
  response.raise_for_status()
121
121
  total = int(response.headers.get('content-length', 0))
@@ -188,4 +188,4 @@ def MP4_downloader(url: str, path: str, referer: str = None, headers_: dict = No
188
188
  return None, interrupt_handler.kill_download
189
189
 
190
190
  finally:
191
- signal.signal(signal.SIGINT, original_handler)
191
+ signal.signal(signal.SIGINT, original_handler)
@@ -98,4 +98,4 @@ def update():
98
98
  console.print(f"\n[red]{__title__} has been downloaded [yellow]{total_download_count} [red]times, but only [yellow]{percentual_stars}% [red]of users have starred it.\n\
99
99
  [cyan]Help the repository grow today by leaving a [yellow]star [cyan]and [yellow]sharing [cyan]it with others online!")
100
100
 
101
- time.sleep(4)
101
+ time.sleep(4)
@@ -1,5 +1,5 @@
1
1
  __title__ = 'StreamingCommunity'
2
- __version__ = '3.1.0'
2
+ __version__ = '3.2.0'
3
3
  __author__ = 'Arrowar'
4
4
  __description__ = 'A command-line program to download film'
5
5
  __copyright__ = 'Copyright 2025'
@@ -36,10 +36,8 @@ class ConfigManager:
36
36
  base_path = os.path.dirname(sys.executable)
37
37
 
38
38
  else:
39
-
40
- # Get the actual path of the module file
41
- current_file_path = os.path.abspath(__file__)
42
- base_path = os.path.dirname(os.path.dirname(os.path.dirname(current_file_path)))
39
+ # Use the current working directory where the script is executed
40
+ base_path = os.getcwd()
43
41
 
44
42
  # Initialize file paths
45
43
  self.file_path = os.path.join(base_path, file_name)
@@ -275,7 +273,7 @@ class ConfigManager:
275
273
  }
276
274
 
277
275
  try:
278
- console.print(f"[bold cyan]Retrieving site data from GitHub:[/bold cyan]")
276
+ console.print("[bold cyan]Retrieving site data from GitHub:[/bold cyan]")
279
277
  response = requests.get(domains_github_url, timeout=8, headers=headers)
280
278
 
281
279
  if response.ok:
@@ -344,7 +342,7 @@ class ConfigManager:
344
342
  try:
345
343
  logging.info(f"Downloading {filename} from {url}...")
346
344
  console.print(f"[bold cyan]File download:[/bold cyan] {os.path.basename(filename)}")
347
- response = requests.get(url, timeout=8, headers={'User-Agent': get_userAgent()})
345
+ response = requests.get(url, timeout=8, headers={'User-Agent': get_userAgent()}, verify=self.get_bool('REQUESTS', 'verify'))
348
346
 
349
347
  if response.status_code == 200:
350
348
  with open(filename, 'wb') as f:
@@ -570,4 +568,4 @@ def get_use_large_bar():
570
568
 
571
569
 
572
570
  # Initialize the ConfigManager when the module is imported
573
- config_manager = ConfigManager()
571
+ config_manager = ConfigManager()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: StreamingCommunity
3
- Version: 3.1.0
3
+ Version: 3.2.0
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