![Python](https://img.shields.io/badge/Python-3.9+-3776AB?style=flat-square&logo=python&logoColor=white) ![Release](https://img.shields.io/github/v/release/AstraeLabs/VibraVid?style=flat-square&color=success) ![License](https://img.shields.io/github/license/AstraeLabs/VibraVid?style=flat-square) ![ARR](https://img.shields.io/badge/ARR-Sonarr%20%7C%20Radarr-orange?style=flat-square) ![GUI](https://img.shields.io/badge/GUI-Web%20UI-blueviolet?style=flat-square) [![Sponsor](https://img.shields.io/badge/💖_Sponsor-ea4aaa?style=for-the-badge&logo=github-sponsors&logoColor=white&labelColor=2d3748)](https://ko-fi.com/arrowar) [![Windows](https://img.shields.io/badge/🪟_Windows-0078D4?style=for-the-badge&logo=windows&logoColor=white&labelColor=2d3748)](https://github.com/AstraeLabs/VibraVid/releases/latest/download/VibraVid_win_2025_x64.exe) [![macOS](https://img.shields.io/badge/🍎_macOS-000000?style=for-the-badge&logo=apple&logoColor=white&labelColor=2d3748)](https://github.com/AstraeLabs/VibraVid/releases/latest/download/VibraVid_mac_15_x64) [![Linux](https://img.shields.io/badge/🐧_Linux_latest-FCC624?style=for-the-badge&logo=linux&logoColor=black&labelColor=2d3748)](https://github.com/AstraeLabs/VibraVid/releases/latest/download/VibraVid_linux_24_04_x64) **🌍 Language / Lingua** [🇬🇧 English](README.md) | [🇮🇹 Italiano](./.github/docs/it/README.md)
--- ## 📖 Table of Contents - [Installation](#installation) - [Quick Start](#quick-start) - [Update](#update) - [Login](.github/docs/en/login.md) - [Downloaders](#downloaders) - [Configuration](#configuration) - [Usage Examples](#usage-examples) - [Global Search](#global-search) - [Advanced Features](#advanced-features) - [ARR Integration](#arr-integration) - [Docker](#docker) - [Gui](./.github/docs/en/gui.md) - [Known Issues](#known-issues) - [Related Projects](#related-projects) --- ## Installation ### Option 1 — Manual Clone ```bash git clone https://github.com/AstraeLabs/VibraVid.git cd VibraVid ``` Then install and run with either **pip** or **uv**: **pip:** ```bash pip install -r requirements.txt # install python manual.py # run pip install -r requirements.txt --upgrade # sync deps ``` **uv:** ```bash uv sync # install uv run manual.py # run uv sync --upgrade # sync deps ``` ### Option 2 — Unraid ``` You can find the app in the Community Application ``` ### Option 3 — Android/Termux (automatic) > [!IMPORTANT] > This script requires **Termux**. Do **NOT** install Termux from the Google Play Store, as that version is outdated and abandoned due to Android policy restrictions. Instead, download the latest official version from: > - 📥 [F-Droid](https://f-droid.org/packages/com.termux/) > - 📥 [GitHub Releases](https://github.com/termux/termux-app/releases) Once you have installed Termux, open the app, copy the command below, paste it into the terminal, and press **Enter** to run the automatic installation (it will download VibraVid, compile all necessary components including Velora, and configure the storage folder): ```bash curl -sL https://raw.githubusercontent.com/ManoloZocco/StreamingCommunity/main/termux_install.sh | bash ``` Once the installation is complete, you can launch the app at any time by simply typing: ```bash vibravid ``` ### Additional Documentation - 📝 [Login Guide](.github/docs/en/login.md) — Authentication for supported services - 🖥️ [NAS Deployment Guide](.github/docs/en/nas.md) — Docker setup on Synology, TrueNAS, and other NAS devices --- ## Quick Start ```bash python manual.py ``` --- ## Update ### Binary (Windows / macOS / Linux) ```bash VibraVid -UP ``` ### Manual clone ```bash git fetch origin git reset --hard origin/main ``` Then sync dependencies: **pip:** ```bash pip install -r requirements.txt --upgrade ``` **uv:** ```bash uv sync --upgrade ``` > If the folder is not yet an initialized Git repository: > ```bash > git init > git remote add origin https://github.com/AstraeLabs/VibraVid.git > git fetch origin > git reset --hard origin/main > ``` > ⚠️ Folders ignored by `.gitignore` (e.g. `Video/`) **will not be deleted**. ## Downloaders | Type | Description | Example | | -------- | ---------------------------- | ---------------------------------------- | | **HLS** | HTTP Live Streaming (m3u8) | [View example](./Test/Downloads/HLS.py) | | **MP4** | Direct MP4 download | [View example](./Test/Downloads/MP4.py) | | **DASH** | MPEG-DASH with DRM bypass\* | [View example](./Test/Downloads/DASH.py) | | **ISM** | Smooth Streaming with DRM bypass\* | [View example](./Test/Downloads/ISM.py) | | **Custom** | Multi-source hybrid | [View example](./Test/Downloads/CUSTOM.py) | > **\*DASH with DRM bypass:** Requires a valid L3\L2\L1\SL3000\SL2000 CDM (Content Decryption Module). This project does not provide or facilitate obtaining CDMs. Users must ensure compliance with applicable laws. ### Custom multi-source downloads `Generic_Downloader` takes a list of `sources`, downloads every selected track from every source **concurrently** on one shared progress bar, then muxes them into a single file — including hybrid **Dolby Vision + HDR10** output (the DV RPU is injected into the HDR10 base via `mkvmerge`/`dovi_tool`). When sources are full manifests (DASH MPD, HLS master) the tracks are auto-selected from the advertised codec/resolution/range. ```python from VibraVid.core.downloader import Generic_Downloader sources = [ {"role": "video:hdr10", "url": "", "key": ""}, {"role": "video:dv", "url": "", "key": ""}, {"role": "audio", "language": "en", "url": "