Universal HLS/M3U8 Proxy & Stream Extractor A powerful, lightweight proxy server designed to handle HLS, M3U8, and DASH (MPD) streams. It includes specialized extractors for popular streaming services, DRM support, and an integrated DVR system.
- 🌐 Universal Proxy: Seamlessly handles HLS, M3U8, MPD (DASH), and static video files.
- 🔓 DRM Support: ClearKey decryption via FFmpeg transcoding or legacy mode.
- 🔐 Specialized Extractors: Native support for Vavoo, DaddyliveHD, Sportsonline, VixSrc, DoodStream, MaxStream, and more.
- 📼 Integrated DVR: Record live streams while watching or schedule background recordings.
- 🛠️ Playlist Builder: Web interface to combine, manage, and proxy entire M3U playlists.
- ☁️ Cloud Ready: Optimized for HuggingFace, Render, Koyeb, and other free-tier platforms.
- 🛡️ Cloudflare Bypass: Integrated with FlareSolverr for bot protection bypass.
The Docker image includes EasyProxy plus integrated FlareSolverr for maximum compatibility.
docker run -d -p 7860:7860 --name EasyProxy ghcr.io/realbestia1/easyproxy:latest
# With Cloudflare WARP (Bypass IP blocks)
docker run -d --name EasyProxy --cap-add=NET_ADMIN --device /dev/net/tun -e ENABLE_WARP=true -p 7860:7860 ghcr.io/realbestia1/easyproxy:latest- Python 3.11+
- Git (for cloning dependencies)
- FFmpeg (for stream recording/remuxing)
The easiest way to get EasyProxy plus solvers on Windows:
- Clone the repository and enter the folder.
- Run
start_full.bat. This script automatically handles FlareSolverr, patches, and dependencies.
- Install dependencies:
pip install -r requirements.txt python -m playwright install chromium
- Start EasyProxy:
python app.py
EasyProxy plus solvers is fully supported on Android via Termux + Ubuntu proot.
- Install Termux from F-Droid (do NOT use Play Store version).
- Run the One-Shot Setup:
curl -sL "https://raw.githubusercontent.com/realbestia1/EasyProxy/main/termux_setup.sh?$(date +%s)" | bash
- Prevent Termux from Sleeping:
- Wake Lock: Swipe down your notification bar and click "Acquire wake-lock" on the Termux notification.
- Battery Optimization: Go to your Phone Settings -> Apps -> Termux -> Battery -> Set to "Unrestricted".
- Commands:
easyproxy: Start the full stack.easyproxy-update: Update code and dependencies.easyproxy-stop: Stop all services.
Access the dashboard at http://localhost:7860
| Method | Description |
|---|---|
| Docker | Standard docker build . uses the single Dockerfile with solvers included. |
| Docker Compose | Run the complete stack (Proxy + Solvers) with docker-compose up -d. |
| HuggingFace | Use Dockerfile-hf for seamless deployment on HF Spaces. |
| Termux | Support for Android via Python & FFmpeg. |
Configure the server via a .env file. See .env.example for all options.
| Variable | Description | Default |
|---|---|---|
PORT |
Server port | 7860 |
API_PASSWORD |
Optional password for API endpoints | ep |
FLARESOLVERR_URL |
URL for FlareSolverr | http://localhost:8191 |
FLARESOLVERR_TIMEOUT |
Timeout for FlareSolverr requests (seconds) | 30 |
DVR_ENABLED |
Enable recording features | false |
ENABLE_WARP |
Enable integrated Cloudflare WARP | false |
WARP_EXCLUDED_HOSTS |
Comma-separated hosts that must bypass the WARP VPN tunnel and use the server real IP | built-in defaults |
WARP_LICENSE_KEY |
Optional WARP+ license key | - |
The Docker image includes an integrated Cloudflare WARP client to bypass IP-based blocks. When enabled, outgoing traffic used by FlareSolverr and EasyProxy can be routed through the Cloudflare network.
Requirements: To function correctly, the container needs elevated network permissions:
- Docker Compose: Handled automatically in the provided
docker-compose.yml. - Docker Run: You must add
--cap-add=NET_ADMIN --device /dev/net/tun. - Coolify (Git Repository / Dockerfile):
- Go to your application Settings -> General.
- In the Custom Docker Options field, paste:
--cap-add NET_ADMIN --device /dev/net/tun:/dev/net/tun - Click Save and Redeploy.
Example command (Docker Run):
docker run -d --name easyproxy --cap-add=NET_ADMIN --device /dev/net/tun -e ENABLE_WARP=true -p 7860:7860 ghcr.io/realbestia1/easyproxy:latestNote
If you are deploying on HuggingFace Spaces, WARP cannot be used due to security restrictions. Set ENABLE_WARP=false in your environment variables.
Important
If a provider has issues behind WARP, configure the host in WARP_EXCLUDED_HOSTS.
With WARP running as a VPN tunnel, bypass must be configured through the WARP_EXCLUDED_HOSTS environment variable so the host exits with the server real IP.
Example:
WARP_EXCLUDED_HOSTS=cinemacity.cc,cccdn.net,strem.fun,torrentio.strem.fun,problem-host.example
For detailed API documentation and testing, use the built-in Interactive Docs available at:
http://localhost:7860/docs(Swagger UI)http://localhost:7860/redoc(ReDoc)
Prefix any stream URL with the proxy endpoint to handle headers and DRM.
http://localhost:7860/proxy/manifest.m3u8?url=<URL>
Options:
&clearkey=KID:KEY: Provide keys for DASH streams.&warp=off: Force the request to bypass the WARP VPN and use the server's real IP (Direct Connection).&h_<Header Name>=<Value>: Pass custom headers (e.g.,&h_User-Agent=VLC).
Extract direct video links from supported websites.
http://localhost:7860/extractor/video?d=<URL>&redirect_stream=true
Tip: Open http://localhost:7860/extractor in your browser for a list of all parameters and supported hosts.
Manage your recordings via the /recordings web UI or API.
/record?url=<URL>&name=<NAME>: Start recording and watch simultaneously./api/recordings/start: Trigger a background recording.
- Playlist Builder (
/builder): A visual tool to create custom M3U playlists with proxied links. - Server Info (
/info): Check status, public IP, and version information.
Contributions are welcome!
- Fork the repository.
- Commit your changes (features, extractors, or bug fixes).
- Open a Pull Request to the main branch.
Found a bug? Open an Issue!
Distributed under the MIT License. See LICENSE for more information.
⭐ If this project helped you, please give it a star! ⭐