Un server proxy universale per streaming HLS, M3U8 e IPTV 🎬
Supporto nativo per Vavoo, DaddyLive HD e tutti i servizi di streaming
Compatibile per addons Stremio utilizzandolo come MediaFlow Proxy Interfaccia web integrata e configurazione zero
- ✨ Caratteristiche Principali
- 💾 Setup Rapido
- ☁️ Deploy Cloud
- 💻 Installazione Locale
- ⚙️ Configurazione Proxy
- 🧰 Utilizzo del Proxy
- 🔧 Configurazione
- 📖 Architettura
| 🎯 Proxy Universale | 🔐 Estrattori Specializzati | ⚡ Performance |
|---|---|---|
| HLS, M3U8, MPD, DLHD streams, VIXSRC | Vavoo, DLHD, Sportsonline, VixSrc | Connessioni async e keep-alive |
| 🔓 DRM Decryption | 🎬 MPD to HLS | 🔑 ClearKey Support |
| ClearKey via FFmpeg transcoding | Conversione automatica DASH → HLS | Server-side ClearKey per VLC |
| 🌐 Multi-formato | 🔄 Retry Logic | 🚀 Scalabilità |
|---|---|---|
| Supporto #EXTVLCOPT e #EXTHTTP | Tentativi automatici | Server asincrono |
| 🛠️ Builder Integrato | 📱 Interfaccia Web | 🔗 Playlist Manager |
|---|---|---|
| Combinazione playlist M3U | Dashboard completa | Gestione automatica headers |
Assicurati di avere un file Dockerfile e requirements.txt nella root del progetto.
git clone https://github.com/nzo66/EasyProxy.git
cd EasyProxy
docker build -t EasyProxy .
docker run -d -p 7860:7860 --name EasyProxy EasyProxygit clone https://github.com/nzo66/EasyProxy.git
cd EasyProxy
pip install -r requirements.txt
gunicorn --bind 0.0.0.0:7860 --workers 4 --worker-class aiohttp.worker.GunicornWebWorker app:appServer disponibile su: http://localhost:7860
- Projects → New → Web Service → Public Git Repository
- Repository:
https://github.com/nzo66/EasyProxy - Build Command:
pip install -r requirements.txt - Start Command:
gunicorn --bind 0.0.0.0:7860 --workers 4 --worker-class aiohttp.worker.GunicornWebWorker app:app - Deploy
- Crea nuovo Space (SDK: Docker)
- Carica tutti i file
- Deploy automatico
- Pronto!
Alternativa: Come alternativa, puoi copiare il contenuto del file Dockerfile-hf e metterlo su HuggingFace, impostando api_password come secret.
# Railway
railway login && railway init && railway up
# Heroku
heroku create EasyProxy && git push heroku main- Crea una nuova Web Service su Koyeb.
- Seleziona GitHub come fonte e inserisci l'URL del repository:
https://github.com/nzo66/EasyProxy - Seleziona Dockerfile
- Seleziona CPU Eco - Free
- Vai in Environment variables.
- Aggiungi la variabile
PORTcon valore8000(richiesto da Koyeb). - Deploy!
Il proxy funziona senza configurazione!
Ottimizzato per:
- ✅ Piattaforme gratuite (HuggingFace, Render Free)
- ✅ Server limitati (512MB - 1GB RAM)
- ✅ Streaming diretto senza cache
- ✅ Massima compatibilità con tutti i servizi
- Python 3.8+
- FFmpeg (necessario per transcoding MPD streams)
- aiohttp
- gunicorn
⚠️ Nota: Se non usi Docker, devi installare FFmpeg manualmente:
- Windows: Scarica da ffmpeg.org e aggiungi al PATH
- Linux/Debian:
sudo apt install ffmpeg- macOS:
brew install ffmpeg- Termux:
pkg install ffmpeg
# Clone repository
git clone https://github.com/nzo66/EasyProxy.git
cd EasyProxy
# Installa dipendenze
pip install -r requirements.txt
# Avvio
gunicorn --bind 0.0.0.0:7860 --workers 4 --worker-class aiohttp.worker.GunicornWebWorker app:app
# Avvio su Windows
python app.pypkg update && pkg upgrade
pkg install python git ffmpeg -y
git clone https://github.com/nzo66/EasyProxy.git
cd EasyProxy
pkg install clang libxml2 libxslt python
pip install --upgrade pip setuptools wheel
pip install -r requirements.txt
gunicorn --bind 0.0.0.0:7860 --workers 4 --worker-class aiohttp.worker.GunicornWebWorker app:app# Build personalizzata
docker build -t EasyProxy .
# Run con configurazioni personalizzate
docker run -d -p 7860:7860 \
--name EasyProxy EasyProxy
# Run con volume per logs
docker run -d -p 7860:7860 \
-v $(pwd)/logs:/app/logs \
--name EasyProxy EasyProxyIl modo più semplice per configurare i proxy è tramite un file .env.
- Crea un file
.envnella cartella principale del progetto (puoi rinominare il file.env.example). - Aggiungi le tue variabili proxy al file
.env.
Esempio di file .env:
# Proxy globale per tutto il traffico
GLOBAL_PROXY=http://user:pass@myproxy.com:8080
# --- Regole di Trasporto (TRANSPORT_ROUTES) ---
# Sistema avanzato per routing proxy basato su URL patterns.
# Formato: {URL=pattern, PROXY=proxy_url, DISABLE_SSL=true}, {URL=pattern2, PROXY=proxy_url2, DISABLE_SSL=true}
# - URL: pattern da cercare nell'URL (es. vavoo.to, dlhd.dad, giokko.ru)
# - PROXY: proxy da usare (lascia vuoto per connessione diretta)
# - DISABLE_SSL: per disattivare la verifica ssl
TRANSPORT_ROUTES={URL=vavoo.to, PROXY=socks5://proxy1:1080, DISABLE_SSL=true}, {URL=dlhd.dad, PROXY=http://proxy2:8080, DISABLE_SSL=true}
# Password per proteggere le API
API_PASSWORD=mysecretpassword
# --- Modalità Elaborazione MPD ---
# Scegli come gestire gli stream MPD/DASH:
# - ffmpeg: Transcoding via FFmpeg (richiede FFmpeg installato, alta CPU ma sync A/V migliore)
# - legacy: Usa mpd_converter + drm_decrypter (più leggero ma possibili problemi di compatibilità)
MPD_MODE=legacyLe variabili supportate sono:
GLOBAL_PROXY: Proxy di fallback per tutte le richieste.TRANSPORT_ROUTES: Sistema avanzato per routing proxy basato su URL patterns.PORT: Porta su cui il server ascolta (default: 7860).API_PASSWORD: Password per proteggere l'accesso alle API.MPD_MODE: Modalità elaborazione MPD (ffmpegolegacy). Default:legacy.
Esempio per cambiare la porta:
# Cambia la porta del server (default: 7860)
PORT=8080Questo endpoint non può essere aperto direttamente senza parametri. Serve per estrarre l'URL diretto dello stream da servizi supportati (come Vavoo, DLHD, ecc.).
Info e Aiuto:
Se apri /extractor o /extractor/video senza parametri, riceverai una risposta JSON con le istruzioni d'uso e la lista degli host supportati.
Come si usa:
Come si usa:
Devi aggiungere ?url= (o ?d=) seguito dal link del video che vuoi processare.
Esempi Pratici:
-
Ottenere il JSON con i dettagli (Default):
http://tuo-server:7860/extractor/video?url=https://vavoo.to/channel/123Restituisce un JSON con
destination_url,request_headers, ecc. -
Reindirizzare direttamente allo stream (Redirect): Aggiungi
&redirect_stream=true. Utile per mettere il link direttamente in un player.http://tuo-server:7860/extractor/video?url=https://daddylive.mp/stream/stream-1.php&redirect_stream=trueIl server risponderà con un redirect 302 verso l'URL del proxy pronto per la riproduzione.
-
Specificare manualmente l'host (Bypass Auto-detect): Se l'auto-detection fallisce, puoi forzare l'uso di un estrattore specifico con
host=.http://tuo-server:7860/extractor/video?host=vavoo&url=https://custom-link.com/123 -
URL in Base64: Puoi passare l'URL codificato in Base64 nel parametro
url(od). Il server lo decodificherà automaticamente.http://tuo-server:7860/extractor/video?url=aHR0cHM6Ly9leGFtcGxlLmNvbS92aWRlbw==
Parametri:
url(od): (Obbligatorio) L'URL originale del video o della pagina. Supporta URL in chiaro, URL Encoded o Base64 Encoded.host: (Opzionale) Forza l'uso di un estrattore specifico (es.vavoo,dlhd,mixdrop,voe,streamtape,orion).redirect_stream:true: Esegue un redirect immediato allo stream giocabile.false(default): Restituisce i dati in formato JSON.
api_password: (Opzionale) Password API se configurata.
Servizi Supportati: Vavoo, DaddyLiveHD, Mixdrop, Orion, Sportsonline, Streamtape, VixSrc, Voe e molto altro!
Questi endpoint gestiscono il proxying effettivo dei flussi video.
/proxy/manifest.m3u8: Endpoint principale per HLS. Gestisce anche la conversione automatica da DASH (MPD) a HLS./proxy/hls/manifest.m3u8: Alias specifico per HLS./proxy/mpd/manifest.m3u8: Forza il trattamento dell'input come DASH (MPD)./proxy/stream: Proxy universale per file statici (MP4, MKV, AVI) o stream progressivi.
Parametri Comuni:
url(od): URL dello stream originale.h_<header>: Headers personalizzati (es.h_User-Agent=VLC).clearkey: Chiavi di decrittazione DRM in formatoKID:KEY(per stream MPD protetti).
/builder: Interfaccia Web per il Playlist Builder./playlist: Endpoint per processare intere playlist M3U remote./info: Pagina HTML con lo stato del server e le versioni dei componenti./api/info: API JSON che restituisce lo stato del server./proxy/ip: Restituisce l'indirizzo IP pubblico del server (utile per debug VPN/Proxy)./generate_urls(POST): Genera URL proxy in batch (usato dal Builder)./license: Endpoint per gestire richieste di licenza DRM (se necessario).
Sostituisci <server-ip> con l'IP del tuo server.
http://<server-ip>:7860/
http://<server-ip>:7860/proxy/manifest.m3u8?url=<URL_STREAM>
Supporta:
- HLS (.m3u8) - Streaming live e VOD
- M3U playlist - Liste canali IPTV
- MPD (DASH) - Streaming adattivo con conversione automatica HLS
- MPD + ClearKey DRM - Decrittazione server-side CENC (VLC compatible)
- DLHD streams - Flussi dinamici
- VIXSRC - Streaming VOD
- Sportsonline - Streaming sportivo
Esempi:
# Stream HLS generico
http://server:7860/proxy/manifest.m3u8?url=https://example.com/stream.m3u8
# MPD con ClearKey DRM (decrittazione server-side)
http://server:7860/proxy/manifest.m3u8?url=https://cdn.com/stream.mpd&clearkey=KID:KEY
# Playlist IPTV
http://server:7860/playlist?url=https://iptv-provider.com/playlist.m3u
# Stream con headers personalizzati
http://server:7860/proxy/manifest.m3u8?url=https://stream.com/video.m3u8&h_user-agent=VLC&h_referer=https://site.comRisolve automaticamente:
- Link vavoo.to in stream diretti
- Autenticazione API automatica
- Headers ottimizzati per streaming
Funzionalità:
- Risoluzione link DaddyLive HD
- Bypass automatico restrizioni
- Ottimizzazione qualità stream
Funzionalità:
- Risoluzione link da
sportsonline.*esportzonline.* - Estrazione automatica da iframe
- Supporto per decodifica Javascript (P.A.C.K.E.R.)
http://<server-ip>:7860/builder
Interfaccia completa per:
- ✅ Combinare playlist multiple
- ✅ Gestione automatica Vavoo e DLHD
- ✅ Supporto #EXTVLCOPT e #EXTHTTP
- ✅ Estrazione automatica #KODIPROP ClearKey
- ✅ Proxy automatico per tutti gli stream
- ✅ Compatibilità VLC, Kodi, IPTV players
Aggiungi headers con prefisso h_:
http://server:7860/proxy/manifest.m3u8?url=STREAM_URL&h_user-agent=CustomUA&h_referer=https://site.com&h_authorization=Bearer token123
Headers supportati:
h_user-agent- User Agent personalizzatoh_referer- Sito di riferimentoh_authorization- Token di autorizzazioneh_origin- Dominio origineh_*- Qualsiasi header personalizzato
- Richiesta Stream → Endpoint proxy universale
- Rilevamento Servizio → Auto-detect Vavoo/DLHD/Generic
- Estrazione URL → Risoluzione link reali
- Proxy Stream → Forward con headers ottimizzati
- Risposta Client → Stream diretto compatibile
- aiohttp - HTTP client non-bloccante
- Connection pooling - Riutilizzo connessioni
- Retry automatico - Gestione errori intelligente
- Vavoo - Sistema signature automatico
- DaddyLive - Headers specializzati
- Generic - Supporto Authorization standard
Configura il tuo player con:
http://tuo-server:7860/proxy/manifest.m3u8?url=STREAM_URL
vlc "http://tuo-server:7860/proxy/manifest.m3u8?url=https://example.com/stream.m3u8"Aggiungi come sorgente:
http://tuo-server:7860/proxy/manifest.m3u8?url=PLAYLIST_URL
Apri direttamente nel browser:
http://tuo-server:7860/proxy/manifest.m3u8?url=https://stream.example.com/live.m3u8
# Logs in tempo reale
docker logs -f EasyProxy
# Riavvio container
docker restart EasyProxy
# Stop/Start
docker stop EasyProxy
docker start EasyProxy
# Rimozione completa
docker rm -f EasyProxy| Metric | Valore | Descrizione |
|---|---|---|
| Latenza | <50ms | Overhead proxy minimo |
| Throughput | Unlimited | Limitato dalla banda disponibile |
| Connessioni | 1000+ | Simultanee supportate |
| Memoria | 50-200MB | Utilizzo tipico |
- Connection Pooling - Riutilizzo connessioni HTTP
- Async I/O - Gestione non-bloccante delle richieste
- Keep-Alive - Connessioni persistenti
- DNS Caching - Cache risoluzione domini
I contributi sono benvenuti! Per contribuire:
- Fork del repository
- Crea un branch per le modifiche (
git checkout -b feature/AmazingFeature) - Commit le modifiche (
git commit -m 'Add some AmazingFeature') - Push al branch (
git push origin feature/AmazingFeature) - Apri una Pull Request
Per segnalare bug, apri una issue includendo:
- Versione del proxy
- Sistema operativo
- URL di test che causa il problema
- Log di errore completo
Per nuove funzionalità, apri una issue descrivendo:
- Funzionalità desiderata
- Caso d'uso specifico
- Priorità (bassa/media/alta)
Questo progetto è distribuito sotto licenza MIT. Vedi il file LICENSE per maggiori dettagli.
⭐ Se questo progetto ti è utile, lascia una stella! ⭐
🎉 Enjoy Your Streaming!
Accedi ai tuoi contenuti preferiti ovunque, senza restrizioni, con controllo completo e performance ottimizzate.