Skip to content

Commit fd5943a

Browse files
ArrowarUrloMythus
andauthored
Discovery EU addition
* Update ScrapeSerie.py * Update series.py * Add handling for shows and movies in site.py --------- Co-authored-by: Urlo30 <[email protected]>
1 parent d43f267 commit fd5943a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+4247
-3058
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ jobs:
122122
--hidden-import=six --hidden-import=pathvalidate \
123123
--hidden-import=xml.etree.ElementTree \
124124
--hidden-import=pywidevine \
125+
--hidden-import=pyplayready \
125126
--hidden-import=Cryptodome.Cipher --hidden-import=Cryptodome.Cipher.AES \
126127
--hidden-import=Cryptodome.Util --hidden-import=Cryptodome.Util.Padding \
127128
--hidden-import=Cryptodome.Random \

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,6 @@ working_proxies.json
5656
start.sh
5757
.DS_Store
5858
GUI/db.sqlite3
59-
console.log
59+
console.log
60+
/.github/script/domains.json
61+
/.cache

GUI/searchapp/api/altadefinizione.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def __init__(self):
2424

2525
def _load_config(self):
2626
"""Load site configuration."""
27-
self.base_url = (config_manager.get_site("altadefinizione", "full_url") or "").rstrip("/")
27+
self.base_url = (config_manager.domain.get("altadefinizione", "full_url") or "").rstrip("/")
2828

2929
def _get_search_fn(self):
3030
"""Lazy load the search function."""

GUI/searchapp/api/animeunity.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def __init__(self):
2525

2626
def _load_config(self):
2727
"""Load site configuration."""
28-
self.base_url = (config_manager.get_site("animeunity", "full_url") or "").rstrip("/")
28+
self.base_url = config_manager.domain.get("animeunity", "full_url").rstrip("/")
2929

3030
def _get_search_fn(self):
3131
"""Lazy load the search function."""

GUI/searchapp/api/streamingcommunity.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def __init__(self):
2424

2525
def _load_config(self):
2626
"""Load site configuration."""
27-
self.base_url = config_manager.get_site("streamingcommunity", "full_url").rstrip("/") + "/it"
27+
self.base_url = config_manager.domain.get("streamingcommunity", "full_url").rstrip("/") + "/it"
2828

2929
def _get_search_fn(self):
3030
"""Lazy load the search function."""

README.md

Lines changed: 2 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<div align="center">
22

3-
<img src="https://i.postimg.cc/Y9t2XgB1/z562m3.png" alt="StreamingCommunity Logo" width="110" style="background: transparent;">
3+
<img src="https://i.postimg.cc/Y9t2XgB1/z562m3.png" alt="StreamingCommunity Logo" width="110" style="background: transparent;"><br><br>
44

55
[![PyPI Version](https://img.shields.io/pypi/v/streamingcommunity?logo=pypi&logoColor=white&labelColor=2d3748&color=3182ce&style=for-the-badge)](https://pypi.org/project/streamingcommunity/)
66
[![Last Commit](https://img.shields.io/github/last-commit/Arrowar/StreamingCommunity?logo=git&logoColor=white&labelColor=2d3748&color=805ad5&style=for-the-badge)](https://github.com/Arrowar/StreamingCommunity/commits)
@@ -269,39 +269,6 @@ You can change some behaviors by tweaking the configuration file. The configurat
269269
- 480p (640x480)
270270
- 360p (640x360)
271271

272-
273-
#### Output format Options
274-
Final video will be saved with the selected extension. For each format, specific subtitles parameters need to be set in the `M3U8_CONVERSION` section.
275-
276-
> Note: if you want **ASS subtitles**, use `extension: "mkv"` and set `param_subtitles` to `["-c:s","ass"]`
277-
> (or `["-c:s","copy"]` if the input subtitles are already ASS and you just want to mux them).
278-
279-
MP4 example:
280-
```json
281-
{
282-
"M3U8_CONVERSION": {
283-
"param_subtitles": [
284-
"-c:s",
285-
"mov_text"
286-
],
287-
"extension": "mp4"
288-
}
289-
}
290-
```
291-
292-
MKV example (WebVTT):
293-
```json
294-
{
295-
"M3U8_CONVERSION": {
296-
"param_subtitles": [
297-
"-c:s",
298-
"webvtt"
299-
],
300-
"extension": "mkv"
301-
}
302-
}
303-
```
304-
305272
#### Link options
306273
- `get_only_link`: Return M3U8 playlist/index URL instead of downloading
307274

@@ -555,14 +522,6 @@ make LOCAL_DIR=/path/to/download run-container
555522

556523
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.
557524

558-
559-
# Tutorials
560-
561-
- [Windows](https://www.youtube.com/watch?v=mZGqK4wdN-k)
562-
- [Linux](https://www.youtube.com/watch?v=0qUNXPE_mTg)
563-
- [Pypy](https://www.youtube.com/watch?v=C6m9ZKOK0p4)
564-
565-
566525
# Useful Project
567526

568527
## 🎯 [Unit3Dup](https://github.com/31December99/Unit3Dup)
@@ -571,10 +530,6 @@ Bot in Python per la generazione e l'upload automatico di torrent su tracker bas
571530
## 🇮🇹 [MammaMia](https://github.com/UrloMythus/MammaMia)
572531
Addon per Stremio che consente lo streaming HTTPS di film, serie, anime e TV in diretta in lingua italiana.
573532

574-
## 🧩 [streamingcommunity-unofficialapi](https://github.com/Blu-Tiger/streamingcommunity-unofficialapi)
575-
API non ufficiale per accedere ai contenuti del sito italiano StreamingCommunity.
576-
577-
578533
# Disclaimer
579534
> **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.
580535
@@ -585,4 +540,4 @@ API non ufficiale per accedere ai contenuti del sito italiano StreamingCommunity
585540
**Made with ❤️ for streaming lovers**
586541

587542
*If you find this project useful, consider starring it! ⭐*
588-
</div>
543+
</div>

StreamingCommunity/Api/Player/vixcloud.py

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -193,21 +193,32 @@ def parse(cls, js_string):
193193

194194

195195
class VideoSource:
196-
def __init__(self, url: str, is_series: bool, media_id: int = None):
196+
def __init__(self, url: str, is_series: bool, media_id: int = None, tmdb_data: Dict[str, Any] = None):
197197
"""
198198
Initialize video source for streaming site.
199199
200200
Args:
201201
- url (str): The URL of the streaming site.
202202
- is_series (bool): Flag for series or movie content
203203
- media_id (int, optional): Unique identifier for media item
204+
- tmdb_data (dict, optional): TMDB data with 'id', 's' (season), 'e' (episode)
204205
"""
205206
self.headers = {'user-agent': get_userAgent()}
206207
self.url = url
207208
self.is_series = is_series
208209
self.media_id = media_id
209210
self.iframe_src = None
210211
self.window_parameter = None
212+
213+
# Store TMDB data if provided
214+
if tmdb_data is not None:
215+
self.tmdb_id = tmdb_data.get('id')
216+
self.season_number = tmdb_data.get('s')
217+
self.episode_number = tmdb_data.get('e')
218+
else:
219+
self.tmdb_id = None
220+
self.season_number = None
221+
self.episode_number = None
211222

212223
def get_iframe(self, episode_id: int) -> None:
213224
"""
@@ -259,13 +270,18 @@ def parse_script(self, script_text: str) -> None:
259270
def get_content(self) -> None:
260271
"""
261272
Fetch and process video content from iframe source.
262-
263-
Workflow:
264-
- Validate iframe source
265-
- Retrieve content
266-
- Parse embedded script
267273
"""
268274
try:
275+
# If TMDB ID is provided, use direct vixsrc.to URL
276+
if self.tmdb_id is not None:
277+
console.print("[red]Using API V.2")
278+
if self.is_series:
279+
if self.season_number is not None and self.episode_number is not None:
280+
self.iframe_src = f"https://vixsrc.to/tv/{self.tmdb_id}/{self.season_number}/{self.episode_number}/?lang=it"
281+
else:
282+
self.iframe_src = f"https://vixsrc.to/movie/{self.tmdb_id}/?lang=it"
283+
284+
# Fetch content from iframe source
269285
if self.iframe_src is not None:
270286
response = create_client(headers=self.headers).get(self.iframe_src)
271287
response.raise_for_status()
@@ -357,4 +373,4 @@ def get_embed(self, episode_id: int):
357373

358374
except Exception as e:
359375
logging.error(f"Error fetching embed URL: {e}")
360-
return None
376+
return None

StreamingCommunity/Api/Service/altadefinizione/film.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
# Variable
2424
console = Console()
25-
extension_output = config_manager.get("M3U8_CONVERSION", "extension")
25+
extension_output = config_manager.config.get("M3U8_CONVERSION", "extension")
2626

2727

2828
def download_film(select_title: MediaItem) -> str:

StreamingCommunity/Api/Service/altadefinizione/series.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
# Variable
3232
msg = Prompt()
3333
console = Console()
34-
extension_output = config_manager.get("M3U8_CONVERSION", "extension")
34+
extension_output = config_manager.config.get("M3U8_CONVERSION", "extension")
3535

3636

3737
def download_video(index_season_selected: int, index_episode_selected: int, scrape_serie: GetSerieInfo) -> Tuple[str,bool]:

StreamingCommunity/Api/Service/animeunity/film.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
from StreamingCommunity.Api.Player.vixcloud import VideoSourceAnime
1616

1717

18-
1918
# Variable
2019
console = Console()
2120

0 commit comments

Comments
 (0)