Viewing the channel list
Once you’ve selected a provider, the plugin fetches and parses the provider’s M3U playlist to display available channels:- Select a provider from the provider list
- The plugin fetches the M3U playlist from the provider’s
catLinkURL - The playlist is parsed and channels are displayed in a list view
- Each channel shows its title, logo, and group information
Channel lists are cached for 1 hour (3600 seconds) to reduce network requests and improve performance.
Channel information displayed
Each channel in the list displays the following information:- title: The channel name (e.g., “Sky Sports Cricket”)
- tvg_logo: The channel logo/thumbnail (extracted from the
tvg-logoattribute) - group_title: The channel category or group (extracted from the
group-titleattribute)
How playback works
When you select a channel to play, the plugin performs the following steps:1. Channel resolution
The plugin re-fetches the channel list from cache or network and finds the matching channel by title:2. Stream information extraction
The following information is extracted from the channel’s M3U entry:- url: The stream URL (HLS, DASH, or direct video URL)
- user_agent: Custom User-Agent header if specified
- cookie: Cookie header for authentication
- referer: Referer header if required by the stream
- license_string: DRM license key for encrypted content
- headers: Additional HTTP headers
3. Inputstream Adaptive configuration
The plugin automatically detects the stream type and configures Kodi’s Inputstream Adaptive accordingly:4. Header propagation
All necessary HTTP headers are encoded and passed to the stream:DRM and adaptive streaming support
The plugin supports multiple DRM and streaming technologies:HLS (HTTP Live Streaming)
Streams with.m3u or .m3u8 extensions are treated as HLS streams and played using Inputstream Adaptive.
DASH (Dynamic Adaptive Streaming over HTTP)
Streams with.mpd extensions are treated as DASH streams and played using Inputstream Adaptive.
Clearkey DRM
The plugin supports Clearkey DRM for encrypted content. License keys can be provided in two formats:- Hex pair format:
key_id:key(e.g.,a1b2c3d4:e5f6g7h8)
- License server URL: A full HTTP(S) URL to a Clearkey license server
M3U parsing examples
The plugin parses M3U playlists to extract channel information. Here are some examples from m3u_parser.py:Basic channel entry
- Title: “Sky Sports Cricket”
- Logo: “https://example.com/logo.png”
- Group: “Sports”
- URL: “https://example.com/stream.m3u8”
Channel with custom headers
- User-Agent: “Mozilla/5.0”
- Referer: “https://example.com”
DRM-protected channel
- License key: “a1b2c3d4:e5f6g7h8”
- DRM flag:
is_drm = True
Pipe-separated parameters
|) character:
Troubleshooting playback issues
Stream won’t play
If a stream fails to play:- Check your internet connection: Ensure you have a stable internet connection
- Try a different channel: Some channels may be temporarily offline
- Try a different provider: Switch to another provider and try their channels
- Check Inputstream Adaptive: Ensure the Inputstream Adaptive add-on is installed and enabled in Kodi
No channels found
If you see “No channels found” error:- The provider’s playlist is temporarily unavailable
- Network connectivity issues
- The provider’s URL has changed
Invalid provider URL
If you see “Invalid provider URL” error:catLink is malformed or missing. Try selecting a different provider.
Failed to resolve channel URL
If playback fails with “Failed to resolve channel URL”:- Network timeouts
- Corrupted cache data
- The channel being removed from the provider’s playlist
