mirror of
https://github.com/Arrowar/StreamingCommunity.git
synced 2025-06-07 12:05:35 +00:00
Update readme
This commit is contained in:
parent
d5fe421d32
commit
0b3ce46c41
29
README.md
29
README.md
@ -1,3 +1,6 @@
|
|||||||
|
<p align="center">
|
||||||
|
<img src="https://i.ibb.co/xtkv1JQk/ss1.png" alt="Project Logo" width="700"/>
|
||||||
|
</p>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://pypi.org/project/streamingcommunity">
|
<a href="https://pypi.org/project/streamingcommunity">
|
||||||
@ -6,23 +9,23 @@
|
|||||||
<a href="https://www.paypal.com/donate/?hosted_button_id=UXTWMT8P6HE2C">
|
<a href="https://www.paypal.com/donate/?hosted_button_id=UXTWMT8P6HE2C">
|
||||||
<img src="https://img.shields.io/badge/_-Donate-red.svg?logo=githubsponsors&labelColor=555555&style=for-the-badge" alt="Donate"/>
|
<img src="https://img.shields.io/badge/_-Donate-red.svg?logo=githubsponsors&labelColor=555555&style=for-the-badge" alt="Donate"/>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/Abc-dc/StreamingCommunity/commits">
|
<a href="https://github.com/Arrowar/StreamingCommunity/commits">
|
||||||
<img src="https://img.shields.io/github/commit-activity/m/Abc-dc/StreamingCommunity?label=commits&style=for-the-badge" alt="Commits"/>
|
<img src="https://img.shields.io/github/commit-activity/m/Arrowar/StreamingCommunity?label=commits&style=for-the-badge" alt="Commits"/>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/Abc-dc/StreamingCommunity/commits">
|
<a href="https://github.com/Arrowar/StreamingCommunity/commits">
|
||||||
<img src="https://img.shields.io/github/last-commit/Abc-dc/StreamingCommunity/main?label=&style=for-the-badge&display_timestamp=committer" alt="Last Commit"/>
|
<img src="https://img.shields.io/github/last-commit/Arrowar/StreamingCommunity/main?label=&style=for-the-badge&display_timestamp=committer" alt="Last Commit"/>
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://github.com/Abc-dc/StreamingCommunity/blob/main/LICENSE">
|
<a href="https://github.com/Arrowar/StreamingCommunity/blob/main/LICENSE">
|
||||||
<img src="https://img.shields.io/badge/License-GPL_3.0-blue.svg?style=for-the-badge" alt="License"/>
|
<img src="https://img.shields.io/badge/License-GPL_3.0-blue.svg?style=for-the-badge" alt="License"/>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://pypi.org/project/streamingcommunity">
|
<a href="https://pypi.org/project/streamingcommunity">
|
||||||
<img src="https://img.shields.io/pypi/dm/streamingcommunity?style=for-the-badge" alt="PyPI Downloads"/>
|
<img src="https://img.shields.io/pypi/dm/streamingcommunity?style=for-the-badge" alt="PyPI Downloads"/>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/Abc-dc/StreamingCommunity">
|
<a href="https://github.com/Arrowar/StreamingCommunity">
|
||||||
<img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Abc-dc/StreamingCommunity/main/Test/Util/loc-badge.json&style=for-the-badge" alt="Lines of Code"/>
|
<img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Arrowar/StreamingCommunity/main/Test/Util/loc-badge.json&style=for-the-badge" alt="Lines of Code"/>
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@ -55,13 +58,13 @@
|
|||||||
# Installation
|
# Installation
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://github.com/Abc-dc/StreamingCommunity/releases/latest/download/StreamingCommunity.exe">
|
<a href="https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity.exe">
|
||||||
<img src="https://img.shields.io/badge/-Windows_x64-blue.svg?style=for-the-badge&logo=windows" alt="Windows">
|
<img src="https://img.shields.io/badge/-Windows_x64-blue.svg?style=for-the-badge&logo=windows" alt="Windows">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/Abc-dc/StreamingCommunity/releases/latest/download/StreamingCommunity.zip">
|
<a href="https://github.com/Arrowar/StreamingCommunity/releases/latest/download/StreamingCommunity.zip">
|
||||||
<img src="https://img.shields.io/badge/-Source_tar-green.svg?style=for-the-badge" alt="Source Tarball">
|
<img src="https://img.shields.io/badge/-Source_tar-green.svg?style=for-the-badge" alt="Source Tarball">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/Abc-dc/StreamingCommunity/releases">
|
<a href="https://github.com/Arrowar/StreamingCommunity/releases">
|
||||||
<img src="https://img.shields.io/badge/-All_Versions-lightgrey.svg?style=for-the-badge" alt="All Versions">
|
<img src="https://img.shields.io/badge/-All_Versions-lightgrey.svg?style=for-the-badge" alt="All Versions">
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
@ -551,7 +554,7 @@ python3 telegram_bot.py
|
|||||||
|
|
||||||
# To Do
|
# To Do
|
||||||
|
|
||||||
- Finish [website API](https://github.com/Abc-dc/StreamingCommunity/tree/test_gui_1)
|
- Finish [website API](https://github.com/Arrowar/StreamingCommunity/tree/test_gui_1)
|
||||||
|
|
||||||
# Contributing
|
# Contributing
|
||||||
|
|
||||||
@ -569,6 +572,6 @@ This software is provided "as is", without warranty of any kind, express or impl
|
|||||||
|
|
||||||
## Contributors
|
## Contributors
|
||||||
|
|
||||||
<a href="https://github.com/Abc-dc/StreamingCommunity/graphs/contributors" alt="View Contributors">
|
<a href="https://github.com/Arrowar/StreamingCommunity/graphs/contributors" alt="View Contributors">
|
||||||
<img src="https://contrib.rocks/image?repo=Abc-dc/StreamingCommunity&max=1000&columns=10" alt="Contributors" />
|
<img src="https://contrib.rocks/image?repo=Arrowar/StreamingCommunity&max=1000&columns=10" alt="Contributors" />
|
||||||
</a>
|
</a>
|
||||||
|
@ -36,11 +36,13 @@ from .segments import M3U8_Segments
|
|||||||
|
|
||||||
|
|
||||||
# Config
|
# Config
|
||||||
|
ENABLE_AUDIO = config_manager.get_bool('M3U8_DOWNLOAD', 'download_audio')
|
||||||
|
ENABLE_SUBTITLE = config_manager.get_bool('M3U8_DOWNLOAD', 'download_subtitle')
|
||||||
DOWNLOAD_SPECIFIC_AUDIO = config_manager.get_list('M3U8_DOWNLOAD', 'specific_list_audio')
|
DOWNLOAD_SPECIFIC_AUDIO = config_manager.get_list('M3U8_DOWNLOAD', 'specific_list_audio')
|
||||||
DOWNLOAD_SPECIFIC_SUBTITLE = config_manager.get_list('M3U8_DOWNLOAD', 'specific_list_subtitles')
|
DOWNLOAD_SPECIFIC_SUBTITLE = config_manager.get_list('M3U8_DOWNLOAD', 'specific_list_subtitles')
|
||||||
MERGE_AUDIO = config_manager.get_bool('M3U8_DOWNLOAD', 'merge_audio')
|
MERGE_AUDIO = config_manager.get_bool('M3U8_DOWNLOAD', 'merge_audio')
|
||||||
MERGE_SUBTITLE = config_manager.get_bool('M3U8_DOWNLOAD', 'merge_subs')
|
MERGE_SUBTITLE = config_manager.get_bool('M3U8_DOWNLOAD', 'merge_subs')
|
||||||
REMOVE_SEGMENTS_FOLDER = config_manager.get_bool('M3U8_DOWNLOAD', 'cleanup_tmp_folder')
|
CLEANUP_TMP = config_manager.get_bool('M3U8_DOWNLOAD', 'cleanup_tmp_folder')
|
||||||
FILTER_CUSTOM_REOLUTION = config_manager.get_int('M3U8_PARSER', 'force_resolution')
|
FILTER_CUSTOM_REOLUTION = config_manager.get_int('M3U8_PARSER', 'force_resolution')
|
||||||
GET_ONLY_LINK = config_manager.get_bool('M3U8_PARSER', 'get_only_link')
|
GET_ONLY_LINK = config_manager.get_bool('M3U8_PARSER', 'get_only_link')
|
||||||
RETRY_LIMIT = config_manager.get_int('REQUESTS', 'max_retry')
|
RETRY_LIMIT = config_manager.get_int('REQUESTS', 'max_retry')
|
||||||
@ -121,7 +123,7 @@ class PathManager:
|
|||||||
|
|
||||||
def cleanup(self):
|
def cleanup(self):
|
||||||
"""Removes temporary directories if configured to do so."""
|
"""Removes temporary directories if configured to do so."""
|
||||||
if REMOVE_SEGMENTS_FOLDER:
|
if CLEANUP_TMP:
|
||||||
os_manager.remove_folder(self.temp_dir)
|
os_manager.remove_folder(self.temp_dir)
|
||||||
|
|
||||||
|
|
||||||
@ -157,28 +159,29 @@ class M3U8Manager:
|
|||||||
If it's a master playlist, only selects video stream.
|
If it's a master playlist, only selects video stream.
|
||||||
"""
|
"""
|
||||||
if not self.is_master:
|
if not self.is_master:
|
||||||
# For master playlist, only get the video stream
|
|
||||||
if FILTER_CUSTOM_REOLUTION != -1:
|
if FILTER_CUSTOM_REOLUTION != -1:
|
||||||
self.video_url, self.video_res = self.parser._video.get_custom_uri(y_resolution=FILTER_CUSTOM_REOLUTION)
|
self.video_url, self.video_res = self.parser._video.get_custom_uri(y_resolution=FILTER_CUSTOM_REOLUTION)
|
||||||
else:
|
else:
|
||||||
self.video_url, self.video_res = self.parser._video.get_best_uri()
|
self.video_url, self.video_res = self.parser._video.get_best_uri()
|
||||||
|
|
||||||
# Don't process audio or subtitles for master playlist
|
|
||||||
self.audio_streams = []
|
self.audio_streams = []
|
||||||
self.sub_streams = []
|
self.sub_streams = []
|
||||||
|
|
||||||
else:
|
else:
|
||||||
# For media playlist, process all streams as before
|
|
||||||
if FILTER_CUSTOM_REOLUTION != -1:
|
if FILTER_CUSTOM_REOLUTION != -1:
|
||||||
self.video_url, self.video_res = self.parser._video.get_custom_uri(y_resolution=FILTER_CUSTOM_REOLUTION)
|
self.video_url, self.video_res = self.parser._video.get_custom_uri(y_resolution=FILTER_CUSTOM_REOLUTION)
|
||||||
else:
|
else:
|
||||||
self.video_url, self.video_res = self.parser._video.get_best_uri()
|
self.video_url, self.video_res = self.parser._video.get_best_uri()
|
||||||
|
|
||||||
|
self.audio_streams = []
|
||||||
|
if ENABLE_AUDIO:
|
||||||
self.audio_streams = [
|
self.audio_streams = [
|
||||||
s for s in (self.parser._audio.get_all_uris_and_names() or [])
|
s for s in (self.parser._audio.get_all_uris_and_names() or [])
|
||||||
if s.get('language') in DOWNLOAD_SPECIFIC_AUDIO
|
if s.get('language') in DOWNLOAD_SPECIFIC_AUDIO
|
||||||
]
|
]
|
||||||
|
|
||||||
|
self.sub_streams = []
|
||||||
|
if ENABLE_SUBTITLE:
|
||||||
self.sub_streams = [
|
self.sub_streams = [
|
||||||
s for s in (self.parser._subtitle.get_all_uris_and_names() or [])
|
s for s in (self.parser._subtitle.get_all_uris_and_names() or [])
|
||||||
if s.get('language') in DOWNLOAD_SPECIFIC_SUBTITLE
|
if s.get('language') in DOWNLOAD_SPECIFIC_SUBTITLE
|
||||||
|
@ -25,9 +25,6 @@ def update():
|
|||||||
"""
|
"""
|
||||||
Check for updates on GitHub and display relevant information.
|
Check for updates on GitHub and display relevant information.
|
||||||
"""
|
"""
|
||||||
console.print("\n[cyan]→ [green]Checking GitHub version ...")
|
|
||||||
|
|
||||||
# Make the GitHub API requests and handle potential errors
|
|
||||||
try:
|
try:
|
||||||
response_reposity = httpx.get(f"https://api.github.com/repos/{__author__}/{__title__}").json()
|
response_reposity = httpx.get(f"https://api.github.com/repos/{__author__}/{__title__}").json()
|
||||||
response_releases = httpx.get(f"https://api.github.com/repos/{__author__}/{__title__}/releases").json()
|
response_releases = httpx.get(f"https://api.github.com/repos/{__author__}/{__title__}/releases").json()
|
||||||
@ -56,11 +53,9 @@ def update():
|
|||||||
|
|
||||||
# Check installed version
|
# Check installed version
|
||||||
if str(__version__).replace('v', '') != str(last_version).replace('v', '') :
|
if str(__version__).replace('v', '') != str(last_version).replace('v', '') :
|
||||||
console.print(f"[red]New version available: [yellow]{last_version} \n")
|
console.print(f"\n[red]New version available: [yellow]{last_version}")
|
||||||
else:
|
|
||||||
console.print(f" [red]Everything is up to date \n")
|
|
||||||
|
|
||||||
console.print(f"[red]{__title__} has been downloaded [yellow]{total_download_count} [red]times, but only [yellow]{percentual_stars}% [red]of users have starred it.\n\
|
console.print(f"\n[red]{__title__} has been downloaded [yellow]{total_download_count} [red]times, but only [yellow]{percentual_stars}% [red]of users have starred it.\n\
|
||||||
[cyan]Help the repository grow today by leaving a [yellow]star [cyan]and [yellow]sharing [cyan]it with others online!")
|
[cyan]Help the repository grow today by leaving a [yellow]star [cyan]and [yellow]sharing [cyan]it with others online!")
|
||||||
|
|
||||||
time.sleep(3)
|
time.sleep(3)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
__title__ = 'StreamingCommunity'
|
__title__ = 'StreamingCommunity'
|
||||||
__version__ = '2.5.0'
|
__version__ = '2.5.0'
|
||||||
__author__ = 'Abc-dc'
|
__author__ = 'Arrowar'
|
||||||
__description__ = 'A command-line program to download film'
|
__description__ = 'A command-line program to download film'
|
||||||
__copyright__ = 'Copyright 2024'
|
__copyright__ = 'Copyright 2024'
|
||||||
|
@ -34,7 +34,7 @@ class ConfigManager:
|
|||||||
else:
|
else:
|
||||||
logging.info("Configuration file does not exist. Downloading...")
|
logging.info("Configuration file does not exist. Downloading...")
|
||||||
self.download_requirements(
|
self.download_requirements(
|
||||||
'https://raw.githubusercontent.com/Abc-dc/StreamingCommunity/refs/heads/main/config.json',
|
'https://raw.githubusercontent.com/Arrowar/StreamingCommunity/refs/heads/main/config.json',
|
||||||
self.file_path
|
self.file_path
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -476,7 +476,7 @@ class OsSummary:
|
|||||||
|
|
||||||
if not os.path.exists(requirements_file):
|
if not os.path.exists(requirements_file):
|
||||||
self.download_requirements(
|
self.download_requirements(
|
||||||
'https://raw.githubusercontent.com/Abc-dc/StreamingCommunity/refs/heads/main/requirements.txt',
|
'https://raw.githubusercontent.com/Arrowar/StreamingCommunity/refs/heads/main/requirements.txt',
|
||||||
requirements_file
|
requirements_file
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -28,13 +28,15 @@
|
|||||||
"proxy_start_max": 0.5
|
"proxy_start_max": 0.5
|
||||||
},
|
},
|
||||||
"M3U8_DOWNLOAD": {
|
"M3U8_DOWNLOAD": {
|
||||||
"tqdm_delay": 0.12,
|
"tqdm_delay": 0.05,
|
||||||
"default_video_workser": 12,
|
"default_video_workser": 12,
|
||||||
"default_audio_workser": 12,
|
"default_audio_workser": 12,
|
||||||
|
"download_audio": true,
|
||||||
"merge_audio": true,
|
"merge_audio": true,
|
||||||
"specific_list_audio": [
|
"specific_list_audio": [
|
||||||
"ita"
|
"ita"
|
||||||
],
|
],
|
||||||
|
"download_subtitle": true,
|
||||||
"merge_subs": true,
|
"merge_subs": true,
|
||||||
"specific_list_subtitles": [
|
"specific_list_subtitles": [
|
||||||
"eng",
|
"eng",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user