StreamingCommunity 3.3.0__tar.gz → 3.3.2__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.
- {streamingcommunity-3.3.0/StreamingCommunity.egg-info → streamingcommunity-3.3.2}/PKG-INFO +313 -498
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/README.md +307 -493
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/altadefinizione/__init__.py +37 -17
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/animeunity/__init__.py +36 -16
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/animeworld/__init__.py +50 -6
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/crunchyroll/__init__.py +42 -16
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/crunchyroll/site.py +1 -1
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/guardaserie/__init__.py +50 -6
- {streamingcommunity-3.3.0/StreamingCommunity/Api/Site/streamingwatch → streamingcommunity-3.3.2/StreamingCommunity/Api/Site/mediasetinfinity}/__init__.py +158 -127
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/mediasetinfinity/film.py +1 -1
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/mediasetinfinity/site.py +6 -3
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/mediasetinfinity/util/ScrapeSerie.py +6 -7
- streamingcommunity-3.3.2/StreamingCommunity/Api/Site/mediasetinfinity/util/get_license.py +374 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/raiplay/__init__.py +45 -14
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/raiplay/series.py +9 -5
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/raiplay/site.py +6 -4
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/raiplay/util/ScrapeSerie.py +6 -2
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/streamingcommunity/__init__.py +7 -2
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/streamingcommunity/site.py +0 -3
- streamingcommunity-3.3.2/StreamingCommunity/Api/Site/streamingwatch/__init__.py +158 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/streamingwatch/site.py +0 -3
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/Downloader/DASH/cdm_helpher.py +1 -18
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/Downloader/DASH/downloader.py +88 -52
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/Downloader/HLS/downloader.py +38 -14
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/Downloader/HLS/segments.py +1 -1
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/FFmpeg/command.py +66 -7
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/FFmpeg/util.py +16 -13
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/M3U8/decryptor.py +0 -14
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/TMBD/tmdb.py +0 -12
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Upload/version.py +1 -1
- streamingcommunity-3.3.0/StreamingCommunity/Util/bento4_installer.py → streamingcommunity-3.3.2/StreamingCommunity/Util/installer/bento4_install.py +15 -33
- streamingcommunity-3.3.2/StreamingCommunity/Util/installer/binary_paths.py +83 -0
- streamingcommunity-3.3.0/StreamingCommunity/Util/ffmpeg_installer.py → streamingcommunity-3.3.2/StreamingCommunity/Util/installer/ffmpeg_install.py +11 -54
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Util/logger.py +3 -8
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Util/os.py +67 -68
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/run.py +1 -1
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2/StreamingCommunity.egg-info}/PKG-INFO +313 -498
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity.egg-info/SOURCES.txt +4 -3
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity.egg-info/requires.txt +1 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/requirements.txt +2 -1
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/setup.py +4 -4
- streamingcommunity-3.3.0/StreamingCommunity/Api/Site/mediasetinfinity/__init__.py +0 -121
- streamingcommunity-3.3.0/StreamingCommunity/Api/Site/mediasetinfinity/util/get_license.py +0 -185
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/LICENSE +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/MANIFEST.in +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Player/Helper/Vixcloud/js_parser.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Player/Helper/Vixcloud/util.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Player/ddl.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Player/hdplayer.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Player/maxstream.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Player/mediapolisvod.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Player/mixdrop.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Player/supervideo.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Player/sweetpixel.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Player/vixcloud.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/altadefinizione/film.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/altadefinizione/series.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/altadefinizione/site.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/altadefinizione/util/ScrapeSerie.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/animeunity/film.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/animeunity/serie.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/animeunity/site.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/animeunity/util/ScrapeSerie.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/animeworld/film.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/animeworld/serie.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/animeworld/site.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/animeworld/util/ScrapeSerie.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/crunchyroll/film.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/crunchyroll/series.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/crunchyroll/util/ScrapeSerie.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/crunchyroll/util/get_license.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/guardaserie/series.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/guardaserie/site.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/guardaserie/util/ScrapeSerie.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/mediasetinfinity/series.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/mediasetinfinity/util/fix_mpd.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/raiplay/film.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/raiplay/util/get_license.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/streamingcommunity/film.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/streamingcommunity/series.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/streamingwatch/film.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/streamingwatch/series.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Site/streamingwatch/util/ScrapeSerie.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Template/Class/SearchType.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Template/Util/__init__.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Template/Util/manage_ep.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Template/__init__.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Template/config_loader.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Api/Template/site.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/Downloader/DASH/decrypt.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/Downloader/DASH/parser.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/Downloader/DASH/segments.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/Downloader/MP4/downloader.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/Downloader/TOR/downloader.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/Downloader/__init__.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/FFmpeg/__init__.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/FFmpeg/capture.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/M3U8/__init__.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/M3U8/estimator.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/M3U8/parser.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/M3U8/url_fixer.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/TMBD/__init__.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Lib/TMBD/obj_tmbd.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/TelegramHelp/__init__.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/TelegramHelp/config.json +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/TelegramHelp/telegram_bot.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Upload/update.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Util/color.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Util/config_json.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Util/headers.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Util/http_client.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Util/message.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/Util/table.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/__init__.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity/global_search.py +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity.egg-info/dependency_links.txt +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity.egg-info/entry_points.txt +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/StreamingCommunity.egg-info/top_level.txt +0 -0
- {streamingcommunity-3.3.0 → streamingcommunity-3.3.2}/setup.cfg +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: StreamingCommunity
|
|
3
|
-
Version: 3.3.
|
|
4
|
-
Home-page: https://github.com/
|
|
5
|
-
Author:
|
|
6
|
-
Project-URL: Bug Reports, https://github.com/
|
|
7
|
-
Project-URL: Source, https://github.com/
|
|
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
|
[](https://github.com/Arrowar/StreamingCommunity/blob/main/LICENSE)
|
|
45
46
|
|
|
46
47
|
## 💝 Support the Project
|
|
47
|
-
|
|
48
48
|
[](https://www.paypal.com/donate/?hosted_button_id=UXTWMT8P6HE2C)
|
|
49
|
-
## 🚀 Download & Install
|
|
50
49
|
|
|
50
|
+
## 🚀 Download & Install
|
|
51
51
|
[](https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_win.exe)
|
|
52
52
|
[](https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_mac)
|
|
53
53
|
[](https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_linux_latest)
|
|
54
54
|
[](https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_linux_previous)
|
|
55
|
+
|
|
55
56
|
---
|
|
56
57
|
|
|
57
|
-
*⚡ **Quick Start:** `pip install
|
|
58
|
+
*⚡ **Quick Start:** `pip install StreamingCommunity && StreamingCommunity`*
|
|
58
59
|
|
|
59
60
|
</div>
|
|
60
61
|
|
|
61
|
-
|
|
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
|
|
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
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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
|
|
92
|
+
<summary>⚙️ Python Dependencies</summary>
|
|
92
93
|
|
|
93
|
-
|
|
94
|
-
-
|
|
95
|
-
|
|
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
|
|
100
|
+
<summary>🚀 Usage</summary>
|
|
101
|
+
|
|
102
|
+
#### On Windows:
|
|
101
103
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
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
|
-
|
|
115
|
+
## Update
|
|
108
116
|
|
|
109
|
-
|
|
117
|
+
Keep your script up to date with the latest features by running:
|
|
110
118
|
|
|
111
|
-
|
|
119
|
+
### On Windows:
|
|
112
120
|
|
|
113
|
-
```
|
|
114
|
-
|
|
121
|
+
```powershell
|
|
122
|
+
python update.py
|
|
115
123
|
```
|
|
116
124
|
|
|
117
|
-
|
|
125
|
+
### On Linux/MacOS:
|
|
118
126
|
|
|
119
127
|
```bash
|
|
120
|
-
|
|
128
|
+
python3 update.py
|
|
121
129
|
```
|
|
122
130
|
|
|
123
|
-
|
|
131
|
+
</details>
|
|
124
132
|
|
|
125
|
-
|
|
133
|
+
---
|
|
126
134
|
|
|
127
|
-
|
|
128
|
-
from StreamingCommunity.run import main
|
|
135
|
+
## Quick Start
|
|
129
136
|
|
|
130
|
-
|
|
131
|
-
|
|
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
|
-
|
|
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
|
|
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"
|
|
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/
|
|
180
|
+
See [HLS example](./Test/EasyDownload//HLS.py) for complete usage.
|
|
161
181
|
</details>
|
|
162
182
|
|
|
163
183
|
<details>
|
|
164
|
-
<summary>📽️ MP4
|
|
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/
|
|
199
|
+
See [MP4 example](./Test/EasyDownload/MP4.py) for complete usage.
|
|
193
200
|
</details>
|
|
194
201
|
|
|
195
202
|
<details>
|
|
196
|
-
<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/
|
|
217
|
+
See [Torrent example](./Test/EasyDownload/TOR.py) for complete usage.
|
|
214
218
|
</details>
|
|
215
219
|
|
|
216
220
|
<details>
|
|
217
|
-
<summary>🎞️ DASH
|
|
221
|
+
<summary>🎞️ DASH</summary>
|
|
218
222
|
|
|
219
223
|
```python
|
|
220
|
-
|
|
221
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
735
|
-
|
|
736
|
-
|
|
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
|
-
|
|
541
|
+
---
|
|
784
542
|
|
|
785
|
-
|
|
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
|
-
|
|
790
|
-
python test_run.py --site 0 --search "interstellar"
|
|
545
|
+
## Hook/Plugin System
|
|
791
546
|
|
|
792
|
-
|
|
793
|
-
|
|
547
|
+
<details>
|
|
548
|
+
<summary>🧩 Run custom scripts before/after the main execution</summary>
|
|
794
549
|
|
|
795
|
-
|
|
796
|
-
python test_run.py -h
|
|
550
|
+
Define pre/post hooks in `config.json` under the `HOOKS` section. Supported types:
|
|
797
551
|
|
|
798
|
-
|
|
799
|
-
|
|
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
|
-
|
|
802
|
-
python test_run.py --specific_list_audio ita,eng --specific_list_subtitles eng,spa
|
|
557
|
+
Sample configuration:
|
|
803
558
|
|
|
804
|
-
|
|
805
|
-
|
|
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
|
-
|
|
808
|
-
python test_run.py --global -s "cars"
|
|
587
|
+
Notes:
|
|
809
588
|
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
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
|
-
|
|
817
|
-
|
|
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 -
|
|
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
|
-
|
|
910
|
-
|
|
911
|
-
|
|
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
|
-
|
|
923
|
-
- To finish [website API 2](https://github.com/hydrosh/StreamingCommunity/tree/test_gui_1)
|
|
734
|
+
# Useful Project
|
|
924
735
|
|
|
925
|
-
##
|
|
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
|
-
|
|
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
|
-
|
|
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>
|