StreamingCommunity 3.3.0__py3-none-any.whl → 3.3.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (40) hide show
  1. StreamingCommunity/Api/Site/altadefinizione/__init__.py +37 -17
  2. StreamingCommunity/Api/Site/animeunity/__init__.py +36 -16
  3. StreamingCommunity/Api/Site/animeworld/__init__.py +50 -6
  4. StreamingCommunity/Api/Site/crunchyroll/__init__.py +42 -16
  5. StreamingCommunity/Api/Site/crunchyroll/site.py +1 -1
  6. StreamingCommunity/Api/Site/guardaserie/__init__.py +50 -6
  7. StreamingCommunity/Api/Site/mediasetinfinity/__init__.py +43 -5
  8. StreamingCommunity/Api/Site/mediasetinfinity/film.py +1 -1
  9. StreamingCommunity/Api/Site/mediasetinfinity/site.py +6 -3
  10. StreamingCommunity/Api/Site/mediasetinfinity/util/ScrapeSerie.py +6 -7
  11. StreamingCommunity/Api/Site/mediasetinfinity/util/get_license.py +189 -0
  12. StreamingCommunity/Api/Site/raiplay/__init__.py +45 -14
  13. StreamingCommunity/Api/Site/raiplay/series.py +9 -5
  14. StreamingCommunity/Api/Site/raiplay/site.py +6 -4
  15. StreamingCommunity/Api/Site/raiplay/util/ScrapeSerie.py +6 -2
  16. StreamingCommunity/Api/Site/streamingcommunity/__init__.py +7 -2
  17. StreamingCommunity/Api/Site/streamingcommunity/site.py +0 -3
  18. StreamingCommunity/Api/Site/streamingwatch/__init__.py +44 -14
  19. StreamingCommunity/Api/Site/streamingwatch/site.py +0 -3
  20. StreamingCommunity/Lib/Downloader/DASH/cdm_helpher.py +1 -18
  21. StreamingCommunity/Lib/Downloader/DASH/downloader.py +88 -52
  22. StreamingCommunity/Lib/Downloader/HLS/downloader.py +38 -14
  23. StreamingCommunity/Lib/Downloader/HLS/segments.py +1 -1
  24. StreamingCommunity/Lib/FFmpeg/command.py +66 -7
  25. StreamingCommunity/Lib/FFmpeg/util.py +16 -13
  26. StreamingCommunity/Lib/M3U8/decryptor.py +0 -14
  27. StreamingCommunity/Lib/TMBD/tmdb.py +0 -12
  28. StreamingCommunity/Upload/version.py +1 -1
  29. StreamingCommunity/Util/{bento4_installer.py → installer/bento4_install.py} +15 -33
  30. StreamingCommunity/Util/installer/binary_paths.py +83 -0
  31. StreamingCommunity/Util/{ffmpeg_installer.py → installer/ffmpeg_install.py} +11 -54
  32. StreamingCommunity/Util/logger.py +3 -8
  33. StreamingCommunity/Util/os.py +67 -68
  34. StreamingCommunity/run.py +1 -1
  35. {streamingcommunity-3.3.0.dist-info → streamingcommunity-3.3.2.dist-info}/METADATA +313 -498
  36. {streamingcommunity-3.3.0.dist-info → streamingcommunity-3.3.2.dist-info}/RECORD +40 -39
  37. {streamingcommunity-3.3.0.dist-info → streamingcommunity-3.3.2.dist-info}/WHEEL +0 -0
  38. {streamingcommunity-3.3.0.dist-info → streamingcommunity-3.3.2.dist-info}/entry_points.txt +0 -0
  39. {streamingcommunity-3.3.0.dist-info → streamingcommunity-3.3.2.dist-info}/licenses/LICENSE +0 -0
  40. {streamingcommunity-3.3.0.dist-info → streamingcommunity-3.3.2.dist-info}/top_level.txt +0 -0
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: StreamingCommunity
3
- Version: 3.3.0
4
- Home-page: https://github.com/Lovi-0/StreamingCommunity
5
- Author: Lovi-0
6
- Project-URL: Bug Reports, https://github.com/Lovi-0/StreamingCommunity/issues
7
- Project-URL: Source, https://github.com/Lovi-0/StreamingCommunity
3
+ Version: 3.3.2
4
+ Home-page: https://github.com/Arrowar/StreamingCommunity
5
+ Author: Arrowar
6
+ Project-URL: Bug Reports, https://github.com/Arrowar/StreamingCommunity/issues
7
+ Project-URL: Source, https://github.com/Arrowar/StreamingCommunity
8
8
  Keywords: streaming community
9
9
  Requires-Python: >=3.8
10
10
  Description-Content-Type: text/markdown
@@ -25,6 +25,7 @@ Requires-Dist: ua-generator
25
25
  Requires-Dist: qbittorrent-api
26
26
  Requires-Dist: pyTelegramBotAPI
27
27
  Requires-Dist: pywidevine
28
+ Requires-Dist: seleniumbase
28
29
  Dynamic: author
29
30
  Dynamic: description
30
31
  Dynamic: description-content-type
@@ -44,181 +45,184 @@ Dynamic: requires-python
44
45
  [![License](https://img.shields.io/github/license/Arrowar/StreamingCommunity?logo=gnu&logoColor=white&labelColor=2d3748&color=e53e3e&style=for-the-badge)](https://github.com/Arrowar/StreamingCommunity/blob/main/LICENSE)
45
46
 
46
47
  ## 💝 Support the Project
47
-
48
48
  [![Donate PayPal](https://img.shields.io/badge/💳_Donate-PayPal-00457C?style=for-the-badge&logo=paypal&logoColor=white&labelColor=2d3748)](https://www.paypal.com/donate/?hosted_button_id=UXTWMT8P6HE2C)
49
- ## 🚀 Download & Install
50
49
 
50
+ ## 🚀 Download & Install
51
51
  [![Windows](https://img.shields.io/badge/🪟_Windows-0078D4?style=for-the-badge&logo=windows&logoColor=white&labelColor=2d3748)](https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_win.exe)
52
52
  [![macOS](https://img.shields.io/badge/🍎_macOS-000000?style=for-the-badge&logo=apple&logoColor=white&labelColor=2d3748)](https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_mac)
53
53
  [![Linux latest](https://img.shields.io/badge/🐧_Linux_latest-FCC624?style=for-the-badge&logo=linux&logoColor=black&labelColor=2d3748)](https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_linux_latest)
54
54
  [![Linux 22.04](https://img.shields.io/badge/🐧_Linux_22.04-FCC624?style=for-the-badge&logo=linux&logoColor=black&labelColor=2d3748)](https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_linux_previous)
55
+
55
56
  ---
56
57
 
57
- *⚡ **Quick Start:** `pip install streamingcommunity` or download the executable for your platform above*
58
+ *⚡ **Quick Start:** `pip install StreamingCommunity && StreamingCommunity`*
58
59
 
59
60
  </div>
60
61
 
61
- # 📋 Table of Contents
62
+ ---
63
+
64
+ ## 📖 Table of Contents
65
+ - [Installation](#manual-installation)
66
+ - [Quick Start](#quick-start)
67
+ - [Downloaders](#downloaders)
68
+ - [Configuration](#configuration)
69
+ - [Login](.github/.site/login.md)
70
+ - [Usage Examples](#usage-examples)
71
+ - [Global Search](#global-search)
72
+ - [Advanced Features](#advanced-options)
73
+ - [Deployment](#docker)
74
+ - [Tutorials](#tutorials)
75
+ - [Related Projects](#useful-project)
76
+
77
+ ---
78
+
79
+ ## Manual Installation
62
80
 
63
81
  <details>
64
- <summary>📦 Installation</summary>
65
-
66
- - 🔄 [Update Domains](#update-domains)
67
- - 🌐 [Available Sites](https://arrowar.github.io/StreamingCommunity/)
68
- - 🛠️ [Installation](#installation)
69
- - 📦 [PyPI Installation](#1-pypi-installation)
70
- - 🔄 [Automatic Installation](#2-automatic-installation)
71
- - 🔧 [Binary Location](#binary-location)
72
- - 📝 [Manual Installation](#3-manual-installation)
73
- - 💻 [Win 7](https://github.com/Ghost6446/StreamingCommunity_api/wiki/Installation#win-7)
74
- - 📱 [Termux](https://github.com/Ghost6446/StreamingCommunity_api/wiki/Termux)
75
- </details>
82
+ <summary>📝 Manual Installation & Update</summary>
76
83
 
77
84
  <details>
78
- <summary>⚙️ Configuration & Usage</summary>
79
-
80
- - ⚙️ [Configuration](#configuration)
81
- - 🔧 [Default](#default-settings)
82
- - 📩 [Request](#requests-settings)
83
- - 📥 [Download](#m3u8_download-settings)
84
- - 🔍 [Parser](#m3u8_parser-settings)
85
- - 📝 [Command](#command)
86
- - 🔍 [Global search](#global-search)
87
- - 💻 [Examples of terminal](#examples-of-terminal-usage)
85
+ <summary>📋 Requirements</summary>
86
+
87
+ Prerequisites:
88
+ * [Python](https://www.python.org/downloads/) > 3.8
88
89
  </details>
89
90
 
90
91
  <details>
91
- <summary>🔧 Advanced Features</summary>
92
+ <summary>⚙️ Python Dependencies</summary>
92
93
 
93
- - 🔧 [Manual domain configuration](#update-domains)
94
- - 🐳 [Docker](#docker)
95
- - 📝 [Telegram Usage](#telegram-usage)
96
- - 🧩 [Hook/Plugin System](#hookplugin-system)
94
+ ```bash
95
+ pip install -r requirements.txt
96
+ ```
97
97
  </details>
98
98
 
99
99
  <details>
100
- <summary>ℹ️ Help & Support</summary>
100
+ <summary>🚀 Usage</summary>
101
+
102
+ #### On Windows:
101
103
 
102
- - 🎓 [Tutorial](#tutorials)
103
- - 📝 [To do](#to-do)
104
- - ⚠️ [Disclaimer](#disclaimer)
104
+ ```powershell
105
+ python test_run.py
106
+ ```
107
+
108
+ #### On Linux/MacOS:
109
+
110
+ ```bash
111
+ python3 test_run.py
112
+ ```
105
113
  </details>
106
114
 
107
- # Installation
115
+ ## Update
108
116
 
109
- ## 1. PyPI Installation
117
+ Keep your script up to date with the latest features by running:
110
118
 
111
- Install directly from PyPI:
119
+ ### On Windows:
112
120
 
113
- ```bash
114
- pip install StreamingCommunity
121
+ ```powershell
122
+ python update.py
115
123
  ```
116
124
 
117
- Update to the latest version:
125
+ ### On Linux/MacOS:
118
126
 
119
127
  ```bash
120
- pip install --upgrade StreamingCommunity
128
+ python3 update.py
121
129
  ```
122
130
 
123
- ## Quick Start
131
+ </details>
124
132
 
125
- Create a simple script (`run_streaming.py`) to launch the main application:
133
+ ---
126
134
 
127
- ```python
128
- from StreamingCommunity.run import main
135
+ ## Quick Start
129
136
 
130
- if __name__ == "__main__":
131
- main()
137
+ After installing via pip, just run:
138
+ ```bash
139
+ StreamingCommunity
132
140
  ```
141
+ to start the application.
133
142
 
134
143
  Run the script:
135
-
136
144
  ```bash
137
145
  python run_streaming.py
138
146
  ```
139
147
 
140
- ## Modules
148
+ **Manual execution:**
149
+
150
+ **Windows:**
151
+ ```powershell
152
+ python test_run.py
153
+ ```
154
+
155
+ **Linux/MacOS:**
156
+ ```bash
157
+ python3 test_run.py
158
+ ```
159
+
160
+ ---
161
+
162
+ ## Downloaders
141
163
 
142
164
  <details>
143
- <summary>📥 HLS Downloader</summary>
165
+ <summary>📥 HLS</summary>
144
166
 
145
167
  Download HTTP Live Streaming (HLS) content from m3u8 URLs.
146
168
 
147
169
  ```python
148
170
  from StreamingCommunity import HLS_Downloader
149
171
 
150
- # Initialize with m3u8 URL and optional output path
151
172
  downloader = HLS_Downloader(
152
173
  m3u8_url="https://example.com/stream.m3u8",
153
- output_path="/downloads/video.mp4" # Optional
174
+ output_path="/downloads/video.mp4"
154
175
  )
155
176
 
156
- # Start the download
157
177
  downloader.download()
158
178
  ```
159
179
 
160
- See [HLS example](./Test/Download/HLS.py) for complete usage.
180
+ See [HLS example](./Test/EasyDownload//HLS.py) for complete usage.
161
181
  </details>
162
182
 
163
183
  <details>
164
- <summary>📽️ MP4 Downloader</summary>
184
+ <summary>📽️ MP4</summary>
165
185
 
166
186
  Direct MP4 file downloader with support for custom headers and referrer.
167
187
 
168
188
  ```python
169
189
  from StreamingCommunity import MP4_downloader
170
190
 
171
- # Basic usage
172
191
  downloader = MP4_downloader(
173
192
  url="https://example.com/video.mp4",
174
193
  path="/downloads/saved_video.mp4"
175
194
  )
176
195
 
177
- # Advanced usage with custom headers and referrer
178
- headers = {
179
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
180
- }
181
- downloader = MP4_downloader(
182
- url="https://example.com/video.mp4",
183
- path="/downloads/saved_video.mp4",
184
- referer="https://example.com",
185
- headers_=headers
186
- )
187
-
188
- # Start download
189
196
  downloader.download()
190
197
  ```
191
198
 
192
- See [MP4 example](./Test/Download/MP4.py) for complete usage.
199
+ See [MP4 example](./Test/EasyDownload/MP4.py) for complete usage.
193
200
  </details>
194
201
 
195
202
  <details>
196
- <summary>🧲 Torrent Client</summary>
203
+ <summary>🧲 TOR</summary>
197
204
 
198
205
  Download content via torrent magnet links.
199
206
 
200
207
  ```python
201
208
  from StreamingCommunity import TOR_downloader
202
209
 
203
- # Initialize torrent client
204
210
  client = TOR_downloader()
205
211
 
206
- # Add magnet link
207
212
  client.add_magnet_link("magnet:?xt=urn:btih:example_hash&dn=example_name", save_path=".")
208
213
 
209
- # Start download
210
214
  client.start_download()
211
215
  ```
212
216
 
213
- See [Torrent example](./Test/Download/TOR.py) for complete usage.
217
+ See [Torrent example](./Test/EasyDownload/TOR.py) for complete usage.
214
218
  </details>
215
219
 
216
220
  <details>
217
- <summary>🎞️ DASH Downloader</summary>
221
+ <summary>🎞️ DASH</summary>
218
222
 
219
223
  ```python
220
- license_url = "https://example.com/stream.mpd"
221
- mpd_url = "https://example.com/get_license"
224
+ mpd_url = "https://example.com/stream.mpd"
225
+ license_url = "https://example.com/get_license"
222
226
 
223
227
  dash_process = DASH_Downloader(
224
228
  cdm_device=get_wvd_path(),
@@ -234,249 +238,12 @@ if dash_process.download_and_decrypt():
234
238
  dash_process.get_status()
235
239
  ```
236
240
 
241
+ See [DASH example](./Test/EasyDownload/DASH.py) for complete usage.
237
242
  </details>
238
243
 
239
- ## Binary Location
240
-
241
- <details>
242
- <summary>📂 Default Locations</summary>
243
-
244
- - **Windows**: `C:\binary`
245
- - **MacOS**: `~/Applications/binary`
246
- - **Linux**: `~/.local/bin/binary`
247
- </details>
248
-
249
- <details>
250
- <summary>🪟 Windows Configuration</summary>
251
-
252
- 1. Move the binary folder from `C:\binary` to your desired location
253
- 2. Add the new path to Windows environment variables:
254
- - Open Start menu and search for "Environment Variables"
255
- - Click "Edit the system environment variables"
256
- - Click "Environment Variables" button
257
- - Under "System Variables", find and select "Path"
258
- - Click "Edit"
259
- - Add the new binary folder path
260
- - Click "OK" to save changes
261
-
262
- For detailed Windows PATH instructions, see the [Windows PATH guide](https://www.eukhost.com/kb/how-to-add-to-the-path-on-windows-10-and-windows-11/).
263
- </details>
264
-
265
- <details>
266
- <summary>🍎 MacOS Configuration</summary>
267
-
268
- 1. Move the binary folder from `~/Applications/binary` to your desired location
269
- 2. Add the new path to your shell's configuration file:
270
- ```bash
271
- # For bash (edit ~/.bash_profile)
272
- export PATH="/your/custom/path:$PATH"
273
-
274
- # For zsh (edit ~/.zshrc)
275
- export PATH="/your/custom/path:$PATH"
276
- ```
277
- 3. Reload your shell configuration:
278
- ```bash
279
- # For bash
280
- source ~/.bash_profile
281
-
282
- # For zsh
283
- source ~/.zshrc
284
- ```
285
- </details>
286
-
287
- <details>
288
- <summary>🐧 Linux Configuration</summary>
289
-
290
- 1. Move the binary folder from `~/.local/bin/binary` to your desired location
291
- 2. Add the new path to your shell's configuration file:
292
- ```bash
293
- # For bash (edit ~/.bashrc)
294
- export PATH="/your/custom/path:$PATH"
295
-
296
- # For zsh (edit ~/.zshrc)
297
- export PATH="/your/custom/path:$PATH"
298
- ```
299
- 3. Apply the changes:
300
- ```bash
301
- source ~/.bashrc # for bash
302
- # or
303
- source ~/.zshrc # for zsh
304
- ```
305
- </details>
306
-
307
- > [!IMPORTANT]
308
- > After moving the binary folder, ensure that all executables (ffmpeg, ffprobe, ffplay) are present in the new location and have the correct permissions:
309
- > - Windows: `.exe` extensions required
310
- > - MacOS/Linux: Ensure files have execute permissions (`chmod +x filename`)
311
-
312
- ## 3. Manual Installation
313
-
314
- <details>
315
- <summary>📋 Requirements</summary>
316
-
317
- Prerequisites:
318
- * [Python](https://www.python.org/downloads/) > 3.8
319
- * [FFmpeg](https://www.gyan.dev/ffmpeg/builds/)
320
- </details>
321
-
322
- <details>
323
- <summary>⚙️ Python Dependencies</summary>
324
-
325
- ```bash
326
- pip install -r requirements.txt
327
- ```
328
- </details>
329
-
330
- <details>
331
- <summary>🚀 Usage</summary>
332
-
333
- #### On Windows:
334
-
335
- ```powershell
336
- python test_run.py
337
- ```
338
-
339
- #### On Linux/MacOS:
340
-
341
- ```bash
342
- python3 test_run.py
343
- ```
344
- </details>
345
-
346
- ## Update
347
-
348
- Keep your script up to date with the latest features by running:
349
-
350
- ### On Windows:
351
-
352
- ```powershell
353
- python update.py
354
- ```
355
-
356
- ### On Linux/MacOS:
357
-
358
- ```bash
359
- python3 update.py
360
- ```
361
-
362
- <br>
363
-
364
- ## Update Domains
365
-
366
- <details>
367
- <summary>🌐 Domain Configuration Methods</summary>
368
-
369
- There are two ways to manage the domains for the supported websites:
370
-
371
- ### 1. Online Domain Fetching (Recommended)
372
-
373
- Set `fetch_domain_online` to `true` in your `config.json`:
374
-
375
- ```json
376
- {
377
- "DEFAULT": {
378
- "fetch_domain_online": true
379
- }
380
- }
381
- ```
382
-
383
- This will:
384
- - Download the latest domains from the GitHub repository
385
- - Automatically save them to a local `domains.json` file
386
- - Ensure you always have the most up-to-date streaming site domains
387
-
388
- ### 2. Local Domain Configuration
389
-
390
- Set `fetch_domain_online` to `false` to use a local configuration:
391
-
392
- ```json
393
- {
394
- "DEFAULT": {
395
- "fetch_domain_online": false
396
- }
397
- }
398
- ```
399
-
400
- Then create a `domains.json` file in the root directory with your domain configuration:
401
-
402
- ```json
403
- {
404
- "altadefinizione": {
405
- "domain": "si",
406
- "full_url": "https://altadefinizione.si/"
407
- },
408
- "streamingcommunity": {
409
- "domain": "best",
410
- "full_url": "https://streamingcommunity.best/"
411
- }
412
- }
413
- ```
414
-
415
- ### 3. Automatic Fallback
416
-
417
- If online fetching fails, the script will automatically attempt to use the local `domains.json` file as a fallback, ensuring maximum reliability.
418
-
419
- #### 💡 Adding a New Site
420
- If you want to request a new site to be added to the repository, message us on the Discord server!
421
-
422
- </details>
423
-
424
- ## Hook/Plugin System
425
-
426
- <details>
427
- <summary>🧩 Run custom scripts before/after the main execution</summary>
428
-
429
- Define pre/post hooks in `config.json` under the `HOOKS` section. Supported types:
430
-
431
- - **python**: runs `script.py` with the current Python interpreter
432
- - **bash/sh**: runs via `bash`/`sh` on macOS/Linux
433
- - **bat/cmd**: runs via `cmd /c` on Windows
434
- - Inline **command**: use `command` instead of `path`
435
-
436
- Sample configuration:
437
-
438
- ```json
439
- {
440
- "HOOKS": {
441
- "pre_run": [
442
- {
443
- "name": "prepare-env",
444
- "type": "python",
445
- "path": "scripts/prepare.py",
446
- "args": ["--clean"],
447
- "env": {"MY_FLAG": "1"},
448
- "cwd": "~",
449
- "os": ["linux", "darwin"],
450
- "timeout": 60,
451
- "enabled": true,
452
- "continue_on_error": true
453
- }
454
- ],
455
- "post_run": [
456
- {
457
- "name": "notify",
458
- "type": "bash",
459
- "command": "echo 'Download completed'"
460
- }
461
- ]
462
- }
463
- }
464
- ```
465
-
466
- Notes:
467
-
468
- - **os**: optional OS filter (`windows`, `darwin` (`darwin` is used for MacOS), `linux`).
469
- - **args**: list of arguments passed to the script.
470
- - **env**: additional environment variables.
471
- - **cwd**: working directory for the script; supports `~` and environment variables.
472
- - **continue_on_error**: if `false`, the app stops when the hook fails.
473
- - **timeout**: in seconds; when exceeded the hook fails.
474
-
475
- Hooks are executed automatically by `run.py` before (`pre_run`) and after (`post_run`) the main execution.
476
-
477
- </details>
244
+ ---
478
245
 
479
- # Configuration
246
+ ## Configuration
480
247
 
481
248
  <details>
482
249
  <summary>⚙️ Overview</summary>
@@ -485,31 +252,7 @@ You can change some behaviors by tweaking the configuration file. The configurat
485
252
  </details>
486
253
 
487
254
  <details>
488
- <summary>🔧 DEFAULT Settings</summary>
489
-
490
- ```json
491
- {
492
- "DEFAULT": {
493
- "debug": false,
494
- "show_message": true,
495
- "show_trending": true,
496
- "fetch_domain_online": true,
497
- "telegram_bot": false,
498
- "validate_github_config": false
499
- }
500
- }
501
- ```
502
-
503
- - `debug`: Enables debug logging
504
- - `show_message`: Displays informational messages
505
- - `show_trending`: Shows trending content
506
- - `fetch_domain_online`: If true, downloads domains from GitHub repository and saves to local file; if false, uses existing local domains.json file
507
- - `telegram_bot`: Enables Telegram bot integration
508
- - `validate_github_config`: If set to false, disables validation and updating of configuration from GitHub
509
- </details>
510
-
511
- <details>
512
- <summary>📁 OUT_FOLDER Settings</summary>
255
+ <summary>📁 OUT_FOLDER</summary>
513
256
 
514
257
  ```json
515
258
  {
@@ -563,51 +306,12 @@ You can change some behaviors by tweaking the configuration file. The configurat
563
306
  To enable qBittorrent integration, follow the setup guide [here](https://github.com/lgallard/qBittorrent-Controller/wiki/How-to-enable-the-qBittorrent-Web-UI).
564
307
  </details>
565
308
 
566
- <details>
567
- <summary>📡 REQUESTS Settings</summary>
568
-
569
- ```json
570
- {
571
- "REQUESTS": {
572
- "verify": false,
573
- "timeout": 20,
574
- "max_retry": 8,
575
- "proxy": {
576
- "http": "http://username:password@host:port",
577
- "https": "https://username:password@host:port"
578
- }
579
- }
580
- }
581
- ```
582
-
583
- - `verify`: Verifies SSL certificates
584
- - `timeout`: Maximum timeout (in seconds) for each request
585
- - `max_retry`: Number of retry attempts per segment during M3U8 index download
586
- - `proxy`: Proxy configuration for HTTP/HTTPS requests
587
- * Set to empty string `""` to disable proxies (default)
588
- * Example with authentication:
589
- ```json
590
- "proxy": {
591
- "http": "http://username:password@host:port",
592
- "https": "https://username:password@host:port"
593
- }
594
- ```
595
- * Example without authentication:
596
- ```json
597
- "proxy": {
598
- "http": "http://host:port",
599
- "https": "https://host:port"
600
- }
601
- ```
602
- </details>
603
-
604
309
  <details>
605
310
  <summary>📥 M3U8_DOWNLOAD Settings</summary>
606
311
 
607
312
  ```json
608
313
  {
609
314
  "M3U8_DOWNLOAD": {
610
- "tqdm_delay": 0.01,
611
315
  "default_video_workser": 12,
612
316
  "default_audio_workser": 12,
613
317
  "segment_timeout": 8,
@@ -620,26 +324,23 @@ To enable qBittorrent integration, follow the setup guide [here](https://github.
620
324
  "ita", // Specify language codes or use ["*"] to download all available subtitles
621
325
  "eng"
622
326
  ],
623
- "cleanup_tmp_folder": true
327
+ "cleanup_tmp_folder": true,
328
+ "get_only_link": false
624
329
  }
625
330
  }
626
331
  ```
627
332
 
628
333
  #### Performance Settings
629
- - `tqdm_delay`: Delay between progress bar updates
630
334
  - `default_video_workser`: Number of threads for video download
631
335
  * Can be changed with `--default_video_worker <number>`
632
336
  - `default_audio_workser`: Number of threads for audio download
633
337
  * Can be changed with `--default_audio_worker <number>`
634
- - `segment_timeout`: Timeout for downloading individual segments
635
338
 
636
339
  #### Audio Settings
637
- - `download_audio`: Whether to download audio tracks
638
340
  - `specific_list_audio`: List of audio languages to download
639
341
  * Can be changed with `--specific_list_audio ita,eng`
640
342
 
641
343
  #### Subtitle Settings
642
- - `download_subtitle`: Whether to download subtitles
643
344
  - `merge_subs`: Whether to merge subtitles with video
644
345
  - `specific_list_subtitles`: List of subtitle languages to download
645
346
  * Use `["*"]` to download all available subtitles
@@ -650,66 +351,6 @@ To enable qBittorrent integration, follow the setup guide [here](https://github.
650
351
  - `cleanup_tmp_folder`: Remove temporary .ts files after download
651
352
  </details>
652
353
 
653
- <details>
654
- <summary>🌍 Available Language Codes</summary>
655
-
656
- | European | Asian | Middle Eastern | Others |
657
- |-----------------|-----------------|-----------------|-----------------|
658
- | ita - Italian | chi - Chinese | ara - Arabic | eng - English |
659
- | spa - Spanish | jpn - Japanese | heb - Hebrew | por - Portuguese|
660
- | fre - French | kor - Korean | tur - Turkish | fil - Filipino |
661
- | ger - German | hin - Hindi | | ind - Indonesian|
662
- | rus - Russian | mal - Malayalam | | may - Malay |
663
- | swe - Swedish | tam - Tamil | | vie - Vietnamese|
664
- | pol - Polish | tel - Telugu | | |
665
- | ukr - Ukrainian | tha - Thai | | |
666
- </details>
667
-
668
- <details>
669
- <summary>🎥 M3U8_CONVERSION Settings</summary>
670
-
671
- ```json
672
- {
673
- "M3U8_CONVERSION": {
674
- "use_codec": false,
675
- "use_vcodec": true,
676
- "use_acodec": true,
677
- "use_bitrate": true,
678
- "use_gpu": false,
679
- "default_preset": "ultrafast"
680
- }
681
- }
682
- ```
683
-
684
- #### Basic Settings
685
- - `use_codec`: Use specific codec settings
686
- - `use_vcodec`: Use specific video codec
687
- - `use_acodec`: Use specific audio codec
688
- - `use_bitrate`: Apply bitrate settings
689
- - `use_gpu`: Enable GPU acceleration (if available)
690
- - `default_preset`: FFmpeg encoding preset
691
-
692
- #### Encoding Presets
693
- The `default_preset` configuration can be set to:
694
- - `ultrafast`: Extremely fast conversion but larger file size
695
- - `superfast`: Very fast with good quality/size ratio
696
- - `veryfast`: Fast with good compression
697
- - `faster`: Optimal balance for most users
698
- - `fast`: Good compression, moderate time
699
- - `medium`: FFmpeg default setting
700
- - `slow`: High quality, slower process
701
- - `slower`: Very high quality, slow process
702
- - `veryslow`: Maximum quality, very slow process
703
-
704
- #### GPU Acceleration
705
- When `use_gpu` is enabled, supports:
706
- - NVIDIA: NVENC
707
- - AMD: AMF
708
- - Intel: QSV
709
-
710
- Note: Requires updated drivers and FFmpeg with hardware acceleration support.
711
- </details>
712
-
713
354
  <details>
714
355
  <summary>🔍 M3U8_PARSER Settings</summary>
715
356
 
@@ -731,13 +372,130 @@ Note: Requires updated drivers and FFmpeg with hardware acceleration support.
731
372
  - 720p (1280x720)
732
373
  - 480p (640x480)
733
374
  - 360p (640x360)
734
- - 320p (480x320)
735
- - 240p (426x240)
736
- - 240p (320x240)
737
- - 144p (256x144)
375
+
376
+ #### Link options
377
+ - `get_only_link`: Return M3U8 playlist/index URL instead of downloading
738
378
 
739
379
  </details>
740
380
 
381
+ ## Update Domains
382
+
383
+ <details>
384
+ <summary>🌐 Domain Configuration Methods</summary>
385
+
386
+ There are two ways to manage the domains for the supported websites:
387
+
388
+ ### 1. Online Domain Fetching (Recommended)
389
+
390
+ Set `fetch_domain_online` to `true` in your `config.json`:
391
+
392
+ ```json
393
+ {
394
+ "DEFAULT": {
395
+ "fetch_domain_online": true
396
+ }
397
+ }
398
+ ```
399
+
400
+ This will:
401
+ - Download the latest domains from the GitHub repository
402
+ - Automatically save them to a local `domains.json` file
403
+ - Ensure you always have the most up-to-date streaming site domains
404
+
405
+ ### 2. Local Domain Configuration
406
+
407
+ Set `fetch_domain_online` to `false` to use a local configuration:
408
+
409
+ ```json
410
+ {
411
+ "DEFAULT": {
412
+ "fetch_domain_online": false
413
+ }
414
+ }
415
+ ```
416
+
417
+ Then create a `domains.json` file in the root directory with your domain configuration:
418
+
419
+ ```json
420
+ {
421
+ "altadefinizione": {
422
+ "domain": "si",
423
+ "full_url": "https://altadefinizione.si/"
424
+ },
425
+ "streamingcommunity": {
426
+ "domain": "best",
427
+ "full_url": "https://streamingcommunity.best/"
428
+ }
429
+ }
430
+ ```
431
+
432
+ ### 3. Automatic Fallback
433
+
434
+ If online fetching fails, the script will automatically attempt to use the local `domains.json` file as a fallback, ensuring maximum reliability.
435
+
436
+ #### 💡 Adding a New Site
437
+ If you want to request a new site to be added to the repository, message us on the Discord server!
438
+
439
+ </details>
440
+
441
+ ---
442
+
443
+ ## Usage Examples
444
+
445
+ ### Basic Commands
446
+
447
+ ```bash
448
+ # Show help (includes available sites by name and by index)
449
+ python test_run.py -h
450
+
451
+ # Run a specific site by name with a search term
452
+ python test_run.py --site streamingcommunity --search "interstellar"
453
+
454
+ # Run a specific site by numeric index
455
+ python test_run.py --site 0 --search "interstellar"
456
+
457
+ # Auto-download the first result from search
458
+ python test_run.py --site streamingcommunity --search "interstellar" --auto-first
459
+ ```
460
+
461
+ ### Advanced Options
462
+
463
+ ```bash
464
+ # Change video and audio workers
465
+ python test_run.py --default_video_worker 8 --default_audio_worker 8
466
+
467
+ # Set specific languages
468
+ python test_run.py --specific_list_audio ita,eng --specific_list_subtitles eng,spa
469
+
470
+ # Keep console open after download
471
+ python test_run.py --not_close true
472
+ ```
473
+
474
+ ### Global Search Commands
475
+
476
+ ```bash
477
+ # Use global search
478
+ python test_run.py --global -s "cars"
479
+
480
+ # Select specific category
481
+ python test_run.py --category 1 # Search in anime category
482
+ python test_run.py --category 2 # Search in movies & series
483
+ python test_run.py --category 3 # Search in series
484
+ python test_run.py --category 4 # Search in torrent category
485
+ ```
486
+
487
+ ### PyPI Installation Usage
488
+
489
+ ```bash
490
+ # If installed via pip, you can simply run:
491
+ StreamingCommunity
492
+
493
+ # Or use the entrypoint with arguments, for example:
494
+ StreamingCommunity --site streamingcommunity --search "interstellar" --auto-first
495
+ ```
496
+
497
+ ---
498
+
741
499
  # Global Search
742
500
 
743
501
  <details>
@@ -780,42 +538,66 @@ The Global Search can be configured from the command line:
780
538
  - `-s`, `--search` - Specify the search terms.
781
539
  </details>
782
540
 
783
- # Examples of terminal usage
541
+ ---
784
542
 
785
- ```bash
786
- # Run a specific site by name with a search term
787
- python test_run.py --site streamingcommunity --search "interstellar"
543
+ ## 🧩 Advanced Features
788
544
 
789
- # Run a specific site by numeric index (as shown in -h help)
790
- python test_run.py --site 0 --search "interstellar"
545
+ ## Hook/Plugin System
791
546
 
792
- # Auto-download the first result from search (requires --site and --search)
793
- python test_run.py --site streamingcommunity --search "interstellar" --auto-first
547
+ <details>
548
+ <summary>🧩 Run custom scripts before/after the main execution</summary>
794
549
 
795
- # Show help (includes available sites by name and by index)
796
- python test_run.py -h
550
+ Define pre/post hooks in `config.json` under the `HOOKS` section. Supported types:
797
551
 
798
- # Change video and audio workers
799
- python test_run.py --default_video_worker 8 --default_audio_worker 8
552
+ - **python**: runs `script.py` with the current Python interpreter
553
+ - **bash/sh**: runs via `bash`/`sh` on macOS/Linux
554
+ - **bat/cmd**: runs via `cmd /c` on Windows
555
+ - Inline **command**: use `command` instead of `path`
800
556
 
801
- # Set specific languages
802
- python test_run.py --specific_list_audio ita,eng --specific_list_subtitles eng,spa
557
+ Sample configuration:
803
558
 
804
- # Keep console open after download
805
- python test_run.py --not_close true
559
+ ```json
560
+ {
561
+ "HOOKS": {
562
+ "pre_run": [
563
+ {
564
+ "name": "prepare-env",
565
+ "type": "python",
566
+ "path": "scripts/prepare.py",
567
+ "args": ["--clean"],
568
+ "env": {"MY_FLAG": "1"},
569
+ "cwd": "~",
570
+ "os": ["linux", "darwin"],
571
+ "timeout": 60,
572
+ "enabled": true,
573
+ "continue_on_error": true
574
+ }
575
+ ],
576
+ "post_run": [
577
+ {
578
+ "name": "notify",
579
+ "type": "bash",
580
+ "command": "echo 'Download completed'"
581
+ }
582
+ ]
583
+ }
584
+ }
585
+ ```
806
586
 
807
- # Use global search
808
- python test_run.py --global -s "cars"
587
+ Notes:
809
588
 
810
- # Select specific category
811
- python test_run.py --category 1 # Search in anime category
812
- python test_run.py --category 2 # Search in movies & series
813
- python test_run.py --category 3 # Search in series
814
- python test_run.py --category 4 # Search in torrent category
589
+ - **os**: optional OS filter (`windows`, `darwin` (`darwin` is used for MacOS), `linux`).
590
+ - **args**: list of arguments passed to the script.
591
+ - **env**: additional environment variables.
592
+ - **cwd**: working directory for the script; supports `~` and environment variables.
593
+ - **continue_on_error**: if `false`, the app stops when the hook fails.
594
+ - **timeout**: in seconds; when exceeded the hook fails.
815
595
 
816
- # If installed via pip, you can also use the entrypoint directly
817
- streamingcommunity --site streamingcommunity --search "interstellar" --auto-first
818
- ```
596
+ Hooks are executed automatically by `run.py` before (`pre_run`) and after (`post_run`) the main execution.
597
+
598
+ </details>
599
+
600
+ ---
819
601
 
820
602
  # Docker
821
603
 
@@ -829,7 +611,13 @@ docker build -t streaming-community-api .
829
611
 
830
612
  Run the container with Cloudflare DNS for better connectivity:
831
613
  ```
832
- docker run -it --dns 1.1.1.1 -p 8000:8000 streaming-community-api
614
+ docker run -d --name streaming-community --dns 1.1.1.1 -p 8000:8000 streaming-community-api
615
+ ```
616
+
617
+ Tip CLI:
618
+ - To run the CLI inside the container, attach to the container and execute:
619
+ ```
620
+ docker exec -it streaming-community python test_run.py
833
621
  ```
834
622
  </details>
835
623
 
@@ -858,6 +646,7 @@ make LOCAL_DIR=/path/to/download run-container
858
646
  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.
859
647
  </details>
860
648
 
649
+
861
650
  # Telegram Usage
862
651
 
863
652
  <details>
@@ -904,11 +693,35 @@ Start the bot (from /StreamingCommunity/TelegramHelp):
904
693
  ```bash
905
694
  python3 telegram_bot.py
906
695
  ```
907
- </details>
696
+ </details>d
697
+ - 🔹 `/list` – Displays the status of active downloads, with options to:
698
+ - Stop an incorrect download using `/stop <ID>`
699
+ - View the real-time output of a download using `/screen <ID>`
700
+
701
+ ⚠️ **Warning:** If a download is interrupted, incomplete files may remain in the folder specified in config.json. These files must be deleted manually.
702
+
703
+ #### Setup
704
+ 1. Create an `.env` file with your Telegram token and user ID:
705
+ ```env
706
+ TOKEN_TELEGRAM=IlTuo2131TOKEN$12D3Telegram
707
+ AUTHORIZED_USER_ID=12345678
708
+ DEBUG=False
709
+ ```
710
+
711
+ 2. Install dependencies:
712
+ ```bash
713
+ pip install -r requirements.txt
714
+ ```
908
715
 
909
- # SITE_LOGIN key
910
- To use some site, you may need a SITE_LOGIN key.
911
- See [guide.md](.github/.site/guide.md) for instructions on how to obtain it.
716
+ 3. Start the bot (from `/StreamingCommunity/TelegramHelp`):
717
+ ```bash
718
+ python3 telegram_bot.py
719
+ ```
720
+
721
+ **Running in background:**
722
+ Start the bot inside a screen session and press Ctrl + A, followed by D, to detach from the session without stopping the bot.
723
+
724
+ ---
912
725
 
913
726
  # Tutorials
914
727
 
@@ -917,25 +730,27 @@ See [guide.md](.github/.site/guide.md) for instructions on how to obtain it.
917
730
  - [Pypy](https://www.youtube.com/watch?v=C6m9ZKOK0p4)
918
731
  - [Compiled](https://www.youtube.com/watch?v=pm4lqsxkTVo)
919
732
 
920
- # To Do
921
733
 
922
- - To Finish [website API](https://github.com/Arrowar/StreamingCommunity/tree/test_gui_1)
923
- - To finish [website API 2](https://github.com/hydrosh/StreamingCommunity/tree/test_gui_1)
734
+ # Useful Project
924
735
 
925
- ## Useful Project
926
-
927
- ### 🎯 [Unit3Dup](https://github.com/31December99/Unit3Dup)
736
+ ## 🎯 [Unit3Dup](https://github.com/31December99/Unit3Dup)
928
737
  Bot in Python per la generazione e l'upload automatico di torrent su tracker basati su Unit3D.
929
738
 
930
-
931
- ### 🇮🇹 [MammaMia](https://github.com/UrloMythus/MammaMia)
739
+ ## 🇮🇹 [MammaMia](https://github.com/UrloMythus/MammaMia)
932
740
  Addon per Stremio che consente lo streaming HTTPS di film, serie, anime e TV in diretta in lingua italiana.
933
741
 
934
- ### 🧩 [streamingcommunity-unofficialapi](https://github.com/Blu-Tiger/streamingcommunity-unofficialapi)
742
+ ## 🧩 [streamingcommunity-unofficialapi](https://github.com/Blu-Tiger/streamingcommunity-unofficialapi)
935
743
  API non ufficiale per accedere ai contenuti del sito italiano StreamingCommunity.
936
744
 
937
- # Disclaimer
938
745
 
939
- This software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the software or the use or other dealings in the software.
746
+ # Disclaimer
747
+ > **Note:** This software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the software or the use or other dealings in the software.
940
748
 
941
749
  > **Note:** DASH downloads require a valid L3 CDM (Content Decryption Module) to proceed. This project does not provide, include, or facilitate obtaining any CDM. Users are responsible for ensuring compliance with all applicable laws and requirements regarding DRM and decryption modules.
750
+
751
+ ---
752
+ <div align="center">
753
+ **Made with ❤️ for streaming lovers**
754
+
755
+ *If you find this project useful, consider starring it! ⭐*
756
+ </div>