StreamingCommunity 3.3.2__tar.gz → 3.3.5__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.

Potentially problematic release.


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

Files changed (119) hide show
  1. {streamingcommunity-3.3.2/StreamingCommunity.egg-info → streamingcommunity-3.3.5}/PKG-INFO +8 -69
  2. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/README.md +7 -68
  3. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Lib/Downloader/DASH/decrypt.py +4 -1
  4. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Lib/Downloader/HLS/segments.py +126 -72
  5. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Lib/M3U8/estimator.py +44 -34
  6. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Upload/update.py +1 -1
  7. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Upload/version.py +1 -1
  8. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Util/installer/bento4_install.py +42 -12
  9. streamingcommunity-3.3.5/StreamingCommunity/Util/installer/device_install.py +133 -0
  10. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Util/installer/ffmpeg_install.py +93 -88
  11. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Util/os.py +14 -129
  12. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/run.py +2 -3
  13. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5/StreamingCommunity.egg-info}/PKG-INFO +8 -69
  14. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity.egg-info/SOURCES.txt +1 -3
  15. streamingcommunity-3.3.2/StreamingCommunity/Api/Player/ddl.py +0 -82
  16. streamingcommunity-3.3.2/StreamingCommunity/Api/Player/maxstream.py +0 -141
  17. streamingcommunity-3.3.2/StreamingCommunity/Api/Player/mixdrop.py +0 -146
  18. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/LICENSE +0 -0
  19. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/MANIFEST.in +0 -0
  20. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Player/Helper/Vixcloud/js_parser.py +0 -0
  21. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Player/Helper/Vixcloud/util.py +0 -0
  22. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Player/hdplayer.py +0 -0
  23. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Player/mediapolisvod.py +0 -0
  24. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Player/supervideo.py +0 -0
  25. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Player/sweetpixel.py +0 -0
  26. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Player/vixcloud.py +0 -0
  27. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/altadefinizione/__init__.py +0 -0
  28. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/altadefinizione/film.py +0 -0
  29. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/altadefinizione/series.py +0 -0
  30. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/altadefinizione/site.py +0 -0
  31. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/altadefinizione/util/ScrapeSerie.py +0 -0
  32. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/animeunity/__init__.py +0 -0
  33. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/animeunity/film.py +0 -0
  34. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/animeunity/serie.py +0 -0
  35. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/animeunity/site.py +0 -0
  36. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/animeunity/util/ScrapeSerie.py +0 -0
  37. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/animeworld/__init__.py +0 -0
  38. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/animeworld/film.py +0 -0
  39. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/animeworld/serie.py +0 -0
  40. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/animeworld/site.py +0 -0
  41. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/animeworld/util/ScrapeSerie.py +0 -0
  42. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/crunchyroll/__init__.py +0 -0
  43. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/crunchyroll/film.py +0 -0
  44. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/crunchyroll/series.py +0 -0
  45. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/crunchyroll/site.py +0 -0
  46. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/crunchyroll/util/ScrapeSerie.py +0 -0
  47. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/crunchyroll/util/get_license.py +0 -0
  48. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/guardaserie/__init__.py +0 -0
  49. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/guardaserie/series.py +0 -0
  50. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/guardaserie/site.py +0 -0
  51. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/guardaserie/util/ScrapeSerie.py +0 -0
  52. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/mediasetinfinity/__init__.py +0 -0
  53. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/mediasetinfinity/film.py +0 -0
  54. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/mediasetinfinity/series.py +0 -0
  55. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/mediasetinfinity/site.py +0 -0
  56. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/mediasetinfinity/util/ScrapeSerie.py +0 -0
  57. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/mediasetinfinity/util/fix_mpd.py +0 -0
  58. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/mediasetinfinity/util/get_license.py +0 -0
  59. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/raiplay/__init__.py +0 -0
  60. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/raiplay/film.py +0 -0
  61. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/raiplay/series.py +0 -0
  62. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/raiplay/site.py +0 -0
  63. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/raiplay/util/ScrapeSerie.py +0 -0
  64. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/raiplay/util/get_license.py +0 -0
  65. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/streamingcommunity/__init__.py +0 -0
  66. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/streamingcommunity/film.py +0 -0
  67. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/streamingcommunity/series.py +0 -0
  68. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/streamingcommunity/site.py +0 -0
  69. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py +0 -0
  70. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/streamingwatch/__init__.py +0 -0
  71. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/streamingwatch/film.py +0 -0
  72. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/streamingwatch/series.py +0 -0
  73. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/streamingwatch/site.py +0 -0
  74. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Site/streamingwatch/util/ScrapeSerie.py +0 -0
  75. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Template/Class/SearchType.py +0 -0
  76. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Template/Util/__init__.py +0 -0
  77. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Template/Util/manage_ep.py +0 -0
  78. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Template/__init__.py +0 -0
  79. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Template/config_loader.py +0 -0
  80. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Api/Template/site.py +0 -0
  81. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Lib/Downloader/DASH/cdm_helpher.py +0 -0
  82. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Lib/Downloader/DASH/downloader.py +0 -0
  83. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Lib/Downloader/DASH/parser.py +0 -0
  84. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Lib/Downloader/DASH/segments.py +0 -0
  85. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Lib/Downloader/HLS/downloader.py +0 -0
  86. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Lib/Downloader/MP4/downloader.py +0 -0
  87. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Lib/Downloader/TOR/downloader.py +0 -0
  88. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Lib/Downloader/__init__.py +0 -0
  89. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Lib/FFmpeg/__init__.py +0 -0
  90. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Lib/FFmpeg/capture.py +0 -0
  91. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Lib/FFmpeg/command.py +0 -0
  92. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Lib/FFmpeg/util.py +0 -0
  93. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Lib/M3U8/__init__.py +0 -0
  94. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Lib/M3U8/decryptor.py +0 -0
  95. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Lib/M3U8/parser.py +0 -0
  96. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Lib/M3U8/url_fixer.py +0 -0
  97. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Lib/TMBD/__init__.py +0 -0
  98. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Lib/TMBD/obj_tmbd.py +0 -0
  99. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Lib/TMBD/tmdb.py +0 -0
  100. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/TelegramHelp/__init__.py +0 -0
  101. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/TelegramHelp/config.json +0 -0
  102. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/TelegramHelp/telegram_bot.py +0 -0
  103. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Util/color.py +0 -0
  104. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Util/config_json.py +0 -0
  105. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Util/headers.py +0 -0
  106. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Util/http_client.py +0 -0
  107. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Util/installer/binary_paths.py +0 -0
  108. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Util/logger.py +0 -0
  109. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Util/message.py +0 -0
  110. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/Util/table.py +0 -0
  111. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/__init__.py +0 -0
  112. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity/global_search.py +0 -0
  113. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity.egg-info/dependency_links.txt +0 -0
  114. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity.egg-info/entry_points.txt +0 -0
  115. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity.egg-info/requires.txt +0 -0
  116. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/StreamingCommunity.egg-info/top_level.txt +0 -0
  117. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/requirements.txt +0 -0
  118. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/setup.cfg +0 -0
  119. {streamingcommunity-3.3.2 → streamingcommunity-3.3.5}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: StreamingCommunity
3
- Version: 3.3.2
3
+ Version: 3.3.5
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
@@ -78,43 +78,24 @@ Dynamic: requires-python
78
78
 
79
79
  ## Manual Installation
80
80
 
81
- <details>
82
- <summary>📝 Manual Installation & Update</summary>
83
-
84
- <details>
85
- <summary>📋 Requirements</summary>
86
-
87
- Prerequisites:
88
- * [Python](https://www.python.org/downloads/) > 3.8
89
- </details>
90
-
91
- <details>
92
81
  <summary>⚙️ Python Dependencies</summary>
93
82
 
94
- ```bash
95
- pip install -r requirements.txt
96
- ```
97
- </details>
98
-
99
- <details>
100
- <summary>🚀 Usage</summary>
101
-
102
83
  #### On Windows:
103
84
 
104
85
  ```powershell
105
- python test_run.py
86
+ pip install -r requirements.txt
106
87
  ```
107
88
 
108
89
  #### On Linux/MacOS:
109
90
 
110
91
  ```bash
111
- python3 test_run.py
92
+ pip3 install -r requirements.txt
93
+ # or alternatively:
94
+ python3 -m pip install -r requirements.txt
112
95
  ```
113
- </details>
114
96
 
115
- ## Update
116
-
117
- Keep your script up to date with the latest features by running:
97
+ <detail>
98
+ <summary> Update </summary>
118
99
 
119
100
  ### On Windows:
120
101
 
@@ -128,8 +109,6 @@ python update.py
128
109
  python3 update.py
129
110
  ```
130
111
 
131
- </details>
132
-
133
112
  ---
134
113
 
135
114
  ## Quick Start
@@ -161,7 +140,6 @@ python3 test_run.py
161
140
 
162
141
  ## Downloaders
163
142
 
164
- <details>
165
143
  <summary>📥 HLS</summary>
166
144
 
167
145
  Download HTTP Live Streaming (HLS) content from m3u8 URLs.
@@ -178,9 +156,7 @@ downloader.download()
178
156
  ```
179
157
 
180
158
  See [HLS example](./Test/EasyDownload//HLS.py) for complete usage.
181
- </details>
182
159
 
183
- <details>
184
160
  <summary>📽️ MP4</summary>
185
161
 
186
162
  Direct MP4 file downloader with support for custom headers and referrer.
@@ -197,9 +173,7 @@ downloader.download()
197
173
  ```
198
174
 
199
175
  See [MP4 example](./Test/EasyDownload/MP4.py) for complete usage.
200
- </details>
201
176
 
202
- <details>
203
177
  <summary>🧲 TOR</summary>
204
178
 
205
179
  Download content via torrent magnet links.
@@ -215,9 +189,7 @@ client.start_download()
215
189
  ```
216
190
 
217
191
  See [Torrent example](./Test/EasyDownload/TOR.py) for complete usage.
218
- </details>
219
192
 
220
- <details>
221
193
  <summary>🎞️ DASH</summary>
222
194
 
223
195
  ```python
@@ -239,19 +211,15 @@ dash_process.get_status()
239
211
  ```
240
212
 
241
213
  See [DASH example](./Test/EasyDownload/DASH.py) for complete usage.
242
- </details>
243
214
 
244
215
  ---
245
216
 
246
217
  ## Configuration
247
218
 
248
- <details>
249
219
  <summary>⚙️ Overview</summary>
250
220
 
251
221
  You can change some behaviors by tweaking the configuration file. The configuration file is divided into several main sections.
252
- </details>
253
222
 
254
- <details>
255
223
  <summary>📁 OUT_FOLDER</summary>
256
224
 
257
225
  ```json
@@ -287,9 +255,7 @@ You can change some behaviors by tweaking the configuration file. The configurat
287
255
 
288
256
  #### Additional Options
289
257
  - `add_siteName`: Appends site_name to root path (can be changed with `--add_siteName true/false`)
290
- </details>
291
258
 
292
- <details>
293
259
  <summary>🔄 QBIT_CONFIG Settings</summary>
294
260
 
295
261
  ```json
@@ -304,9 +270,7 @@ You can change some behaviors by tweaking the configuration file. The configurat
304
270
  ```
305
271
 
306
272
  To enable qBittorrent integration, follow the setup guide [here](https://github.com/lgallard/qBittorrent-Controller/wiki/How-to-enable-the-qBittorrent-Web-UI).
307
- </details>
308
273
 
309
- <details>
310
274
  <summary>📥 M3U8_DOWNLOAD Settings</summary>
311
275
 
312
276
  ```json
@@ -349,9 +313,7 @@ To enable qBittorrent integration, follow the setup guide [here](https://github.
349
313
 
350
314
  #### Cleanup
351
315
  - `cleanup_tmp_folder`: Remove temporary .ts files after download
352
- </details>
353
316
 
354
- <details>
355
317
  <summary>🔍 M3U8_PARSER Settings</summary>
356
318
 
357
319
  ```json
@@ -376,11 +338,9 @@ To enable qBittorrent integration, follow the setup guide [here](https://github.
376
338
  #### Link options
377
339
  - `get_only_link`: Return M3U8 playlist/index URL instead of downloading
378
340
 
379
- </details>
380
341
 
381
342
  ## Update Domains
382
343
 
383
- <details>
384
344
  <summary>🌐 Domain Configuration Methods</summary>
385
345
 
386
346
  There are two ways to manage the domains for the supported websites:
@@ -436,7 +396,6 @@ If online fetching fails, the script will automatically attempt to use the local
436
396
  #### 💡 Adding a New Site
437
397
  If you want to request a new site to be added to the repository, message us on the Discord server!
438
398
 
439
- </details>
440
399
 
441
400
  ---
442
401
 
@@ -498,13 +457,10 @@ StreamingCommunity --site streamingcommunity --search "interstellar" --auto-firs
498
457
 
499
458
  # Global Search
500
459
 
501
- <details>
502
460
  <summary>🔍 Feature Overview</summary>
503
461
 
504
462
  You can now search across multiple streaming sites at once using the Global Search feature. This allows you to find content more efficiently without having to search each site individually.
505
- </details>
506
463
 
507
- <details>
508
464
  <summary>🎯 Search Options</summary>
509
465
 
510
466
  When using Global Search, you have three ways to select which sites to search:
@@ -512,9 +468,7 @@ When using Global Search, you have three ways to select which sites to search:
512
468
  1. **Search all sites** - Searches across all available streaming sites
513
469
  2. **Search by category** - Group sites by their categories (movies, series, anime, etc.)
514
470
  3. **Select specific sites** - Choose individual sites to include in your search
515
- </details>
516
471
 
517
- <details>
518
472
  <summary>📝 Navigation and Selection</summary>
519
473
 
520
474
  After performing a search:
@@ -527,16 +481,13 @@ After performing a search:
527
481
  2. Select an item by number to view details or download
528
482
 
529
483
  3. The system will automatically use the appropriate site's API to handle the download
530
- </details>
531
484
 
532
- <details>
533
485
  <summary>⌨️ Command Line Arguments</summary>
534
486
 
535
487
  The Global Search can be configured from the command line:
536
488
 
537
489
  - `--global` - Perform a global search across multiple sites.
538
490
  - `-s`, `--search` - Specify the search terms.
539
- </details>
540
491
 
541
492
  ---
542
493
 
@@ -544,7 +495,6 @@ The Global Search can be configured from the command line:
544
495
 
545
496
  ## Hook/Plugin System
546
497
 
547
- <details>
548
498
  <summary>🧩 Run custom scripts before/after the main execution</summary>
549
499
 
550
500
  Define pre/post hooks in `config.json` under the `HOOKS` section. Supported types:
@@ -595,13 +545,11 @@ Notes:
595
545
 
596
546
  Hooks are executed automatically by `run.py` before (`pre_run`) and after (`post_run`) the main execution.
597
547
 
598
- </details>
599
548
 
600
549
  ---
601
550
 
602
551
  # Docker
603
552
 
604
- <details>
605
553
  <summary>🐳 Basic Setup</summary>
606
554
 
607
555
  Build the image:
@@ -619,9 +567,7 @@ Tip CLI:
619
567
  ```
620
568
  docker exec -it streaming-community python test_run.py
621
569
  ```
622
- </details>
623
570
 
624
- <details>
625
571
  <summary>💾 Custom Storage Location</summary>
626
572
 
627
573
  By default the videos will be saved in `/app/Video` inside the container. To save them on your machine:
@@ -629,9 +575,7 @@ By default the videos will be saved in `/app/Video` inside the container. To sav
629
575
  ```
630
576
  docker run -it --dns 9.9.9.9 -p 8000:8000 -v /path/to/download:/app/Video streaming-community-api
631
577
  ```
632
- </details>
633
578
 
634
- <details>
635
579
  <summary>🛠️ Quick Setup with Make</summary>
636
580
 
637
581
  Inside the Makefile (install `make`) are already configured two commands to build and run the container:
@@ -644,12 +588,10 @@ make LOCAL_DIR=/path/to/download run-container
644
588
  ```
645
589
 
646
590
  The `run-container` command mounts also the `config.json` file, so any change to the configuration file is reflected immediately without having to rebuild the image.
647
- </details>
648
591
 
649
592
 
650
593
  # Telegram Usage
651
594
 
652
- <details>
653
595
  <summary>⚙️ Basic Configuration</summary>
654
596
 
655
597
  The bot was created to replace terminal commands and allow interaction via Telegram. Each download runs within a screen session, enabling multiple downloads to run simultaneously.
@@ -679,9 +621,7 @@ TOKEN_TELEGRAM=IlTuo2131TOKEN$12D3Telegram
679
621
  AUTHORIZED_USER_ID=12345678
680
622
  DEBUG=False
681
623
  ```
682
- </details>
683
624
 
684
- <details>
685
625
  <summary>📥 Dependencies & Launch</summary>
686
626
 
687
627
  Install dependencies:
@@ -692,8 +632,7 @@ pip install -r requirements.txt
692
632
  Start the bot (from /StreamingCommunity/TelegramHelp):
693
633
  ```bash
694
634
  python3 telegram_bot.py
695
- ```
696
- </details>d
635
+ ```d
697
636
  - 🔹 `/list` – Displays the status of active downloads, with options to:
698
637
  - Stop an incorrect download using `/stop <ID>`
699
638
  - View the real-time output of a download using `/screen <ID>`
@@ -40,43 +40,24 @@
40
40
 
41
41
  ## Manual Installation
42
42
 
43
- <details>
44
- <summary>📝 Manual Installation & Update</summary>
45
-
46
- <details>
47
- <summary>📋 Requirements</summary>
48
-
49
- Prerequisites:
50
- * [Python](https://www.python.org/downloads/) > 3.8
51
- </details>
52
-
53
- <details>
54
43
  <summary>⚙️ Python Dependencies</summary>
55
44
 
56
- ```bash
57
- pip install -r requirements.txt
58
- ```
59
- </details>
60
-
61
- <details>
62
- <summary>🚀 Usage</summary>
63
-
64
45
  #### On Windows:
65
46
 
66
47
  ```powershell
67
- python test_run.py
48
+ pip install -r requirements.txt
68
49
  ```
69
50
 
70
51
  #### On Linux/MacOS:
71
52
 
72
53
  ```bash
73
- python3 test_run.py
54
+ pip3 install -r requirements.txt
55
+ # or alternatively:
56
+ python3 -m pip install -r requirements.txt
74
57
  ```
75
- </details>
76
58
 
77
- ## Update
78
-
79
- Keep your script up to date with the latest features by running:
59
+ <detail>
60
+ <summary> Update </summary>
80
61
 
81
62
  ### On Windows:
82
63
 
@@ -90,8 +71,6 @@ python update.py
90
71
  python3 update.py
91
72
  ```
92
73
 
93
- </details>
94
-
95
74
  ---
96
75
 
97
76
  ## Quick Start
@@ -123,7 +102,6 @@ python3 test_run.py
123
102
 
124
103
  ## Downloaders
125
104
 
126
- <details>
127
105
  <summary>📥 HLS</summary>
128
106
 
129
107
  Download HTTP Live Streaming (HLS) content from m3u8 URLs.
@@ -140,9 +118,7 @@ downloader.download()
140
118
  ```
141
119
 
142
120
  See [HLS example](./Test/EasyDownload//HLS.py) for complete usage.
143
- </details>
144
121
 
145
- <details>
146
122
  <summary>📽️ MP4</summary>
147
123
 
148
124
  Direct MP4 file downloader with support for custom headers and referrer.
@@ -159,9 +135,7 @@ downloader.download()
159
135
  ```
160
136
 
161
137
  See [MP4 example](./Test/EasyDownload/MP4.py) for complete usage.
162
- </details>
163
138
 
164
- <details>
165
139
  <summary>🧲 TOR</summary>
166
140
 
167
141
  Download content via torrent magnet links.
@@ -177,9 +151,7 @@ client.start_download()
177
151
  ```
178
152
 
179
153
  See [Torrent example](./Test/EasyDownload/TOR.py) for complete usage.
180
- </details>
181
154
 
182
- <details>
183
155
  <summary>🎞️ DASH</summary>
184
156
 
185
157
  ```python
@@ -201,19 +173,15 @@ dash_process.get_status()
201
173
  ```
202
174
 
203
175
  See [DASH example](./Test/EasyDownload/DASH.py) for complete usage.
204
- </details>
205
176
 
206
177
  ---
207
178
 
208
179
  ## Configuration
209
180
 
210
- <details>
211
181
  <summary>⚙️ Overview</summary>
212
182
 
213
183
  You can change some behaviors by tweaking the configuration file. The configuration file is divided into several main sections.
214
- </details>
215
184
 
216
- <details>
217
185
  <summary>📁 OUT_FOLDER</summary>
218
186
 
219
187
  ```json
@@ -249,9 +217,7 @@ You can change some behaviors by tweaking the configuration file. The configurat
249
217
 
250
218
  #### Additional Options
251
219
  - `add_siteName`: Appends site_name to root path (can be changed with `--add_siteName true/false`)
252
- </details>
253
220
 
254
- <details>
255
221
  <summary>🔄 QBIT_CONFIG Settings</summary>
256
222
 
257
223
  ```json
@@ -266,9 +232,7 @@ You can change some behaviors by tweaking the configuration file. The configurat
266
232
  ```
267
233
 
268
234
  To enable qBittorrent integration, follow the setup guide [here](https://github.com/lgallard/qBittorrent-Controller/wiki/How-to-enable-the-qBittorrent-Web-UI).
269
- </details>
270
235
 
271
- <details>
272
236
  <summary>📥 M3U8_DOWNLOAD Settings</summary>
273
237
 
274
238
  ```json
@@ -311,9 +275,7 @@ To enable qBittorrent integration, follow the setup guide [here](https://github.
311
275
 
312
276
  #### Cleanup
313
277
  - `cleanup_tmp_folder`: Remove temporary .ts files after download
314
- </details>
315
278
 
316
- <details>
317
279
  <summary>🔍 M3U8_PARSER Settings</summary>
318
280
 
319
281
  ```json
@@ -338,11 +300,9 @@ To enable qBittorrent integration, follow the setup guide [here](https://github.
338
300
  #### Link options
339
301
  - `get_only_link`: Return M3U8 playlist/index URL instead of downloading
340
302
 
341
- </details>
342
303
 
343
304
  ## Update Domains
344
305
 
345
- <details>
346
306
  <summary>🌐 Domain Configuration Methods</summary>
347
307
 
348
308
  There are two ways to manage the domains for the supported websites:
@@ -398,7 +358,6 @@ If online fetching fails, the script will automatically attempt to use the local
398
358
  #### 💡 Adding a New Site
399
359
  If you want to request a new site to be added to the repository, message us on the Discord server!
400
360
 
401
- </details>
402
361
 
403
362
  ---
404
363
 
@@ -460,13 +419,10 @@ StreamingCommunity --site streamingcommunity --search "interstellar" --auto-firs
460
419
 
461
420
  # Global Search
462
421
 
463
- <details>
464
422
  <summary>🔍 Feature Overview</summary>
465
423
 
466
424
  You can now search across multiple streaming sites at once using the Global Search feature. This allows you to find content more efficiently without having to search each site individually.
467
- </details>
468
425
 
469
- <details>
470
426
  <summary>🎯 Search Options</summary>
471
427
 
472
428
  When using Global Search, you have three ways to select which sites to search:
@@ -474,9 +430,7 @@ When using Global Search, you have three ways to select which sites to search:
474
430
  1. **Search all sites** - Searches across all available streaming sites
475
431
  2. **Search by category** - Group sites by their categories (movies, series, anime, etc.)
476
432
  3. **Select specific sites** - Choose individual sites to include in your search
477
- </details>
478
433
 
479
- <details>
480
434
  <summary>📝 Navigation and Selection</summary>
481
435
 
482
436
  After performing a search:
@@ -489,16 +443,13 @@ After performing a search:
489
443
  2. Select an item by number to view details or download
490
444
 
491
445
  3. The system will automatically use the appropriate site's API to handle the download
492
- </details>
493
446
 
494
- <details>
495
447
  <summary>⌨️ Command Line Arguments</summary>
496
448
 
497
449
  The Global Search can be configured from the command line:
498
450
 
499
451
  - `--global` - Perform a global search across multiple sites.
500
452
  - `-s`, `--search` - Specify the search terms.
501
- </details>
502
453
 
503
454
  ---
504
455
 
@@ -506,7 +457,6 @@ The Global Search can be configured from the command line:
506
457
 
507
458
  ## Hook/Plugin System
508
459
 
509
- <details>
510
460
  <summary>🧩 Run custom scripts before/after the main execution</summary>
511
461
 
512
462
  Define pre/post hooks in `config.json` under the `HOOKS` section. Supported types:
@@ -557,13 +507,11 @@ Notes:
557
507
 
558
508
  Hooks are executed automatically by `run.py` before (`pre_run`) and after (`post_run`) the main execution.
559
509
 
560
- </details>
561
510
 
562
511
  ---
563
512
 
564
513
  # Docker
565
514
 
566
- <details>
567
515
  <summary>🐳 Basic Setup</summary>
568
516
 
569
517
  Build the image:
@@ -581,9 +529,7 @@ Tip CLI:
581
529
  ```
582
530
  docker exec -it streaming-community python test_run.py
583
531
  ```
584
- </details>
585
532
 
586
- <details>
587
533
  <summary>💾 Custom Storage Location</summary>
588
534
 
589
535
  By default the videos will be saved in `/app/Video` inside the container. To save them on your machine:
@@ -591,9 +537,7 @@ By default the videos will be saved in `/app/Video` inside the container. To sav
591
537
  ```
592
538
  docker run -it --dns 9.9.9.9 -p 8000:8000 -v /path/to/download:/app/Video streaming-community-api
593
539
  ```
594
- </details>
595
540
 
596
- <details>
597
541
  <summary>🛠️ Quick Setup with Make</summary>
598
542
 
599
543
  Inside the Makefile (install `make`) are already configured two commands to build and run the container:
@@ -606,12 +550,10 @@ make LOCAL_DIR=/path/to/download run-container
606
550
  ```
607
551
 
608
552
  The `run-container` command mounts also the `config.json` file, so any change to the configuration file is reflected immediately without having to rebuild the image.
609
- </details>
610
553
 
611
554
 
612
555
  # Telegram Usage
613
556
 
614
- <details>
615
557
  <summary>⚙️ Basic Configuration</summary>
616
558
 
617
559
  The bot was created to replace terminal commands and allow interaction via Telegram. Each download runs within a screen session, enabling multiple downloads to run simultaneously.
@@ -641,9 +583,7 @@ TOKEN_TELEGRAM=IlTuo2131TOKEN$12D3Telegram
641
583
  AUTHORIZED_USER_ID=12345678
642
584
  DEBUG=False
643
585
  ```
644
- </details>
645
586
 
646
- <details>
647
587
  <summary>📥 Dependencies & Launch</summary>
648
588
 
649
589
  Install dependencies:
@@ -654,8 +594,7 @@ pip install -r requirements.txt
654
594
  Start the bot (from /StreamingCommunity/TelegramHelp):
655
595
  ```bash
656
596
  python3 telegram_bot.py
657
- ```
658
- </details>d
597
+ ```d
659
598
  - 🔹 `/list` – Displays the status of active downloads, with options to:
660
599
  - Stop an incorrect download using `/stop <ID>`
661
600
  - View the real-time output of a download using `/screen <ID>`
@@ -9,6 +9,9 @@ import logging
9
9
  from rich.console import Console
10
10
 
11
11
 
12
+ # Internal utilities
13
+ from StreamingCommunity.Util.os import get_mp4decrypt_path
14
+
12
15
  # Variable
13
16
  console = Console()
14
17
 
@@ -45,7 +48,7 @@ def decrypt_with_mp4decrypt(encrypted_path, kid, key, output_path=None, cleanup=
45
48
  output_path = os.path.splitext(encrypted_path)[0] + "_decrypted.mp4"
46
49
 
47
50
  key_format = f"{kid.lower()}:{key.lower()}"
48
- cmd = ["mp4decrypt", "--key", key_format, encrypted_path, output_path]
51
+ cmd = [get_mp4decrypt_path(), "--key", key_format, encrypted_path, output_path]
49
52
  logging.info(f"Running command: {' '.join(cmd)}")
50
53
 
51
54
  try: