Vavoo Stream Live Plugin is an Enigma2 extension that provides access to thousands of live TV channels from multiple countries. It features a built-in local proxy for improved reliability, automatic bouquet updates, EPG integration, real-time notifications, satellite priority matching, and seamless integration with your Enigma2 receiver.
- Live TV Streaming β Watch live channels from various countries
- Country & Category Browsing β Organized by country and category
- Search Functionality β Find channels by name in real-time
- Enigma2 Bouquet Export β Export channels directly to your channel list
- M3U Playlist Generation β Create standard M3U playlists for external players
- EPG Integration β Electronic Program Guide for supported channels, served via GitHub
- Satellite Priority Matching β Intelligent EPG matching prioritizing user-configured satellites
- Automatic Updates β Scheduled bouquet updates to keep channels current
- Local Proxy Integration β Enhanced reliability and no 10-minute blocks
- Multi-Language Support β Including right-to-left language support
- Customizable Interface β Change backgrounds, fonts, and settings
- Proxy Status Monitor β Real-time proxy status display in main interface
- Real-time Notifications β Visual feedback for all operations (exports, EPG processing, errors)
- Complete EPG Cache β Persistent storage with matched/unmatched status and Rytec IDs
- Thread-safe Operations β Background exports with progress notifications
- Text Key Functions β Manual proxy refresh using TEXT button
- Cache Format Fix β Yellow button to clean up and fix cache format
- HTTP 451 Handling β Automatic fallback to mirror sites when primary is blocked
The plugin includes a sophisticated notification system that provides real-time feedback:
- Welcome Message β Shown when the plugin starts
- Export Progress β "Export started", "Bouquet ready", "EPG processing completed"
- Error Alerts β Clear error messages with details
- Cache Operations β Notifications during cache format fixes
- Thread-safe β Notifications work from any background thread
- Message Queue β Messages are queued if the UI isn't ready
- Singleton Pattern β Single notification manager instance across all plugin screens
| Type | Duration | Color | Example |
|---|---|---|---|
| Info | 3 seconds | Blue | "Export started. Bouquet will be available shortly." |
| Success | 4 seconds | Green | "EPG processing completed for 25 channels" |
| Warning | 4 seconds | Yellow | "An export for another country is already in progress" |
| Error | 5 seconds | Red | "Bouquet creation error: connection timeout" |
- Open the Vavoo Plugin β The proxy will start automatically (welcome notification appears)
- Select a Country β Choose your desired country (e.g., "Italy")
- Press GREEN Button β Export favorites to Enigma2 bouquets (notifications show progress)
- Return to TV β Your channels will appear in the channel list!
- Go to Menu Config β Enable "Scheduled Bouquet Update: ON"
- Choose update interval (5-15 minutes) or fixed time
- The proxy will handle everything automatically
- Enable "Enable Vavoo EPG" in the configuration menu
- The plugin generates country-specific EPG files in
/etc/epgimport/ - EPG data is fetched from GitHub and displayed in the player overlay (press OK)
- Press YELLOW button in the main menu to fix cache format
- This will add missing fields and remove duplicate entries
- A notification will show the result
In the Config Menu:
- β Scheduled Bouquet Update: ON/OFF (only required setting)
- β If ON: Choose interval (5-15 min) or fixed time
- β Enable Vavoo EPG: Generate EPG sources for EPGImport
- β Proxy Enabled: Enable/disable the local proxy (default: ON)
- β List Position: Place Vavoo bouquets at top or bottom of channel list
- β Select Background: Choose custom background images
- β IPv6 State: Enable/disable IPv6 on your system
- β Link in Main Menu: Show plugin in main Enigma2 menu
- Proxy and updates are managed automatically
- β No 10-minute blocks β Proxy handles authentication tokens
- β Automatic updates β Keep bouquets fresh without manual work
- β Improved performance β Local proxy provides stable streams
- β EPG support β Program guide for many channels with satellite priority
- β Clean system β Single configuration point
- β No manual refreshes β Everything happens automatically
- β Real-time monitoring β Proxy status always visible
- β Visual feedback β Notifications for all operations
- β Manual control β Force proxy refresh with TEXT button
- β Cache management β Fix cache format with YELLOW button
- Manages authentication with Vavoo servers
- Automatically renews tokens every 8-9 minutes (TOKEN_ADDON_SIG = 600 seconds)
- Provides stable URLs for bouquets
- Completely eliminates 10-minute streaming blocks
- Self-monitoring with automatic restart on failure
- Connection pool management to prevent timeouts
- Mirror Support: Automatic fallback between vavoo.to and kool.to when HTTP 451 is detected
- Token Monitor: Background thread that checks token age every 60 seconds
- Active Stream Tracking: Notifies proxy when streams start/end for better resource management
- EPG data is generated per country and stored in
/etc/epgimport/vavoo_<country>.channels.xml - A master source file (
vavoo.sources.xml) is created for EPGImport - The player fetches EPG via the proxy redirect to GitHub raw files
- Intelligent Channel Matching:
- Uses Rytec database for EPG IDs
- Scans user-configured satellites from Enigma2 NimManager
- Prioritizes matches from satellites the user actually has configured
- Falls back to Italian satellites (13Β°E HotBird, 5Β°W Eutelsat) for Italian channels
- Priority levels: Satellite > Terrestrial > Cable > IPTV
- Boost multipliers: 1.5Γ for user-configured satellites, 1.3Γ for Italian satellites
- Singleton Pattern: Single manager instance across all screens
- Thread-safe: Lock mechanism prevents race conditions
- Message Queue: Pending messages stored until UI is ready
- Auto-cleanup: Notifications automatically hide after timeout
- Fallback: Console logging when UI not available
The proxy provides these endpoints:
/statusβ Check proxy status/channels?country=CountryNameβ Get channels by country/vavoo?channel=ChannelIDβ Resolve stream URLs (302 redirect)/catalogβ Full channel catalog/countriesβ List all countries/refresh_tokenβ Force token refresh/epg/<country>.xmlβ Redirect to GitHub EPG file/healthβ Detailed health check with token age/shutdownβ Gracefully stop proxy
- Path: Plugin menu β Select country β GREEN button
- Creates bouquets with proxy URLs:
http://127.0.0.1:4323/vavoo?channel=CHANNEL_ID - Service references are matched against Rytec database for EPG compatibility
- EPG mapping files are automatically generated for each country
- Supports both flat bouquets and hierarchical categories
- Path: Config Menu β "Generate .m3u files"
- Downloads playlist from proxy and saves as
vavoo_[country]_playlist.m3u - Supports single country or all countries export
- Location:
/etc/epgimport/vavoo_*.channels.xml - Source:
https://raw.githubusercontent.com/Belfagor2005/vavoo-player/master/epg_<country>.xml - Updated automatically via GitHub Actions every 6 hours
-
EPG Cache:
/etc/enigma2/vavoo_epg_cache.jsonβ Persistent cache of matched channels with Rytec IDs{ "channel_name_country": { "id": "rytec_id", "sref": "4097:0:1:1773:60E1:217C:5A0000:0:0:0:", "name": "channel_name", "country": "it", "matched": true, "timestamp": "2026-03-19 10:23:15" } } -
Unmatched Cache:
/etc/enigma2/vavoo_epg_unmatched_cache.jsonβ Stores channels that couldn't be matched{ "channel_name_country": { "id": "channel_name_country", "name": "channel_name", "country": "it", "sref": "4097:0:0:0:0:0:0:0:0:0:", "timestamp": "2026-03-19 10:23:15", "matched": false, "attempts": 3 } }Features:
- Tracks matching attempts count
- Auto-converts old format entries
- Persistent across plugin restarts
- Used for future matching improvements
-
SREF Map:
/etc/enigma2/vavoo_sref_map.jsonβ Maps service references to channel IDs for the proxy
# Check proxy status
curl -s http://127.0.0.1:4323/status
# Check proxy logs
cat /tmp/vavoo_proxy.log
# Check plugin logs
cat /tmp/vavoo.log
# Check EPG cache
cat /etc/enigma2/vavoo_epg_cache.json
# Check unmatched cache
cat /etc/enigma2/vavoo_epg_unmatched_cache.json
# Check proxy health
curl -s http://127.0.0.1:4323/health| Problem | Solution |
|---|---|
| "No channels found" | Restart plugin, check internet connection |
| Bouquets don't open | Ensure proxy is running (check with curl) |
| Stream doesn't start | Proxy should auto-refresh tokens |
| M3U export fails | Verify port 4323 is accessible |
| "No programme found" | Clear EPG cache and re-export bouquet; check country EPG file exists |
| EPG not updating | Verify EPG is enabled in config and GitHub files are accessible |
| HTTP 451 errors | Proxy automatically switches to mirror sites (kool.to) |
| Duplicate cache entries | Press YELLOW button in main menu to fix cache format |
| Problem | Solution |
|---|---|
| Only first notification shows | Ensure init_notification_system(session) is called once in MainVavoo |
| Notifications from background don't appear | The singleton manager now handles this automatically |
| Message appears truncated | Check Python 2/3 encoding in notification text |
| Notifications too fast/slow | Adjust duration parameter in quick_notify(message, seconds) |
| Problem | Solution |
|---|---|
| Unmatched channels not saving | Check write permissions to /etc/enigma2/ |
| Duplicate unmatched entries | Press YELLOW button or run fix_cache_format(remove_duplicates=True) |
| Cache file corrupted | Delete the file and restart - it will be regenerated |
| Old format entries | The plugin auto-converts them on read or use YELLOW button |
Vavoo sends anonymous startup notifications to help improve the plugin.
Collected (anonymous only):
- Temporary session ID (changes on every reboot)
- Plugin version
- Event type (startup/heartbeat)
- Timestamp
Not collected: IP, MAC, personal data, channels, or any identifying info.
Disable: Config menu β "Send Anonymous Statistics" β No
- Notifications are thread-safe β You can call
quick_notify()from any background thread - Message queue system ensures no notifications are lost during plugin startup
- Unmatched channels are persistent β They survive plugin restarts and are used for future matching attempts
- Attempts counter helps track how many times a channel has been processed
- EPG cache now includes matched/unmatched status β Each entry has a
matched: true/falseflag - Satellite priority β The plugin reads your Enigma2 satellite configuration and prioritizes those channels
- Old bouquets won't work with new system β re-export required
- Proxy runs in background β bouquets work even after closing plugin
- Minimal memory usage (~20-50MB)
- Use TEXT button in main menu to manually refresh proxy token
- Use YELLOW button to fix cache format
- Proxy status is displayed in real-time in the main interface
- Created by: Lululla (https://github.com/Belfagor2005)
- Email: ekekaz@gmail.com
- Special thanks to: @KiddaC for suggestions, Qu4k3 for technical support
- Background images: @oktus
- Contributions: Qu4k3, @Belfagor2005 (EPG integration), @giorbak
- Notification System: Based on original RaiPlay implementation
- Satellite Priority System: Based on user feedback and Enigma2 integration
- Communities: Linuxsat-support.com & Corvoboys
CC BY-NC-SA 4.0
https://creativecommons.org/licenses/by-nc-sa/4.0
Usage of this code without proper attribution is strictly prohibited. For modifications and redistribution, please maintain this credit header.
Last Modified: 2026-03-19
