This repository provide a simple script designed to facilitate the downloading of films and series from a popular streaming community platform. The script allows users to download individual films, entire series, or specific episodes, providing a seamless experience for content consumers.
You can chat, help improve this repo, or just hang around for some fun in the Git_StreamingCommunity Discord Server
Make sure you have the following prerequisites installed on your system:
- python > 3.8
- ffmpeg
- opnessl or pycryptodome
Install the required Python libraries using the following command:
pip install -r requirements.txt
Run the script with the following command:
python run.py
python3 run.py
You can change some behaviors by tweaking the configuration file.
DEFAULT
-
debug: Enables or disables debug mode.
- Default Value:
false
- Default Value:
-
log_file: The file where logs will be written.
- Default Value:
app.log
- Default Value:
-
log_to_file: Whether to log messages to a file.
- Default Value:
true
- Default Value:
-
show_message: Whether to show messages.
- Default Value:
false
- Default Value:
-
clean_console: Clears the console before the script runs.
- Default Value:
false
- Default Value:
-
root_path: Path where the script will add movies and TV series folders (see Path Examples).
- Default Value:
Video
- Default Value:
-
map_episode_name: Mapping to choose the name of all episodes of TV Shows (see Episode Name Usage).
- Default Value:
%(tv_name)_S%(season)E%(episode)_%(episode_name)
- Default Value:
-
not_close: When activated, prevents the script from closing after its initial execution, allowing it to restart automatically after completing the first run.
- Default Value:
false
- Default Value:
REQUESTS
-
disable_error: Whether to disable error messages.
- Default Value:
false
- Default Value:
-
timeout: The timeout value for requests.
- Default Value:
10
- Default Value:
-
verify_ssl: Whether to verify SSL certificates.
- Default Value:
false
- Default Value:
-
proxy: The proxy to use for requests. (Note: This parameter works only with HTTP and HTTPS protocols.)
- Example Value:
["http://user:pass@38.154.227.167:5868"]
- Example Value:
M3U8_DOWNLOAD
-
tdqm_workers: The number of workers that will cooperate to download .ts files. A high value may slow down your PC
- Default Value:
30
- Default Value:
-
tqdm_use_large_bar: Whether to use large progress bars during downloads (Downloading %desc: %percentage:.2f %bar %elapsed < %remaining %postfix
- Default Value:
true
- Example Value:
false
with Proc: %percentage:.2f %remaining %postfix
- Default Value:
-
download_video: Whether to download video streams.
- Default Value:
true
- Default Value:
-
download_audio: Whether to download audio streams.
- Default Value:
true
- Default Value:
-
download_sub: Whether to download subtitle streams.
- Default Value:
true
- Default Value:
-
specific_list_audio: A list of specific audio languages to download.
- Example Value:
['ita']
- Example Value:
-
specific_list_subtitles: A list of specific subtitle languages to download.
- Example Value:
['ara', 'baq', 'cat', 'chi', 'cze', 'dan', 'dut', 'eng', 'fil', 'fin', 'forced-ita', 'fre', 'ger', 'glg', 'gre', 'heb', 'hin', 'hun', 'ind', 'ita', 'jpn', 'kan', 'kor', 'mal', 'may', 'nob', 'nor', 'pol', 'por', 'rum', 'rus', 'spa', 'swe', 'tam', 'tel', 'tha', 'tur', 'ukr', 'vie']
- Example Value:
-
cleanup_tmp_folder: Upon final conversion, ensures the removal of all unformatted audio, video tracks, and subtitles from the temporary folder, thereby maintaining cleanliness and efficiency.
- Default Value:
false
- Default Value:
-
create_report: When enabled, saves the name of the series or movie being downloaded along with the date and file size in a CSV file, providing a log of downloaded content.
- Default Value:
false
- Default Value:
M3U8_CONVERSION
-
use_codec: Whether to use a specific codec for processing.
- Default Value:
false
- Example Value:
libx264
- Default Value:
-
use_gpu: Whether to use GPU acceleration.
- Default Value:
false
- Default Value:
-
default_preset: The default preset for ffmpeg conversion.
- Default Value:
ultrafast
- Example Value:
slow
- Default Value:
-
check_output_after_ffmpeg: Verify if the conversion run by ffmpeg is free from corruption.
- Default Value:
false
- Default Value:
M3U8_PARSER
-
skip_empty_row_playlist: Whether to skip empty rows in the playlist m3u8.
- Default Value:
false
- Default Value:
-
force_resolution: Forces the use of a specific resolution.
-1
means no forced resolution.- Default Value:
-1
- Example Value:
1080
- Default Value:
Important
If you're on Windows you'll need to use double back slash. On Linux/MacOS, one slash is fine.
- Windows:
C:\\MyLibrary\\Folder
or\\\\MyServer\\MyLibrary
(if you want to use a network folder). - Linux/MacOS:
Desktop/MyLibrary/Folder
You can choose different vars:
%(tv_name)
: Is the name of TV Show%(season)
: Is the number of the season%(episode)
: Is the number of the episode%(episode_name)
: Is the name of the episode
NOTE: You don't need to add .mp4 at the end
You can run the script in a docker container, to build the image just run
docker build -t streaming-community-api .
and to run it use
docker run -it -p 8000:8000 streaming-community-api
By default the videos will be saved in /app/Video
inside the container, if you want to to save them in your machine instead of the container just run
docker run -it -p 8000:8000 -v /path/to/download:/app/Video streaming-community-api
For a detailed walkthrough, refer to the video tutorial
- GUI
- Website api
- Add other site