- Norway: NRK1/2/3/Super's old akamaized path returned "Invalid URL"
for everyone; replaced with the current path (now correctly
geo-blocked instead of broken for everyone). Kanal 10 Norge's CDN
is dead, switched to its YouTube channel. TV 2 Sport 1 and TV 2
Nyheter are dead with no free source found (TV 2 Sport appears to
require a paid TV 2 Play subscription now) - moved to Invalid.
Fixes#1113.
- Portugal: SIC's cloudfront URL was dead, replaced with a working
okast.tv source. Fixes#1109.
- Venezuela: "Venezolana de Televisión" pointed at a Dailymotion embed
page instead of a stream URL, which explains why it showed
unrelated content - moved to Invalid, no working replacement found
yet. Fixes#969.
The whole tvkaista.net stream-forwarder service (11 channels used it)
now returns 502 for every request - dead service, not a per-channel
issue. The 109.205.166.68/server124 CDN (4 channels) returns 403 for
everything. Found working replacements for 5 channels via current
sources; the rest share one of those two dead providers with nothing
found to replace them, moved to Invalid. AzStarTV was already working,
CBC Sport's 403 is the same expected Ⓖ geo-block iptv-org's own list
shows for the identical URL.
This completes the sweep through the "genuinely broken, not a
geoblocking artifact" country group (Somalia, Macau, Peru, Kosovo,
Armenia, Paraguay, San Marino, Monaco, Denmark, Cyprus, Moldova,
Romania, Azerbaijan).
- Romania: all TVR channels (1/2/3, Info, International, Cluj, Craiova,
Timișoara, Târgu-Mureș) used a dead mn-nl.mncdn.com path; found the
provider's current tvr-*.lg.mncdn.com pattern and verified each one.
TVR Iași and Telestar1 also had dead URLs, replaced. Prima TV: no
working source found, moved to Invalid. Pro TV and România TV were
already fine (the România TV 403 is the existing Ⓖ geo-block working
as intended, not a broken link).
- Denmark: DR1/DR2/DR Ramasjang's 403s are the same expected Ⓖ
geo-block, left as-is; Folketinget TV already works. All 7 TV 2
regional stations use dead Kaltura-tokenized URLs and/or domains
that no longer resolve, and their current sites block non-browser
requests (406) so no replacement could be extracted; TV Storbyen,
Kanal Hovedstaden and KKRtv are also dead with no fix found - moved
all 10 to Invalid.
- Cyprus: RIK 1/2/HD's cloudskep.com raw-TS URLs were 404; found a
working UDP-to-HTTP multicast proxy source and verified with real
binary TS data. Ada TV's sc-kuzeykibrissmarttv.ercdn.net domain no
longer resolves; found a working alternate CDN. BRT 1/2, Kıbrıs Genç
TV, Kanal T, Kıbrıs TV, TV 2020 share that same dead domain with no
replacement found - moved to Invalid.
- Moldova: Moldova 1/2 and TVR Moldova had dead URLs, replaced with
current sources (trm.md's own CDN, mncdn.com). Publika TV, Canal 2,
Canal 3 and Prime are all part of the same media group whose
broadcast license was suspended by Moldovan authorities in October
2023 - these aren't broken links, the channels are discontinued.
Vocea Basarabiei and Balti TV are also dead with no fix found.
Moved all to Invalid.
- Peru: Panamericana TV, ATV+ Noticias, Karibeña TV had dead CDN URLs
(host resolution failures / 404s), replaced with working sources.
Top Latino TV: no replacement found, moved to Invalid.
- Somalia: MM Somali TV's CDN URL was a 404, switched to its official
YouTube channel (768k subs, verified). The other 7 channels share
the same ap02.iqplay.tv / mediavisionuae.com infrastructure, which
is currently unreachable (connection timeouts) - but iptv-org's own
community list uses the exact same URLs right now too, so this
looks like a provider-side outage rather than dead/wrong links.
Left unchanged rather than moving working entries to Invalid on a
possibly-temporary outage.
- Macau: all 6 TDM channels' CDN (live4.tdm.com.mo) no longer
resolves. TDM's site is now a heavy Vue SPA with no stream URL in
the static HTML or common API guesses - moved to Invalid.
Replace with official/Wikimedia logos:
- Spektrum Home: Wikimedia Commons official
- DikhTv: Wikimedia Commons official
- Euronews Hungarian: Wikimedia Commons 2016 logo
- CityTV: Official website logo
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Part of a broader link-health sweep across lists/. Tested every URL
directly (curl/ffprobe), replaced dead ones where a working source
was findable, moved the rest to each file's Invalid section.
- Monaco: both channels were dead (S3 access denied / DNS failure);
found current sources for TV Monaco (okast.tv master.m3u8, no
per-session token) and Monaco Info (webtv.monacoinfo.com).
- Paraguay: Unicanal and ABC TV's direct CDN URLs were dead; both run
active official YouTube channels, switched to the same Ⓨ /live
pattern already used elsewhere in the repo. Trece's stream is dead
and its own site actually embeds Unicanal's feed instead of its
own, so no fix found - moved to Invalid.
- Kosovo: RTK 1/2/4's tokenized URLs are dead and no current source
found; RTK 3 has a working non-tokenized URL, kept.
- Armenia: Armenia 1, Kentron TV and Armenia TV had dead URLs; found
working replacements. 5TV only has a short-lived (~5h) signed-token
URL with no stable gateway, so it wasn't worth hardcoding - moved
to Invalid.
- New lists/zz_music_en.md for the "NOW" retro-music FAST channels
(Now 70's/80's, NOW Rock) - no existing thematic list fit them.
Fixed channels:
- Spektrum Home
- DikhTv
- Euronews Hungarian
- CityTV
- AlföldTV
- Zugló TV
- Tisza TV
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
PR #963 dumped 84 mixed-country channels into a single raw .m3u8 file
in the repo root, which doesn't follow the contribution format at all
and mostly duplicates channels already in the repo (BBC News, DW,
Al Jazeera, CGTN, TRT World, NHK World, Arirang, KBS World, Bloomberg,
Carousel, Domashniy, Friday, RBK are all already present under
lists/zz_news_en.md, korea.md or russia.md with different sources).
Tested every URL directly; only kept ones that actually work.
- New lists/mongolia.md: 40 working national Mongolian channels
(skygo.mn), 8 dead ones filed under its own Invalid section
(TV4, Premier Sports 1-5, Mongol TV, NTN).
- New lists/kazakhstan.md: Balapan TV and Qazaqstan International;
QazSport redirects to a geoblock placeholder, filed as Invalid.
- lists/russia.md: added "Че" (Peretz/Che), a genuine RTRS multiplex-2
free-to-air channel that wasn't in the list yet.
- lists/zz_movies.md: added "Action Hollywood Movies" (Amagi FAST
channel), fits the existing Pluto TV/FilmRise/Stirr pattern there.
- make_playlist.py: added "mongolia": "MN" and "kazakhstan": "KZ" to
COUNTRY_CODES; README.md and flag_order.txt updated to match.
Left out: the various *-samsungnz.amagi.tv channels (Samsung TV Plus
NZ's own licensed feeds, not a public source), CJ OnStyle (home
shopping), NHK World Premium (paid tier), BBC Earth/Cbeebies Asia
feeds and FashionTV (no clean existing home, source legitimacy
unclear) - can revisit if there's a good place for them.
- M1 previously linked to the "M1 Hiradó" YouTube channel, which only
carries news bulletins, not the actual M1 programming. Replaced with
the real M1 live feed (same mediaklikk source already used for
M2/M4 Sport/M5/Duna TV), kept M1 Hiradó as a separate YouTube-based
entry since it's non-geoblocked and covers different content.
- M1, M2, M4 Sport, M5 and Duna TV's connectmedia.hu manifests
explicitly label their audio tracks "*_HUGEO_*" (MTVA's own
Hungary-only geo variant), confirmed by inspecting the HLS output -
marked all five with Ⓖ per the README convention.
M3 investigated further (nemzetiarchivum.hu/api/m3/v3/stream): the
live feed is FairPlay DRM-protected (skd:// key scheme via
fairplay.keyos.com), so it cannot be played by a plain M3U8/HLS
client regardless of URL freshness - stays in Invalid.
The "| * | * | [x]() |" row was leftover template cruft, unique to
this file (no other list in lists/ has it) and never matched by
make_playlist.py's [>] check anyway, so it never affected the
generated playlist.
Checked each remaining Invalid channel's own homepage/domain for a
current stream, per the pattern that already worked for Hegyvidék TV
in the previous commit:
- Spektrum Home: confirmed free on MinDig TV, found a working direct
stream, moved from Invalid into Commercial.
- Hegyvidék TV: rebranded to "Buda TV" (tvbuda.hu); hegyvidektv.hu now
embeds a new working stream; restored to Regional under a clarified
name.
- Fix TV, ErdélyTV, Radio 1, DikhTv: their old domains/CDNs are dead,
but each runs an active official YouTube channel (verified via
yt-dlp, 19k-467k subscribers) using the same /live pattern already
used for M1 Hiradó/ATV/Euronews Hungarian. Restored with Ⓨ marker.
Still unresolved (own domain checked, genuinely dead or parked):
M3, Duna World / M4+ Sport, MUSICPlus, Budakalász, VTV Füzesabony,
Putnok Városi TV, Miskolc TV (miskolctv.hu is a parked/for-sale
domain), Hatoscsatorna (site unreachable). MAX4 confirmed as a real
free MinDig TV channel but no working stream found anywhere - not
added since there is no URL to reference at all.
Found via onlinestream.live's own sitemap, then resolved to the
underlying origin URLs (stream2.nmih.hu / live.tiszatv.hu) rather than
linking through the onlinestream.live redirector itself. Verified
playable with curl + ffmpeg. Budakalász resolved successfully only
once out of several attempts (matches its "not 24/7" status elsewhere),
so it stays in Invalid rather than being restored on a single hit.
Tested every stream in lists/hungary.md against a live connection
(from a Hungarian IP, so no false negatives from geo-blocking) using
curl/ffprobe/yt-dlp. See issue #1104.
- M2/Petőfi TV, M4 Sport, M5 and Duna TV were all dead but still
marked [>], meaning they were shipping as broken entries in the
live playlist despite sitting in the "Invalid" section (make_playlist.py
only checks the [>] marker, not the section). Replaced with fresh
URLs sourced from mediaklikk's own player API and moved them into
the National section where they belong.
- RTL Klub, TV2, ATV, Izaura TV, Ózdi Városi TV: replaced dead URLs
with working ones. ATV now uses its official YouTube live channel,
same pattern as M1 Hiradó.
- Fix TV, MUSICPlus, Radio 1, Budakalász, Pannon RTV, VTV Füzesabony,
Hegyvidék TV, Tisza TV, Putnok Városi TV, Miskolc TV, Hatoscsatorna:
no working source found, moved to Invalid with [x] per repo
convention (not deleted).
- Duna World / M4+ Sport: no working live feed found on mediaklikk
anymore, changed from [>] to [x].
Note: the mediaklikk-sourced connectmedia.hu URLs are session-tokenized
and will likely need refreshing again in the future - this is the same
reason the previous URLs for these channels went dead.
- Sanitize the channel number field for embedded double quotes; the
previous fix (#1124) covered group/name/logo/epg but missed
tvg-chno, leaving the same attribute-injection vector open via the
"#" column.
- Add missing "kenya" and "nigeria" entries to COUNTRY_CODES so those
channels get a tvg-country attribute in the generated playlist.
- Sync README.md and flag_order.txt with lists/: add missing flags for
chile, egypt, saudi_arabia, indonesia, kenya, nigeria in their
proper geographic groups.
- Add .gitignore for __pycache__/*.pyc.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Latina TV is already listed; inter TV was already added previously.
Assigned chno 12/13 to avoid colliding with the existing chno=1
(Venevisión), and normalized the AS3 Sport TV EPG id to drop the
embedded space for consistency with other entries.
Co-authored-by: KAMI <miholmikor@gmail.com>
group, name, logo and epg values are embedded unescaped into quoted
#EXTINF attributes (tvg-name, tvg-logo, tvg-id, group-title). A value
containing a double quote can break out of its attribute and inject
arbitrary extra attributes/content into the generated playlist.
Strip embedded double quotes from these fields at parse time.
Co-authored-by: KAMI <miholmikor@gmail.com>