Disclaimer: This documentation is provided for convenience and may contain errors. Always verify information against the official Kodi and provider documentation. Report issues.
Fastmail
Home / Provider matrix

Provider matrix

The seven providers the addon supports, side by side. For detail on any one provider click its catalogue/resolver page.

Capability matrix

ProviderLiveVODAuthDRMCatalogue fetchSync frequency
BBC iPlayeryesyesnone (UK-IP geofenced)none (clear DASH)HTML scrape (__IPLAYER_REDUX_STATE__)BBC
ITVXyesyesOAuth (JWT, refresh-token + 4h proactive)Widevine L3HTML scrape (__NEXT_DATA__)ITVX
Channel 4yesyesnone (anonymous web client)Widevine via RedbeemediaHTML + __PARAMS__ inline JSONC4
My5yesyesHMAC + AES keys extracted from live C5 player JS; optional user sign-in via AWS Cognito (Bearer attached on Cassie requests when session active)WidevineJSON API (corona.channel5.com)My5
STVyesyesnone (free)Widevine (PSSH in MPD)JSON API (player.api.stv.tv)STV
Blaze TVyesyesnonenoneHTML scrapeBlaze
Sky Newsyesnonone (XFF spoof)Widevine optional— (single channel)

Endpoint matrix

ProviderCatalogue endpointStream-resolve endpointLicense endpoint
BBCbbc.co.uk/iplayer/categories//all?page=N (HTML)open.live.bbc.co.uk/mediaselector/6/.../vpid//json— (clear)
ITVXwww.itv.com/watch/categories/ (HTML, Next.js)magni.itv.com/playlist/itvonline/ITV/ (live: simulcast.itv.com)From playlist response's KeyServiceUrl
Channel 4channel4.com/categories/?json=true&offset=N&sort=titlechannel4.com/vod/stream/ (live: simulcast/channels/)c4.eme.lp.aws.redbeemedia.com/.../acquire (Redbee, fixed)
My5corona.channel5.com/shows/search.json + seasons/episodescassie.channel5.com/api/v2/{media|live_media}/my5desktopng/.jsonFrom Cassie response's keyserver
STVplayer.api.stv.tv/v1/programmesplayer.api.stv.tv/v1/channels// (live); Brightcove Playback API (VOD)From Brightcove response's key_systems
Blazewatch.blaze.tv/series (HTML)watch.blaze.tv/streams/api/{replay|live}/stream/— (no DRM)
Sky NewsBrightcove Playback APIFrom Brightcove response's key_systems

User-Agent strategy

ProviderUAReason
BBCshared desktop Chrome (from get_ua())BBC doesn't sniff aggressively
ITVX catalogFirefox 145 (hardcoded)ITV sniffs and blocks the desktop-Chrome UA when there's a UA/JWT mismatch on session
ITVX playlistFirefox 131 (hardcoded)Tighter sniff at the auth-gated endpoint
Channel 4shared desktop ChromeC4's web client uses different UAs for different endpoints (apple universal vs desktop); we mimic the desktop-website client
My5shared desktop ChromeCassie sniffs Roku/Android and rejects them
STVshared desktop ChromeSTV doesn't sniff
Blazeshared desktop Chrome + platform=chrome query paramBlaze explicitly checks the platform= param
Sky Newsshared desktop ChromeBrightcovePlayback doesn't sniff

Genre coverage

GenreBBCITVXC4My5STVBlaze
Films
Drama & Soaps
Comedy✗ (only comedy-drama sub)
Documentaries
Sport
News
Entertainment
Kids✓ (milkshake!)
Music
Food
Lifestyle
History✓ (history-hit)
Science & Nature
Arts
Signed / BSL
True Crime
Scottish

Live channel matrix

The live channels the addon exposes (resources/lib/channels.py: iter_all_channels() — BBC, CUTV, ITVX and the Freely expansion lists):

ProviderLive channelsResolver
BBCBBC One, BBC Two, BBC Three, BBC Four, CBBC, CBeebies, BBC News, BBC Parliament, Alba, BBC Scotland, S4Cbbc.resolve(channel_id)
SkySky Newssky.resolve(listitem)
STVSTV, STV +1stv.resolve(item_id)
Channel 4Channel 4, E4, More4, Film4, 4sevenc4.resolve(item_id)
My5Channel 5, 5 Star, 5 USA, 5 Action, 5 Selectmy5.resolve(item_id)
BlazeBlazeblaze.resolve(item_id)
ITVXITV1, ITV2, ITV3, ITV4, ITVBe, ITV Quiz (via inherited ITVBe simulcast slug)itvx.resolve(channel)
HLS (direct)Great! Movies, Great! Mystery, Great! Romance, True Crime, TBN UK, GB News, QVC family, Pop family, Now 70s/80s/Rock, Gems TV, Jewellery Maker, Hobby Makerhls_url in PVR_CHANNEL_MAP

Freely expansion: stubbed channels and why they don't play

The addon lists the full Freeview/Freely lineup (London NID 64865 + Central Scotland NID 64993, selectable via the Freely region setting). Channels without a free IP stream resolve through a stub resolver that shows a “not implemented” popup. Nine more Freely channels were wired in Aug 2026 from clear Samsung TV Plus feeds: 5 Cops, LOVE AFTER LOCKUP, TRUE CRIME UK, EVIDENCE OF EVIL, BLOODLINE DETECTIVES, AMC REALITY, CNN Headlines International, Ketchup TV and talkSPORT (radio). Later attempts added WildEarth (Roku), 5 Trucking Hell (Pluto) and France 24 (Samsung) — France 24's own public URL serves dead child manifests. Direct-HLS channels send a browser User-Agent: Pluto's stitcher rejects any UA containing Kodi with HTTP 403. Two further gotchas when testing: jmp2.uk rate-limits bursts with transient 403s, and geo/promo slates look like healthy streams — compare segment sizes across variants to spot them. Stub-resolver channels render greyed-out ([COLOR gray]) in the addon grid and PVR channel list. This is what was tried for each blocked group:

Radio EPG: the 44 BBC radio stations get EPG guide data from BBC Sounds schedules (rms.api.bbc.co.uk per-network JSON, no login); the 5 Global stations (Heart, Capital, Classic FM, LBC, Smooth Radio) have no BBC schedule and intentionally stay EPG-less.

Channel(s)Sources triedOutcome
TLC, Quest, Quest Red LCN 17/18/34Samsung TV Plus GB list; Pluto UK; Roku; Plex UK; iptv-org streams DBblocked WBD stated (Dec 2025) Freely is the only free streaming home for these six FTA linears. Freely's own feed is Widevine L3/Irdeto — same Pi DRM wall as ITVX audio.
Sky Arts, Sky Mix LCN 24/23Samsung TV Plus GB via jmp2.uk/stvp-GB60000197/-GBBD3100006XM — worked brieflyDRM-locked Samsung flipped both to HLS_CMAF_DRM: SAMPLE-AES-CTR Widevine licensed by BuyDRM KeyOS. Clear HLS_CMAF rendition returns HTTP 400. Playing needs Samsung device-auth emulation to mint KeyOS licences per session — not maintainable.
Great! TV, Great! Action LCN 32/33 stubbed v1.2.0Amagi playout probe (612 host/slug combinations across LG/Samsung/Rakuten); community telecloud.tv relay behind GitHub master playlist; Plex UKno source Amagi hosts the Movies/Mystery/Romance sisters but no greattv/greataction slugs exist. The relay's child manifests return “No segments” (playback token isn't propagated to inner requests). Plex UK carries the sisters clear but not these two.
Pop Max LCN 208 stubbed v1.2.0Community feed 45.153.35.210:8000/play/UK_pop_max_sd; iptv-org; Plex UKchannel closed Pop Max ceased broadcast Apr 2025; briefly returned as FAST on Freeview then closed again. No free simulcast exists.
Talking Pictures TV LCN 36 stubbed v1.2.0Community feed 92.114.85.72:8000/play/a0la; iptv-org; Plex UKfeed 403 Shared community relay host now returns HTTP 403 for all UAs. No alternative free IP stream found.
Together TV LCN 52 stubbed v1.2.0Community feed 92.114.85.72:8000/play/a0j8; iptv-org; Plex UKfeed 403 Same relay host as Talking Pictures TV, blocking all UK IPs.
Challenge LCN 43Samsung TV Plus GB (jmp2.uk/stvp-GBBD3100005RX)DRM-locked BuyDRM KeyOS Widevine, same as Sky Arts/Mix.
London TV LCN 8uklocal.tv / londonlive.co.uk page scrape; old Akamai live endpoint; iptv-orgno source Player config is AJAX-gated (JW Player WordPress plugin), no media id in static HTML. Akamai endpoint died with the Jan 2025 London Live → London TV rebrand.
That's TV, That's TV 2 LCN 9/45Community feed 92.114.85.72:8000/play/a0lb; Pluto/Rakuten/LG FAST listingsno source Community feed now returns 403 from UK IPs. Only the music spin-offs moved to FAST platforms (Feb 2026); main channels remain aerial-only on Freely.
All remaining stubs (minor FAST + radio)Samsung TV Plus GB, Pluto UK, Roku, Plex UK, iptv-org cross-referenceno source No free unencrypted simulcasts identified. Radio has none outside BBC Sounds (login-gated).

Pluto TV direct integration (pluto resolver)

Pluto's Feb 2026 API migration killed the old anonymous stitcher URLs — they now serve a logo slate for some device profiles. The working flow mirrors Pluto's own web player:

  1. GET https://boot.pluto.tv/v4/start?appName=web&deviceType=web&deviceMake=chrome&... — JSON reply contains sessionToken, valid ~24h (EasyPlayTV caches 12h in the addon profile)
  2. GET https://cfd-v4-service-channel-stitcher-use1-1.prd.pluto.tv/v2/stitch/hls/channel/{ID}/master.m3u8?includeExtendedEvents=true&masterJWTPassthrough=true&jwt={token}
  3. Clear HLS; play with a browser User-Agent

Channels carry a pluto_id field and use the pluto resolver. 13 channels ride it: That's 60s/70s, QVC2, EuroNews, Nosey, 5 Cops, LOVE AFTER LOCKUP, TRUE CRIME UK, EVIDENCE OF EVIL, BLOODLINE DETECTIVES, AMC REALITY, CNN Headlines, 5 Trucking Hell.

WATCH FREE UK live streams (Simplestream recipe)

The Social Communications channels stream free via the WATCH FREE UK Simplestream player. Extraction flow:

  1. GET watchfreeuk.co.uk/live — scrape data-token/-expiry/-userid/-key/-id/-uvid (fresh token per page load; uvids: 1312=True Crime, 1313=Evidence of Evil, 1314=Bloodline Detectives)
  2. GET mm-v2.simplestream.com/ssmp/api.php?id={id}&env=productionresponse.api_hostname
  3. GET {api_hostname}/streams/api/live/stream/{uvid}?key=..&cc=GB&platform=chrome&url=..&gdpr=1 with headers Token/Token-Expiry/Userid — JSON response.stream = clear HLS master

Gotchas: platform=chrome is required (web → "Invalid Platform"); legacy v1 path shape applies unless api_hostname contains "api". Currently unused by the addon (Pluto covers these channels) but documented as a fallback.

Alternate source registry

Verified sources kept on file for future wiring attempts:

SourceCoverageNotes
i.mjh.nz SamsungTVPlus gb.xml + BuddyChewChew generated M3USamsung TV Plus GB, 263 channelsStreams proxied as jmp2.uk/stvp-<id>; regenerated daily. Channels with a license_url in mjh's .channels.json.gz are DRM-locked (Sky Arts/Mix are now in this set).
i.mjh.nz Plex gb.xmlPlex UK FAST, 362 channelsCarries Great! Movies/Mystery/Romance clear — fallback if the Amagi URLs die; candidate pool for filling other stubs.
iptv-org API (streams.json, channels.json)Community index, all platformsCross-reference by channel id; many entries stale — always test before wiring.
Amagi playout URL patternNarrative and other FAST broadcastersamgXXXXX-narrativeuk-amgXXXXXc{N}-{platform}-gb-{id}.playouts.now.amagi.tv/playlist/amgXXXXX-narrativeuk-{slug}-{lggb|samsunggb|rakutengb}/playlist.m3u8. Host+slug pairing is exact; wrong combos answer HEAD 200 with error bodies — always GET and check for #EXTM3U.
ITVX simulcast endpointAll ITV linear channels incl. ITV Quizhttps://simulcast.itv.com/playlist/itvonline/{SLUG}; slugs upper-case, Quiz rides the retired ITVBe slot (mapped in itvx.py CHANNEL_SLUGS). Requires ITVX sign-in; Widevine L3 only.