StreamingCommunity 3.0.8__tar.gz → 3.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {streamingcommunity-3.0.8/StreamingCommunity.egg-info → streamingcommunity-3.1.0}/PKG-INFO +43 -58
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/README.md +40 -57
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Player/supervideo.py +5 -4
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Player/vixcloud.py +14 -9
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/altadefinizione/film.py +9 -1
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/altadefinizione/util/ScrapeSerie.py +35 -21
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/animeunity/site.py +43 -71
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/streamingcommunity/film.py +4 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Lib/Downloader/HLS/downloader.py +17 -8
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Upload/update.py +7 -2
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Upload/version.py +2 -2
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Util/config_json.py +16 -17
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Util/message.py +1 -3
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Util/os.py +52 -25
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/global_search.py +2 -2
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/run.py +72 -26
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0/StreamingCommunity.egg-info}/PKG-INFO +43 -58
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity.egg-info/requires.txt +2 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/requirements.txt +2 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/setup.py +15 -2
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/LICENSE +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/MANIFEST.in +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Player/Helper/Vixcloud/js_parser.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Player/Helper/Vixcloud/util.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Player/ddl.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Player/hdplayer.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Player/maxstream.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Player/mediapolisvod.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Player/mixdrop.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Player/sweetpixel.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/1337xx/__init__.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/1337xx/site.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/1337xx/title.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/altadefinizione/__init__.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/altadefinizione/series.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/altadefinizione/site.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/animeunity/__init__.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/animeunity/film.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/animeunity/serie.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/animeunity/util/ScrapeSerie.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/animeworld/__init__.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/animeworld/film.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/animeworld/serie.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/animeworld/site.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/animeworld/util/ScrapeSerie.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/cb01new/__init__.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/cb01new/film.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/cb01new/site.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/guardaserie/__init__.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/guardaserie/series.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/guardaserie/site.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/guardaserie/util/ScrapeSerie.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/raiplay/__init__.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/raiplay/film.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/raiplay/series.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/raiplay/site.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/raiplay/util/ScrapeSerie.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/streamingcommunity/__init__.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/streamingcommunity/series.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/streamingcommunity/site.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/streamingwatch/__init__.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/streamingwatch/film.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/streamingwatch/series.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/streamingwatch/site.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Site/streamingwatch/util/ScrapeSerie.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Template/Class/SearchType.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Template/Util/__init__.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Template/Util/manage_ep.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Template/__init__.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Template/config_loader.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Template/site.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Lib/Downloader/HLS/segments.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Lib/Downloader/MP4/downloader.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Lib/Downloader/TOR/downloader.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Lib/Downloader/__init__.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Lib/FFmpeg/__init__.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Lib/FFmpeg/capture.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Lib/FFmpeg/command.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Lib/FFmpeg/util.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Lib/M3U8/__init__.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Lib/M3U8/decryptor.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Lib/M3U8/estimator.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Lib/M3U8/parser.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Lib/M3U8/url_fixer.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Lib/Proxies/proxy.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Lib/TMBD/__init__.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Lib/TMBD/obj_tmbd.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Lib/TMBD/tmdb.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/TelegramHelp/__init__.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/TelegramHelp/config.json +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/TelegramHelp/telegram_bot.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Util/color.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Util/ffmpeg_installer.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Util/headers.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Util/logger.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Util/table.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/__init__.py +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity.egg-info/SOURCES.txt +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity.egg-info/dependency_links.txt +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity.egg-info/entry_points.txt +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity.egg-info/top_level.txt +0 -0
- {streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: StreamingCommunity
|
|
3
|
-
Version: 3.0
|
|
3
|
+
Version: 3.1.0
|
|
4
4
|
Home-page: https://github.com/Lovi-0/StreamingCommunity
|
|
5
5
|
Author: Lovi-0
|
|
6
6
|
Project-URL: Bug Reports, https://github.com/Lovi-0/StreamingCommunity/issues
|
|
@@ -17,6 +17,7 @@ Requires-Dist: m3u8
|
|
|
17
17
|
Requires-Dist: certifi
|
|
18
18
|
Requires-Dist: psutil
|
|
19
19
|
Requires-Dist: unidecode
|
|
20
|
+
Requires-Dist: curl_cffi
|
|
20
21
|
Requires-Dist: dnspython
|
|
21
22
|
Requires-Dist: jsbeautifier
|
|
22
23
|
Requires-Dist: pathvalidate
|
|
@@ -24,6 +25,7 @@ Requires-Dist: pycryptodomex
|
|
|
24
25
|
Requires-Dist: ua-generator
|
|
25
26
|
Requires-Dist: qbittorrent-api
|
|
26
27
|
Requires-Dist: pyTelegramBotAPI
|
|
28
|
+
Requires-Dist: beautifulsoup4
|
|
27
29
|
Dynamic: author
|
|
28
30
|
Dynamic: description
|
|
29
31
|
Dynamic: description-content-type
|
|
@@ -34,36 +36,32 @@ Dynamic: project-url
|
|
|
34
36
|
Dynamic: requires-dist
|
|
35
37
|
Dynamic: requires-python
|
|
36
38
|
|
|
37
|
-
<
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
<a href="https://github.com/Arrowar/StreamingCommunity">
|
|
64
|
-
<img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Arrowar/StreamingCommunity/main/.github/media/loc-badge.json&style=for-the-badge" alt="Lines of Code"/>
|
|
65
|
-
</a>
|
|
66
|
-
</p>
|
|
39
|
+
<div align="center">
|
|
40
|
+
|
|
41
|
+
## 📊 Project Status & Info
|
|
42
|
+
|
|
43
|
+
[](https://pypi.org/project/streamingcommunity)
|
|
44
|
+
[](https://pypi.org/project/streamingcommunity)
|
|
45
|
+
[](https://github.com/Arrowar/StreamingCommunity/blob/main/LICENSE)
|
|
46
|
+
|
|
47
|
+
[](https://github.com/Arrowar/StreamingCommunity)
|
|
48
|
+
[](https://github.com/Arrowar/StreamingCommunity/commits)
|
|
49
|
+
[](https://github.com/Arrowar/StreamingCommunity/issues)
|
|
50
|
+
|
|
51
|
+
## 💝 Support the Project
|
|
52
|
+
|
|
53
|
+
[](https://www.paypal.com/donate/?hosted_button_id=UXTWMT8P6HE2C)
|
|
54
|
+
## 🚀 Download & Install
|
|
55
|
+
|
|
56
|
+
[](https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_win.exe)
|
|
57
|
+
[](https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_mac)
|
|
58
|
+
[](https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_linux_latest)
|
|
59
|
+
[](https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_linux_previous)
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
*⚡ **Quick Start:** `pip install streamingcommunity` or download the executable for your platform above*
|
|
63
|
+
|
|
64
|
+
</div>
|
|
67
65
|
|
|
68
66
|
# 📋 Table of Contents
|
|
69
67
|
|
|
@@ -112,24 +110,6 @@ Dynamic: requires-python
|
|
|
112
110
|
|
|
113
111
|
# Installation
|
|
114
112
|
|
|
115
|
-
<p align="center">
|
|
116
|
-
<a href="https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_win.exe">
|
|
117
|
-
<img src="https://img.shields.io/badge/-Windows-blue.svg?style=for-the-badge&logo=windows" alt="Windows">
|
|
118
|
-
</a>
|
|
119
|
-
<a href="https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_mac">
|
|
120
|
-
<img src="https://img.shields.io/badge/-macOS-black.svg?style=for-the-badge&logo=apple" alt="macOS">
|
|
121
|
-
</a>
|
|
122
|
-
<a href="https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_linux">
|
|
123
|
-
<img src="https://img.shields.io/badge/-Linux-orange.svg?style=for-the-badge&logo=linux" alt="Linux">
|
|
124
|
-
</a>
|
|
125
|
-
<a href="https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_linux_previous">
|
|
126
|
-
<img src="https://img.shields.io/badge/-Linux Previous-gray.svg?style=for-the-badge&logo=linux" alt="Linux Previous">
|
|
127
|
-
</a>
|
|
128
|
-
<a href="https://github.com/Arrowar/StreamingCommunity/releases">
|
|
129
|
-
<img src="https://img.shields.io/badge/-All Versions-lightgrey.svg?style=for-the-badge&logo=github" alt="All Versions">
|
|
130
|
-
</a>
|
|
131
|
-
</p>
|
|
132
|
-
|
|
133
113
|
## 1. PyPI Installation
|
|
134
114
|
|
|
135
115
|
Install directly from PyPI:
|
|
@@ -554,7 +534,7 @@ To enable qBittorrent integration, follow the setup guide [here](https://github.
|
|
|
554
534
|
"download_subtitle": true,
|
|
555
535
|
"merge_subs": true,
|
|
556
536
|
"specific_list_subtitles": [
|
|
557
|
-
"ita",
|
|
537
|
+
"ita", // Specify language codes or use ["*"] to download all available subtitles
|
|
558
538
|
"eng"
|
|
559
539
|
],
|
|
560
540
|
"cleanup_tmp_folder": true
|
|
@@ -580,6 +560,8 @@ To enable qBittorrent integration, follow the setup guide [here](https://github.
|
|
|
580
560
|
- `download_subtitle`: Whether to download subtitles
|
|
581
561
|
- `merge_subs`: Whether to merge subtitles with video
|
|
582
562
|
- `specific_list_subtitles`: List of subtitle languages to download
|
|
563
|
+
* Use `["*"]` to download all available subtitles
|
|
564
|
+
* Or specify individual languages like `["ita", "eng"]`
|
|
583
565
|
* Can be changed with `--specific_list_subtitles ita,eng`
|
|
584
566
|
|
|
585
567
|
#### Cleanup
|
|
@@ -731,8 +713,14 @@ python test_run.py --specific_list_audio ita,eng --specific_list_subtitles eng,s
|
|
|
731
713
|
# Keep console open after download
|
|
732
714
|
python test_run.py --not_close true
|
|
733
715
|
|
|
734
|
-
# Use global
|
|
716
|
+
# Use global searchAdd commentMore actions
|
|
735
717
|
python test_run.py --global -s "cars"
|
|
718
|
+
|
|
719
|
+
# Select specific category
|
|
720
|
+
python test_run.py --category 1 # Search in anime category
|
|
721
|
+
python test_run.py --category 2 # Search in movies & series
|
|
722
|
+
python test_run.py --category 3 # Search in series
|
|
723
|
+
python test_run.py --category 4 # Search in torrent category
|
|
736
724
|
```
|
|
737
725
|
|
|
738
726
|
# Docker
|
|
@@ -826,10 +814,10 @@ python3 telegram_bot.py
|
|
|
826
814
|
|
|
827
815
|
# Tutorials
|
|
828
816
|
|
|
829
|
-
- [Windows
|
|
830
|
-
- [Linux
|
|
831
|
-
- [Pypy
|
|
832
|
-
- [Compiled
|
|
817
|
+
- [Windows](https://www.youtube.com/watch?v=mZGqK4wdN-k)
|
|
818
|
+
- [Linux](https://www.youtube.com/watch?v=0qUNXPE_mTg)
|
|
819
|
+
- [Pypy](https://www.youtube.com/watch?v=C6m9ZKOK0p4)
|
|
820
|
+
- [Compiled](https://www.youtube.com/watch?v=pm4lqsxkTVo)
|
|
833
821
|
|
|
834
822
|
# To Do
|
|
835
823
|
|
|
@@ -848,9 +836,6 @@ Addon per Stremio che consente lo streaming HTTPS di film, serie, anime e TV in
|
|
|
848
836
|
### 🧩 [streamingcommunity-unofficialapi](https://github.com/Blu-Tiger/streamingcommunity-unofficialapi)
|
|
849
837
|
API non ufficiale per accedere ai contenuti del sito italiano StreamingCommunity.
|
|
850
838
|
|
|
851
|
-
### 🎥 [stream-buddy](https://github.com/Bbalduzz/stream-buddy)
|
|
852
|
-
Tool per guardare o scaricare film dalla piattaforma StreamingCommunity.
|
|
853
|
-
|
|
854
839
|
# Disclaimer
|
|
855
840
|
|
|
856
841
|
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.
|
|
@@ -1,33 +1,29 @@
|
|
|
1
|
-
<
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
<a href="https://github.com/Arrowar/StreamingCommunity">
|
|
28
|
-
<img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Arrowar/StreamingCommunity/main/.github/media/loc-badge.json&style=for-the-badge" alt="Lines of Code"/>
|
|
29
|
-
</a>
|
|
30
|
-
</p>
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
## 📊 Project Status & Info
|
|
4
|
+
|
|
5
|
+
[](https://pypi.org/project/streamingcommunity)
|
|
6
|
+
[](https://pypi.org/project/streamingcommunity)
|
|
7
|
+
[](https://github.com/Arrowar/StreamingCommunity/blob/main/LICENSE)
|
|
8
|
+
|
|
9
|
+
[](https://github.com/Arrowar/StreamingCommunity)
|
|
10
|
+
[](https://github.com/Arrowar/StreamingCommunity/commits)
|
|
11
|
+
[](https://github.com/Arrowar/StreamingCommunity/issues)
|
|
12
|
+
|
|
13
|
+
## 💝 Support the Project
|
|
14
|
+
|
|
15
|
+
[](https://www.paypal.com/donate/?hosted_button_id=UXTWMT8P6HE2C)
|
|
16
|
+
## 🚀 Download & Install
|
|
17
|
+
|
|
18
|
+
[](https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_win.exe)
|
|
19
|
+
[](https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_mac)
|
|
20
|
+
[](https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_linux_latest)
|
|
21
|
+
[](https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_linux_previous)
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
*⚡ **Quick Start:** `pip install streamingcommunity` or download the executable for your platform above*
|
|
25
|
+
|
|
26
|
+
</div>
|
|
31
27
|
|
|
32
28
|
# 📋 Table of Contents
|
|
33
29
|
|
|
@@ -76,24 +72,6 @@
|
|
|
76
72
|
|
|
77
73
|
# Installation
|
|
78
74
|
|
|
79
|
-
<p align="center">
|
|
80
|
-
<a href="https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_win.exe">
|
|
81
|
-
<img src="https://img.shields.io/badge/-Windows-blue.svg?style=for-the-badge&logo=windows" alt="Windows">
|
|
82
|
-
</a>
|
|
83
|
-
<a href="https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_mac">
|
|
84
|
-
<img src="https://img.shields.io/badge/-macOS-black.svg?style=for-the-badge&logo=apple" alt="macOS">
|
|
85
|
-
</a>
|
|
86
|
-
<a href="https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_linux">
|
|
87
|
-
<img src="https://img.shields.io/badge/-Linux-orange.svg?style=for-the-badge&logo=linux" alt="Linux">
|
|
88
|
-
</a>
|
|
89
|
-
<a href="https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity_linux_previous">
|
|
90
|
-
<img src="https://img.shields.io/badge/-Linux Previous-gray.svg?style=for-the-badge&logo=linux" alt="Linux Previous">
|
|
91
|
-
</a>
|
|
92
|
-
<a href="https://github.com/Arrowar/StreamingCommunity/releases">
|
|
93
|
-
<img src="https://img.shields.io/badge/-All Versions-lightgrey.svg?style=for-the-badge&logo=github" alt="All Versions">
|
|
94
|
-
</a>
|
|
95
|
-
</p>
|
|
96
|
-
|
|
97
75
|
## 1. PyPI Installation
|
|
98
76
|
|
|
99
77
|
Install directly from PyPI:
|
|
@@ -518,7 +496,7 @@ To enable qBittorrent integration, follow the setup guide [here](https://github.
|
|
|
518
496
|
"download_subtitle": true,
|
|
519
497
|
"merge_subs": true,
|
|
520
498
|
"specific_list_subtitles": [
|
|
521
|
-
"ita",
|
|
499
|
+
"ita", // Specify language codes or use ["*"] to download all available subtitles
|
|
522
500
|
"eng"
|
|
523
501
|
],
|
|
524
502
|
"cleanup_tmp_folder": true
|
|
@@ -544,6 +522,8 @@ To enable qBittorrent integration, follow the setup guide [here](https://github.
|
|
|
544
522
|
- `download_subtitle`: Whether to download subtitles
|
|
545
523
|
- `merge_subs`: Whether to merge subtitles with video
|
|
546
524
|
- `specific_list_subtitles`: List of subtitle languages to download
|
|
525
|
+
* Use `["*"]` to download all available subtitles
|
|
526
|
+
* Or specify individual languages like `["ita", "eng"]`
|
|
547
527
|
* Can be changed with `--specific_list_subtitles ita,eng`
|
|
548
528
|
|
|
549
529
|
#### Cleanup
|
|
@@ -695,8 +675,14 @@ python test_run.py --specific_list_audio ita,eng --specific_list_subtitles eng,s
|
|
|
695
675
|
# Keep console open after download
|
|
696
676
|
python test_run.py --not_close true
|
|
697
677
|
|
|
698
|
-
# Use global
|
|
678
|
+
# Use global searchAdd commentMore actions
|
|
699
679
|
python test_run.py --global -s "cars"
|
|
680
|
+
|
|
681
|
+
# Select specific category
|
|
682
|
+
python test_run.py --category 1 # Search in anime category
|
|
683
|
+
python test_run.py --category 2 # Search in movies & series
|
|
684
|
+
python test_run.py --category 3 # Search in series
|
|
685
|
+
python test_run.py --category 4 # Search in torrent category
|
|
700
686
|
```
|
|
701
687
|
|
|
702
688
|
# Docker
|
|
@@ -790,10 +776,10 @@ python3 telegram_bot.py
|
|
|
790
776
|
|
|
791
777
|
# Tutorials
|
|
792
778
|
|
|
793
|
-
- [Windows
|
|
794
|
-
- [Linux
|
|
795
|
-
- [Pypy
|
|
796
|
-
- [Compiled
|
|
779
|
+
- [Windows](https://www.youtube.com/watch?v=mZGqK4wdN-k)
|
|
780
|
+
- [Linux](https://www.youtube.com/watch?v=0qUNXPE_mTg)
|
|
781
|
+
- [Pypy](https://www.youtube.com/watch?v=C6m9ZKOK0p4)
|
|
782
|
+
- [Compiled](https://www.youtube.com/watch?v=pm4lqsxkTVo)
|
|
797
783
|
|
|
798
784
|
# To Do
|
|
799
785
|
|
|
@@ -812,9 +798,6 @@ Addon per Stremio che consente lo streaming HTTPS di film, serie, anime e TV in
|
|
|
812
798
|
### 🧩 [streamingcommunity-unofficialapi](https://github.com/Blu-Tiger/streamingcommunity-unofficialapi)
|
|
813
799
|
API non ufficiale per accedere ai contenuti del sito italiano StreamingCommunity.
|
|
814
800
|
|
|
815
|
-
### 🎥 [stream-buddy](https://github.com/Bbalduzz/stream-buddy)
|
|
816
|
-
Tool per guardare o scaricare film dalla piattaforma StreamingCommunity.
|
|
817
|
-
|
|
818
801
|
# Disclaimer
|
|
819
802
|
|
|
820
803
|
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.
|
{streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Player/supervideo.py
RENAMED
|
@@ -5,9 +5,9 @@ import logging
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
# External libraries
|
|
8
|
-
import httpx
|
|
9
8
|
import jsbeautifier
|
|
10
9
|
from bs4 import BeautifulSoup
|
|
10
|
+
from curl_cffi import requests
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
# Internal utilities
|
|
@@ -28,7 +28,6 @@ class VideoSource:
|
|
|
28
28
|
- url (str): The URL of the video source.
|
|
29
29
|
"""
|
|
30
30
|
self.headers = get_headers()
|
|
31
|
-
self.client = httpx.Client()
|
|
32
31
|
self.url = url
|
|
33
32
|
|
|
34
33
|
def make_request(self, url: str) -> str:
|
|
@@ -42,8 +41,10 @@ class VideoSource:
|
|
|
42
41
|
- str: The response content if successful, None otherwise.
|
|
43
42
|
"""
|
|
44
43
|
try:
|
|
45
|
-
response =
|
|
46
|
-
response.
|
|
44
|
+
response = requests.get(url, headers=self.headers, timeout=MAX_TIMEOUT, impersonate="chrome110")
|
|
45
|
+
if response.status_code >= 400:
|
|
46
|
+
logging.error(f"Request failed with status code: {response.status_code}")
|
|
47
|
+
return None
|
|
47
48
|
return response.text
|
|
48
49
|
|
|
49
50
|
except Exception as e:
|
{streamingcommunity-3.0.8 → streamingcommunity-3.1.0}/StreamingCommunity/Api/Player/vixcloud.py
RENAMED
|
@@ -39,6 +39,7 @@ class VideoSource:
|
|
|
39
39
|
self.is_series = is_series
|
|
40
40
|
self.media_id = media_id
|
|
41
41
|
self.iframe_src = None
|
|
42
|
+
self.window_parameter = None
|
|
42
43
|
|
|
43
44
|
def get_iframe(self, episode_id: int) -> None:
|
|
44
45
|
"""
|
|
@@ -109,41 +110,45 @@ class VideoSource:
|
|
|
109
110
|
# Parse script to get video information
|
|
110
111
|
self.parse_script(script_text=script)
|
|
111
112
|
|
|
113
|
+
except httpx.HTTPStatusError as e:
|
|
114
|
+
if e.response.status_code == 404:
|
|
115
|
+
console.print("[yellow]This content will be available soon![/yellow]")
|
|
116
|
+
return
|
|
117
|
+
|
|
118
|
+
logging.error(f"Error getting content: {e}")
|
|
119
|
+
raise
|
|
120
|
+
|
|
112
121
|
except Exception as e:
|
|
113
122
|
logging.error(f"Error getting content: {e}")
|
|
114
123
|
raise
|
|
115
124
|
|
|
116
|
-
def get_playlist(self) -> str:
|
|
125
|
+
def get_playlist(self) -> str | None:
|
|
117
126
|
"""
|
|
118
127
|
Generate authenticated playlist URL.
|
|
119
128
|
|
|
120
129
|
Returns:
|
|
121
|
-
str: Fully constructed playlist URL with authentication parameters
|
|
130
|
+
str | None: Fully constructed playlist URL with authentication parameters, or None if content unavailable
|
|
122
131
|
"""
|
|
132
|
+
if not self.window_parameter:
|
|
133
|
+
return None
|
|
134
|
+
|
|
123
135
|
params = {}
|
|
124
136
|
|
|
125
|
-
# Add 'h' parameter if video quality is 1080p
|
|
126
137
|
if self.canPlayFHD:
|
|
127
138
|
params['h'] = 1
|
|
128
139
|
|
|
129
|
-
# Parse the original URL
|
|
130
140
|
parsed_url = urlparse(self.window_parameter.url)
|
|
131
141
|
query_params = parse_qs(parsed_url.query)
|
|
132
142
|
|
|
133
|
-
# Check specifically for 'b=1' in the query parameters
|
|
134
143
|
if 'b' in query_params and query_params['b'] == ['1']:
|
|
135
144
|
params['b'] = 1
|
|
136
145
|
|
|
137
|
-
# Add authentication parameters (token and expiration)
|
|
138
146
|
params.update({
|
|
139
147
|
"token": self.window_parameter.token,
|
|
140
148
|
"expires": self.window_parameter.expires
|
|
141
149
|
})
|
|
142
150
|
|
|
143
|
-
# Build the updated query string
|
|
144
151
|
query_string = urlencode(params)
|
|
145
|
-
|
|
146
|
-
# Construct the new URL with updated query parameters
|
|
147
152
|
return urlunparse(parsed_url._replace(query=query_string))
|
|
148
153
|
|
|
149
154
|
|
|
@@ -61,16 +61,22 @@ def download_film(select_title: MediaItem) -> str:
|
|
|
61
61
|
# Extract mostraguarda URL
|
|
62
62
|
try:
|
|
63
63
|
response = httpx.get(select_title.url, headers=get_headers(), timeout=10)
|
|
64
|
+
response.raise_for_status()
|
|
65
|
+
|
|
64
66
|
soup = BeautifulSoup(response.text, 'html.parser')
|
|
65
67
|
iframes = soup.find_all('iframe')
|
|
66
68
|
mostraguarda = iframes[0]['src']
|
|
67
69
|
|
|
68
70
|
except Exception as e:
|
|
69
71
|
console.print(f"[red]Site: {site_constant.SITE_NAME}, request error: {e}, get mostraguarda")
|
|
72
|
+
return None
|
|
70
73
|
|
|
71
74
|
# Extract supervideo URL
|
|
75
|
+
supervideo_url = None
|
|
72
76
|
try:
|
|
73
77
|
response = httpx.get(mostraguarda, headers=get_headers(), timeout=10)
|
|
78
|
+
response.raise_for_status()
|
|
79
|
+
|
|
74
80
|
soup = BeautifulSoup(response.text, 'html.parser')
|
|
75
81
|
pattern = r'//supervideo\.[^/]+/[a-z]/[a-zA-Z0-9]+'
|
|
76
82
|
supervideo_match = re.search(pattern, response.text)
|
|
@@ -78,7 +84,9 @@ def download_film(select_title: MediaItem) -> str:
|
|
|
78
84
|
|
|
79
85
|
except Exception as e:
|
|
80
86
|
console.print(f"[red]Site: {site_constant.SITE_NAME}, request error: {e}, get supervideo URL")
|
|
81
|
-
|
|
87
|
+
console.print("[yellow]This content will be available soon![/yellow]")
|
|
88
|
+
return None
|
|
89
|
+
|
|
82
90
|
# Init class
|
|
83
91
|
video_source = VideoSource(supervideo_url)
|
|
84
92
|
master_playlist = video_source.get_playlist()
|
|
@@ -38,38 +38,52 @@ class GetSerieInfo:
|
|
|
38
38
|
soup = BeautifulSoup(response.text, "html.parser")
|
|
39
39
|
self.series_name = soup.find("title").get_text(strip=True).split(" - ")[0]
|
|
40
40
|
|
|
41
|
-
#
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
41
|
+
# Find all season dropdowns
|
|
42
|
+
seasons_dropdown = soup.find('div', class_='dropdown seasons')
|
|
43
|
+
if not seasons_dropdown:
|
|
44
|
+
return
|
|
45
|
+
|
|
46
|
+
# Get all season items
|
|
47
|
+
season_items = seasons_dropdown.find_all('span', {'data-season': True})
|
|
48
|
+
|
|
49
|
+
for season_item in season_items:
|
|
50
|
+
season_num = int(season_item['data-season'])
|
|
51
|
+
season_name = season_item.get_text(strip=True)
|
|
50
52
|
|
|
51
|
-
# Create a new season
|
|
53
|
+
# Create a new season
|
|
52
54
|
current_season = self.seasons_manager.add_season({
|
|
53
|
-
'number':
|
|
55
|
+
'number': season_num,
|
|
54
56
|
'name': season_name
|
|
55
57
|
})
|
|
56
58
|
|
|
57
|
-
# Find episodes for this season
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
# Find all episodes for this season
|
|
60
|
+
episodes_container = soup.find('div', {'class': 'dropdown mirrors', 'data-season': str(season_num)})
|
|
61
|
+
if not episodes_container:
|
|
62
|
+
continue
|
|
63
|
+
|
|
64
|
+
# Get all episode mirrors for this season
|
|
65
|
+
episode_mirrors = soup.find_all('div', {'class': 'dropdown mirrors',
|
|
66
|
+
'data-season': str(season_num)})
|
|
67
|
+
|
|
68
|
+
for mirror in episode_mirrors:
|
|
69
|
+
episode_data = mirror.get('data-episode', '').split('-')
|
|
70
|
+
if len(episode_data) != 2:
|
|
71
|
+
continue
|
|
72
|
+
|
|
73
|
+
ep_num = int(episode_data[1])
|
|
74
|
+
|
|
75
|
+
# Find supervideo link
|
|
76
|
+
supervideo_span = mirror.find('span', {'data-id': 'supervideo'})
|
|
77
|
+
if not supervideo_span:
|
|
62
78
|
continue
|
|
63
79
|
|
|
64
|
-
|
|
65
|
-
link_tag = ep_div.find('a', string=lambda text: text and "Supervideo" in text)
|
|
66
|
-
episode_url = link_tag['href'] if link_tag else None
|
|
80
|
+
episode_url = supervideo_span.get('data-link', '')
|
|
67
81
|
|
|
68
82
|
# Add episode to the season
|
|
69
83
|
if current_season:
|
|
70
84
|
current_season.episodes.add({
|
|
71
|
-
'number':
|
|
72
|
-
'name':
|
|
85
|
+
'number': ep_num,
|
|
86
|
+
'name': f"Episodio {ep_num}",
|
|
73
87
|
'url': episode_url
|
|
74
88
|
})
|
|
75
89
|
|