# StreamingCommunity Downloader 🎬

A versatile script designed to download films and series from various supported streaming platforms.
## 🤝 Join our Community
Chat, contribute, and have fun in our **Git_StreamingCommunity** Discord [Server](https://discord.com/invite/8vV68UGRc7)
## 📋 Table of Contents
- [Installation](#installation)
- [PyPI Installation](#pypi-installation)
- [Automatic Installation](#automatic-installation)
- [Manual Installation](#manual-installation)
- [Win 7](https://github.com/Ghost6446/StreamingCommunity_api/wiki/Installation#win-7)
- [Termux](https://github.com/Ghost6446/StreamingCommunity_api/wiki/Termux)
- [Configuration](#configuration)
- [Tutorial](#tutorial)
- [To Do](#to-do)
## 💻 Installation
### 1. PyPI Installation
Install directly from PyPI:
```bash
pip install StreamingCommunity
```
#### Creating a Run Script
Create `run_streaming.py`:
```python
from StreamingCommunity.run import main
if __name__ == "__main__":
main()
```
Run the script:
```bash
python run_streaming.py
```
#### Updating via PyPI
```bash
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:
```powershell
.\win_install.bat
```
##### On Linux/MacOS/BSD:
```bash
sudo chmod +x unix_install.sh && ./unix_install.sh
```
#### Usage
##### On Windows:
```powershell
python .\run.py
```
or
```powershell
source .venv/bin/activate && python run.py && deactivate
```
##### On Linux/MacOS/BSD:
```bash
./run.py
```
### 3. Manual Installation
#### Requirements 📋
Prerequisites:
* [Python](https://www.python.org/downloads/) > 3.8
* [FFmpeg](https://www.gyan.dev/ffmpeg/builds/)
#### Install Python Dependencies
```bash
pip install -r requirements.txt
```
#### Usage
##### On Windows:
```powershell
python run.py
```
##### On Linux/MacOS:
```bash
python3 run.py
```
### Update
Keep your script up to date with the latest features by running:
#### On Windows:
```powershell
python update.py
```
#### On Linux/MacOS:
```bash
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
```json
{
"root_path": "Video",
"map_episode_name": "%(tv_name)_S%(season)E%(episode)_%(episode_name)",
"not_close": false,
"show_trending": 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`
`
`
- `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
`
`
- `not_close`: If true, continues running after downloading
- `show_trending`: Display trending content on startup
#### qBittorrent Configuration
```json
{
"config_qbit_tor": {
"host": "192.168.1.59",
"port": "8080",
"user": "admin",
"pass": "adminadmin"
}
}
```
To enable qBittorrent integration, follow the setup guide [here](https://github.com/lgallard/qBittorrent-Controller/wiki/How-to-enable-the-qBittorrent-Web-UI).
### REQUESTS Settings
```json
{
"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
### BROWSER Settings
```json
{
"headless": false
}
```
- `headless`: Controls whether to run browser in headless mode
### M3U8_DOWNLOAD Settings
```json
{
"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
#### 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
```
> [!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:
>
> ```json
> "specific_list_audio": ["ita", "eng", "spa"],
> "specific_list_subtitles": ["ita", "eng", "spa"]
> ```
### M3U8_PARSER Settings
```json
{
"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
## 🌐 Website Status
| Website | Status |
|:-------------------|:------:|
| 1337xx | ✅ |
| Altadefinizione | ✅ |
| AnimeUnity | ✅ |
| BitSearch | ✅ |
| CB01New | ✅ |
| DDLStreamItaly | ✅ |
| GuardaSerie | ✅ |
| MostraGuarda | ✅ |
| PirateBays | ✅ |
| StreamingCommunity | ✅ |
## 📖 Tutorials
- [Windows Tutorial](https://www.youtube.com/watch?v=mZGqK4wdN-k)
- [Linux Tutorial](https://www.youtube.com/watch?v=0qUNXPE_mTg)
## 📝 To Do
- Create website API
## 🤝 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