A versatile script designed to download films and series from various supported streaming platforms.
Chat, contribute, and have fun in our Git_StreamingCommunity Discord Server
Install directly from PyPI:
pip install StreamingCommunity
Create run_streaming.py
:
from StreamingCommunity.run import main
if __name__ == "__main__":
main()
Run the script:
python run_streaming.py
pip install --upgrade StreamingCommunity
OS | Automatic Installation Support |
---|---|
Windows 10/11 | ✔️ |
Windows 7 | ❌ |
Debian Linux | ✔️ |
Arch Linux | ✔️ |
CentOS Stream 9 | ✔️ |
FreeBSD | ⏳ |
MacOS | ✔️ |
Termux | ❌ |
.\win_install.bat
sudo chmod +x unix_install.sh && ./unix_install.sh
python .\test_run.py
or
source .venv/bin/activate && python test_run.py && deactivate
./test_run.py
Prerequisites:
pip install -r requirements.txt
python test_run.py
python3 test_run.py
Keep your script up to date with the latest features by running:
python update.py
python3 update.py
You can change some behaviors by tweaking the configuration file.
The configuration file is divided into several main sections:
{
"root_path": "Video",
"movie_folder_name": "Movie",
"serie_folder_name": "TV",
"map_episode_name": "%(tv_name)_S%(season)E%(episode)_%(episode_name)",
"not_close": false
}
-
root_path
: Directory where all videos will be saved- Windows:
C:\\MyLibrary\\Folder
or\\\\MyServer\\MyLibrary
(if you want to use a network folder) - Linux/MacOS:
Desktop/MyLibrary/Folder
<br/><br/>
- Windows:
-
movie_folder_name
: The name of the subdirectory where movies will be stored. -
serie_folder_name
: The name of the subdirectory where TV series will be stored. -
map_episode_name
: Template for TV series episode filenamesYou 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<br/><br/>
-
not_close
: If true, continues running after downloading{ "config_qbit_tor": { "host": "192.168.1.59", "port": "8080", "user": "admin", "pass": "adminadmin" } }
To enable qBittorrent integration, follow the setup guide here.
{
"timeout": 20,
"max_retry": 3
}
timeout
: Maximum timeout (in seconds) for each requestmax_retry
: Number of retry attempts per segment during M3U8 index download
{
"tqdm_delay": 0.01,
"tqdm_use_large_bar": true,
"default_video_workser": 12,
"default_audio_workser": 12,
"cleanup_tmp_folder": true
}
tqdm_delay
: Delay between progress bar updatestqdm_use_large_bar
: Use detailed progress bar (recommended for desktop) set to false for mobiledefault_video_workser
: Number of threads for video downloaddefault_audio_workser
: Number of threads for audio downloadcleanup_tmp_folder
: Remove temporary .ts files after download
The following codes can be used for specific_list_audio
and specific_list_subtitles
:
ara - Arabic eng - English ita - Italian por - Portuguese
baq - Basque fil - Filipino jpn - Japanese rum - Romanian
cat - Catalan fin - Finnish kan - Kannada rus - Russian
chi - Chinese fre - French kor - Korean spa - Spanish
cze - Czech ger - German mal - Malayalam swe - Swedish
dan - Danish glg - Galician may - Malay tam - Tamil
dut - Dutch gre - Greek nob - Norw. Bokm tel - Telugu
heb - Hebrew nor - Norwegian tha - Thai
forced-ita hin - Hindi pol - Polish tur - Turkish
hun - Hungarian ukr - Ukrainian
ind - Indonesian vie - Vietnamese
Important
Language code availability may vary by site. Some platforms might:
- Use different language codes
- Support only a subset of these languages
- Offer additional languages not listed here
Check the specific site's available options if downloads fail.
Tip
You can configure multiple languages by adding them to the lists:
"specific_list_audio": ["ita", "eng", "spa"],
"specific_list_subtitles": ["ita", "eng", "spa"]
{
"force_resolution": -1,
"get_only_link": false
}
force_resolution
: Force specific resolution (-1 for best available, or specify 1080, 720, 360)get_only_link
: Return M3U8 playlist/index URL instead of downloading
-
Download a specific season by entering its number.
- Example:
1
will download Season 1 only.
- Example:
-
Use the wildcard
*
to download every available season.- Example:
*
will download all seasons in the series.
- Example:
-
Specify a range of seasons using a hyphen
-
.- Example:
1-2
will download Seasons 1 and 2.
- Example:
-
Enter a season number followed by
-*
to download from that season to the end.- Example:
3-*
will download from Season 3 to the final season.
- Example:
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
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.
Website | Status |
---|---|
1337xx | ✅ |
Altadefinizione | ✅ |
AnimeUnity | ✅ |
Ilcorsaronero | ✅ |
CB01New | ✅ |
DDLStreamItaly | ✅ |
GuardaSerie | ✅ |
MostraGuarda | ✅ |
StreamingCommunity | ✅ |
- Create website API -> https://github.com/Lovi-0/StreamingCommunity/tree/test_gui_1
If you'd like to support this project, consider making a donation!
Contributions are welcome! Steps:
- Fork the repository
- Create feature branch (
git checkout -b feature/AmazingFeature
) - Commit changes (
git commit -m 'Add some AmazingFeature'
) - Push to branch (
git push origin feature/AmazingFeature
) - Open Pull Request
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.