Skip to content

Lovi-0/StreamingCommunity

Repository files navigation

Project Logo

PyPI Donate License Commits Last Commit

PyPI Downloads Forks Code Size Repo Size

📋 Table of Contents

Installation

Windows PyPI Source Tarball All Versions

1. PyPI Installation

Install directly from PyPI:

pip install StreamingCommunity

Creating a Run Script

Create run_streaming.py:

from StreamingCommunity.run import main

if __name__ == "__main__":
    main()

Run the script:

python run_streaming.py

Updating via PyPI

pip install --upgrade StreamingCommunity

2. Automatic Installation

Supported Operating Systems 💿

OS Automatic Installation Support
Windows 10/11 ✔️
Windows 7
Debian Linux ✔️
Arch Linux ✔️
CentOS Stream 9 ✔️
FreeBSD
MacOS ✔️
Termux

Installation Steps

On Windows:

.\Installer\win_install.bat

On Linux/MacOS/BSD:

sudo chmod +x Installer/unix_install.sh && ./Installer/unix_install.sh

Usage

On Windows:

python .\test_run.py

or

source .venv/bin/activate && python test_run.py && deactivate

On Linux/MacOS/BSD:

./test_run.py

Binary Location

Default Locations

  • Windows: C:\binary
  • MacOS: ~/Applications/binary
  • Linux: ~/.local/bin/binary

You can customize these locations by following these steps for your operating system:

Windows

  1. Move the binary folder from C:\binary to your desired location
  2. Add the new path to Windows environment variables:
    • Open Start menu and search for "Environment Variables"
    • Click "Edit the system environment variables"
    • Click "Environment Variables" button
    • Under "System Variables", find and select "Path"
    • Click "Edit"
    • Add the new binary folder path
    • Click "OK" to save changes

For detailed Windows PATH instructions, see the Windows PATH guide.

MacOS

  1. Move the binary folder from ~/Applications/binary to your desired location
  2. Add the new path to your shell's configuration file:
    # For bash (edit ~/.bash_profile)
    export PATH="/your/custom/path:$PATH"
    
    # For zsh (edit ~/.zshrc)
    export PATH="/your/custom/path:$PATH"
  3. Reload your shell configuration:
    # For bash
    source ~/.bash_profile
    
    # For zsh
    source ~/.zshrc

Linux

  1. Move the binary folder from ~/.local/bin/binary to your desired location
  2. Add the new path to your shell's configuration file:
    # For bash (edit ~/.bashrc)
    export PATH="/your/custom/path:$PATH"
    
    # For zsh (edit ~/.zshrc)
    export PATH="/your/custom/path:$PATH"
  3. Apply the changes:
    source ~/.bashrc   # for bash
    # or
    source ~/.zshrc    # for zsh

Important

After moving the binary folder, ensure that all executables (ffmpeg, ffprobe, ffplay) are present in the new location and have the correct permissions:

  • Windows: .exe extensions required
  • MacOS/Linux: Ensure files have execute permissions (chmod +x filename)

3. Manual Installation

Requirements 📋

Prerequisites:

Install Python Dependencies

pip install -r requirements.txt

Usage

On Windows:

python test_run.py

On Linux/MacOS:

python3 test_run.py

Update

Keep your script up to date with the latest features by running:

On Windows:

python update.py

On Linux/MacOS:

python3 update.py

Configuration

You can change some behaviors by tweaking the configuration file.

The configuration file is divided into several main sections:

DEFAULT Settings

{
    "root_path": "Video",
    "movie_folder_name": "Movie",
    "serie_folder_name": "TV",
    "map_episode_name": "%(tv_name)_S%(season)E%(episode)_%(episode_name)",
    "add_siteName": false,
    "disable_searchDomain": false,
    "not_close": false
}
  • root_path: Directory where all videos will be saved

    Path examples:

    • Windows: C:\\MyLibrary\\Folder or \\\\MyServer\\MyLibrary (if you want to use a network folder)
    • Linux/MacOS: Desktop/MyLibrary/Folder <br/><br/>
  • 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 filenames

    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 <br/><br/>
  • add_siteName: If set to true, appends the site_name to the root path before the movie and serie folders.

  • disable_searchDomain: If set to true, disables the search for a new domain for all sites.

  • not_close: If set to true, keeps the program running after the download is complete.

    qBittorrent Configuration

    {
        "config_qbit_tor": {
            "host": "192.168.1.59",
            "port": "8080",
            "user": "admin",
            "pass": "adminadmin"
        }
    }

    To enable qBittorrent integration, follow the setup guide here.

REQUESTS Settings

{
    "timeout": 20,
    "max_retry": 3
}
  • timeout: Maximum timeout (in seconds) for each request
  • max_retry: Number of retry attempts per segment during M3U8 index download

M3U8_DOWNLOAD Settings

{
    "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 updates
  • tqdm_use_large_bar: Use detailed progress bar (recommended for desktop) set to false for mobile
  • default_video_workser: Number of threads for video download
  • default_audio_workser: Number of threads for audio download
  • cleanup_tmp_folder: Remove temporary .ts files after download

Important

Set tqdm_use_large_bar to false when using Termux or terminals with limited width to prevent network monitoring issues

Language Settings

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

Note

When using subtitles on Windows, please note that the default Windows Media Player may not display them correctly. We recommend using VLC Media Player for proper subtitle display and optimal playback experience.

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"]

For the best viewing experience, we recommend using VLC Media Player:

  • Supports all video formats and codecs
  • Properly displays embedded subtitles
  • Available for all major operating systems
  • Free and open-source

You can download VLC Media Player from the official website.

M3U8_PARSER Settings

{
    "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

COMMAND

  • Download a specific season by entering its number.

    • Example: 1 will download Season 1 only.
  • Use the wildcard * to download every available season.

    • Example: * will download all seasons in the series.
  • Specify a range of seasons using a hyphen -.

    • Example: 1-2 will download Seasons 1 and 2.
  • 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.

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.

Website Status

Website Status
1337xx
Altadefinizione
AnimeUnity
Ilcorsaronero
CB01New
DDLStreamItaly
GuardaSerie
MostraGuarda
StreamingCommunity

Tutorials

To Do

Contributing

Contributions are welcome! Steps:

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/AmazingFeature)
  3. Commit changes (git commit -m 'Add some AmazingFeature')
  4. Push to branch (git push origin feature/AmazingFeature)
  5. Open Pull Request

Disclaimer

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.

Contributors

Contributors