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.
Join us π
You can chat, help improve this repo, or just hang around for some fun in the Git_StreamingCommunity Discord Server
Table of Contents
INSTALLATION
Automatic Installation
Supported OSs for Automatic Installation πΏ
- Supported βοΈ
- Not tested β³
- Not supported β
OS |
Automatic Installation Support |
Windows 10/11 |
βοΈ |
Windows 7 |
β |
Debian Linux |
βοΈ |
Arch Linux |
βοΈ |
CentOS Stream 9 |
βοΈ |
FreeBSD |
β³ |
MacOS |
βοΈ |
Termux |
β |
Installation βοΈ
Run the following command inside the main directory:
On Windows:
.\win_install.bat
On Linux/MacOS/BSD:
sudo chmod +x unix_install.sh && ./unix_install.sh
Usage π
Run the script with the following command:
On Windows:
python .\run.py
or
source .venv/bin/activate && python run.py && deactivate
On Linux/MacOS/BSD:
./run.py
Manual Installation
Requirement π
Make sure you have the following prerequisites installed on your system:
Installation βοΈ
Install the required Python libraries using the following command:
pip install -r requirements.txt
Usage π
Run the script with the following command:
On Windows:
python run.py
On Linux/MacOS:
python3 run.py
Update
Keep your script up to date with the latest features by running:
On Windows:
python update_version.py
On Linux/MacOS:
python3 update_version.py
Configuration βοΈ
You can change some behaviors by tweaking the configuration file.
DEFAULT
* **debug**: Enables or disables debug mode.
- **Default Value**: `false`
* **root_path**: Path where the script will add movies and TV series folders (see [Path Examples](#Path-examples)).
- **Default Value**: `Video`
* **map_episode_name**: Mapping to choose the name of all episodes of TV Shows (see [Episode Name Usage](#Episode-name-usage)).
- **Default Value**: `%(tv_name)_S%(season)E%(episode)_%(episode_name)`
* **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`
REQUESTS
* **timeout**: The timeout value for requests.
- **Default Value**: `15`
* **verify_ssl**: Whether to verify SSL certificates.
- **Default Value**: `false`
* **proxy**: To use proxy create a file with name list_proxy.txt and copy ip and port like "122.114.232.137:8080". They need to be http
M3U8_DOWNLOAD
* **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
* **specific_list_audio**: A list of specific audio languages to download.
- **Example Value**: `['ita']`
* **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']`
* **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`
M3U8_PARSER
* **force_resolution**: Forces the use of a specific resolution. `-1` means no forced resolution.
- **Default Value**: `-1`
- **Example Value**: `1080`
* **get_only_link**: Print hls m3u8 link and path file.
- **Default Value**: `false`
[!IMPORTANT]
If you're on Windows you'll need to use double back slash. On Linux/MacOS, one slash is fine.
Path examples:
- Windows:
C:\\MyLibrary\\Folder
or \\\\MyServer\\MyLibrary
(if you want to use a network folder).
- Linux/MacOS:
Desktop/MyLibrary/Folder
Episode name usage:
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
Docker π³
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
Docker quick setup with Make
Inside the Makefile (install make
) are already configured two commands to build and run the container:
make build-container
# set your download directory as ENV variable
make LOCAL_DIR=/path/to/download run-container
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.
Tutorial π
win
linux
To do π
- GUI
- Website api
- Add other site