# StreamProxy - The Intelligent Proxy for Enigma2
## What is StreamProxy?
**StreamProxy** is a plugin for Enigma2 receivers that turns your decoder into an **intelligent proxy server** capable of playing HLS (m3u8) streams from any source. Whether the streams are encrypted, protected by tokens, hidden behind JavaScript, or require custom headers – StreamProxy handles them transparently.
## How does it work?
The plugin is based on a **local HTTP server** (port 7860) that acts as a bridge between Enigma2 and streaming services. When you select a channel, StreamProxy:
1. **Intercepts** the playback request.
2. **Analyzes** the URL and identifies the service (DaddyLive, Vavoo, Freeshot, Mixdrop, Sport99, TVTap, etc.).
3. **Resolves** the stream using a specific extractor for that service.
4. **Decrypts** segments if necessary (AES-128).
5. **Serves** the stream to Enigma2 in a compatible format (TS or fMP4).
**The result is that any streaming URL you feed it gets played!**
## Why is it different from others?
- **A proxy, not just a player**: StreamProxy doesn't play streams directly; it transforms them so Enigma2 understands them. This means channels become **full Enigma2 services** with EPG, recording, and zapping.
- **Extensibility**: Simply add a new extractor to the `/extractors` folder to support a new service. **No need to rewrite the plugin!**
- **Encrypted stream support**: Handles AES-128, JWT tokens, wmsAuthSign, and other authentication systems.
- **Intelligent caching**: Reduces load on the decoder and speeds up zapping.
- **Optional external proxy**: If your decoder can't keep up, you can delegate decryption to an external server (EasyProxy/MediaFlowProxy) for better performance.
## How to use it?
1. **Install the plugin** in `/usr/lib/enigma2/python/Plugins/Extensions/StreamProxy`.
2. **Restart Enigma2**.
3. **Add channels** as standard IPTV services. StreamProxy will automatically recognize supported URLs.
4. **If you like**, you can use [BouquetUpdater](Bouquet updater) to automatically generate bouquets from your favorite URLs.
## Integration with BouquetUpdater
StreamProxy and BouquetUpdater are **complementary**:
- **BouquetUpdater**: Downloads and updates channel lists (bouquets) from external sources.
- **StreamProxy**: Takes those channel URLs and makes them playable on Enigma2.
Together they create a complete system: channels are updated automatically and made playable without any manual configuration.
## Currently Supported Services
+------------------+------------+------------+--------------------------------+
| Servizio | Estrazione | Decrypt | Note |
+------------------+------------+------------+--------------------------------+
| DaddyLive/DLHD | ✅ | ✅ AES-128 | Token JWT, heartbeat |
| Vavoo | ✅ | ✅ | Signature dinamica |
| Freeshot | ✅ | ✅ fMP4 | Supporto nativo fMP4 |
| Sport99/CDNLiveTV| ✅ | - | Packed JS |
| Sportsonline | ✅ | - | Packed JS |
| TVTap | ✅ | - | wmsAuthSign |
| Mixdrop | ✅ | - | Vari mirror |
| Maxstream/Uprot | ✅ | - | URL packer |
| VixCloud | ✅ | - | masterPlaylist JSON |
+------------------+------------+------------+--------------------------------+
Display More
In practice, **any streaming URL you have – StreamProxy handles it**.
## Special Thanks
A special thanks to **OlinadWiz** for the original concept, and to all beta testers and the Enigma2 community who made this project possible.
---
**Questions? Suggestions?** Post below!
ITALIAN
# StreamProxy - Il proxy intelligente per Enigma2
## Cos'è StreamProxy?
**StreamProxy** è un plugin per decoder Enigma2 che trasforma il tuo decoder in un **server proxy intelligente** in grado di riprodurre stream HLS (m3u8) provenienti da qualsiasi fonte. Non importa se i flussi sono criptati, protetti da token, nascosti dietro JavaScript o richiedono headers personalizzati: StreamProxy li gestisce in modo trasparente.
## Come funziona?
Il plugin si basa su un **server HTTP locale** (porta 7860) che fa da ponte tra Enigma2 e i servizi di streaming. Quando selezioni un canale, StreamProxy:
1. **Intercetta** la richiesta di riproduzione.
2. **Analizza** l'URL e riconosce il servizio (DaddyLive, Vavoo, Freeshot, Mixdrop, Sport99, TVTap, ecc.).
3. **Risolve** il flusso utilizzando un extractor specifico per quel servizio.
4. **Decripta** i segmenti se necessario (AES-128).
5. **Serve** il flusso a Enigma2 in un formato compatibile (TS o fMP4).
**Il risultato è che qualsiasi URL di streaming che gli passi, viene riprodotto!**
## Perché è diverso dagli altri?
- **Un proxy, non un semplice player**: StreamProxy non riproduce direttamente i flussi, ma li trasforma in modo che Enigma2 li capisca. Questo significa che i canali diventano **servizi Enigma2 a tutti gli effetti**, con EPG, registrazioni e zapping.
- **Estensibilità**: Basta aggiungere un nuovo extractor nella cartella `/extractors` per supportare un nuovo servizio. **Non serve riscrivere il plugin!**
- **Supporto per flussi criptati**: Gestisce AES-128, token JWT, wmsAuthSign e altri sistemi di autenticazione.
- **Cache intelligente**: Riduce il carico sul decoder e velocizza lo zapping.
- **Proxy esterno opzionale**: Se il decoder non ce la fa, puoi delegare il decrypt a un server esterno (EasyProxy/MediaFlowProxy) per prestazioni migliori.
## Come si usa?
1. **Installa il plugin** nella cartella `/usr/lib/enigma2/python/Plugins/Extensions/StreamProxy`.
2. **Riavvia Enigma2**.
3. **Aggiungi i canali** come servizi IPTV standard. StreamProxy riconoscerà automaticamente gli URL supportati.
4. **Se vuoi**, puoi usare [BouquetUpdater](BouquetUpdater) per generare automaticamente i bouquet dai tuoi URL preferiti.
## Integrazione con BouquetUpdater
StreamProxy e BouquetUpdater sono **complementari**:
- **BouquetUpdater**: Scarica e aggiorna liste canali (bouquet) da fonti esterne.
- **StreamProxy**: Prende gli URL di quei canali e li rende riproducibili su Enigma2.
Insieme creano un sistema completo: i canali vengono aggiornati automaticamente e resi riproducibili senza alcuna configurazione manuale.
## Supporto attuale
Attualmente StreamProxy supporta:
+------------------+------------+------------+--------------------------------+
| Servizio | Estrazione | Decrypt | Note |
+------------------+------------+------------+--------------------------------+
| DaddyLive/DLHD | ✅ | ✅ AES-128 | Token JWT, heartbeat |
| Vavoo | ✅ | ✅ | Signature dinamica |
| Freeshot | ✅ | ✅ fMP4 | Supporto nativo fMP4 |
| Sport99/CDNLiveTV| ✅ | - | Packed JS |
| Sportsonline | ✅ | - | Packed JS |
| TVTap | ✅ | - | wmsAuthSign |
| Mixdrop | ✅ | - | Vari mirror |
| Maxstream/Uprot | ✅ | - | URL packer |
| VixCloud | ✅ | - | masterPlaylist JSON |
+------------------+------------+------------+--------------------------------+
Display More
In pratica, **qualsiasi URL di streaming che hai, StreamProxy lo gestisce**.
## Ringraziamenti
Un grazie speciale
e a tutti i beta tester e alla community Enigma2 che ha reso possibile questo progetto.
---
**Domande? Suggerimenti?** Scrivete qui sotto!
----------------------------------
all ipk are in linuxsat- addon panel /lululla category
