ubuntu-latest is moving to Ubuntu 26.04, and actions/setup-python has
no Python 3.8 or 3.9 build for 26.04, so the 3.8 and 3.9 legs of the
pylint matrix fail at setup. Pin the job to ubuntu-24.04, which still
has every version in the matrix.
Found Working Link for duna world fem3 dikhtv viasat6 added viasat3 story4 minimax rtl kettő viasat explore viasat history viasat nature rtl három prime sorozat+
Found working link for Duna World FEM3 and Viasat6 DikhTv also added Viasat3 Story4 Minimax Viasat Explore Viasat History Viasat Nature Max4 Nat Geo RTL Kettő RTL Három Prime Sorozat+ and restored old list
NH Nieuws had no EPG id, so players cannot match it to guide data.
NH.nl is the channel id used by iptv-org and by epgshare01
(epg_ripper_NL1.xml.gz, listed in epglist.txt). Only the EPG column in lists/netherlands.md changes; the stream URL is untouched.
Side note: several other Dutch ids don't match epgshare01, e.g.
RTVOost.nl vs Oost.nl, OmroepWestTV.nl vs RTV.West.nl and
L1TV.nl vs L1.TV.nl. The Italian list already uses epgshare01 ids.
Would you welcome a follow-up PR aligning the Dutch ids the same way?
FEM3 and Viasat 6 (Hungary) were dead on 88.212.15.19; found alive on
the sibling IP 88.212.15.17 (same path/stream names) via iptv-org's
public aggregator, closes the last remaining gap from #1223/#1228.
Antena 3 CNN (Romania) via antenaplay.ro's free CDN endpoint, closes
the Antena 3 part of #1177 (confirmed live, non-tokened, no session
auth needed - unlike the URL in that issue which does expire).
Added Sports Television (DPR Korea) via koryocdn.org, closes#1202.
Note: this channel only broadcasts Sat/Sun 18:00-22:00 KST, so it will
correctly show as unreachable/dead outside those hours - documented
in the channel name.
All three sources found via iptv-org/iptv's public aggregator
(iptv-org.github.io/iptv/countries/*.m3u), not hand-guessed.
Co-Authored-By: Claude Sonnet 5 <[email protected]>
Confirmed live on the same 141.94.193.53 mirror used for M1/M2/M5/Duna/
RTL/TV2/ATV/TV4/Cool/Film+: Spektrum, Spektrum Home, Galaxy4, Sport1,
Sport2, Izaura TV, Film4, Mozi+, AMC, TV Paprika. Fixed M4 Sport with
the same mirror (old connectmedia.hu URL was dead).
DTV is finally live again via cloudfront44.lexanetwork.com relay002
(closes the long-standing gap from #1223/#1228 - FEM3 and Viasat 6
still have no working source and remain in Invalid).
Spektrum Home and Izaura TV were actually fixed once already in a
follow-up commit on the #1244 branch, but that commit landed after
the PR had already been merged, so it never reached master - this
restores that work with fresh URLs.
Replaced the Euronews Hungarian YouTube embed with euronews's own
direct HLS feed (more stable, confirmed live).
Added a new Radio section with 11 Hungarian radio stations from
#1248 (Kossuth, Petőfi, Bartók, Dankó, Rádió1, Retró, Jazzy FM,
Youventus, Hír FM, Spirit FM, Sláger FM), replacing the old YouTube
Radio 1 entry in Music with the direct stream in the new section.
All 66 Hungary entries confirmed alive via check_channels.py.
Co-Authored-By: Claude Sonnet 5 <[email protected]>
Went through the open issue backlog and verified each claim against
the live streams with check_channels.py / curl before touching
anything, rather than acting on the reports alone.
Moved to Invalid (2 attempts, both `gone`, re-verified by hand):
- Greece: Start, Thraki Net TV
- Slovakia: Doma, Dajto, Krimi, Markíza TN Live, Jojko (joining the
JOJ-family channels already Invalid - same upstream host, same
missing-channel pattern)
- Bosnia and Herzegovina: Sevdah
- Spain: Nova, La 7 CYLTV, Canal TE24
- USA: NASA TV Public
- USA + zz_news_en: CNN / CNN International - both point at
turnerlive.warnermediacdn.com/.../cnn_slate/..., which returns a
permanently frozen manifest (#EXT-X-PUBLISHED-TIME and
MEDIA-SEQUENCE identical across two fetches 8s apart, dated several
months in the past) - a live-looking HTTP 200 that check_channels.py
currently has no way to catch, since it never compares a URL against
its own earlier response. Also moved the alternate CNN entry in
zz_news_en.md (a raw.githubusercontent.com link that 404s outright).
- Not moved: N1 Bosna i Hercegovina (`disputed` - ffprobe found a real
stream behind the dead-looking HTTP response, needs a human) and
everything reported merely `unreachable`/`blocked` across these
lists - neither is strong enough evidence on its own, see
check_channels.py's own docstring.
Japan: added the Ⓖ marker to the 6 terrestrial channels on mov3.co
(NHK総合, 日本テレビ, テレビ朝日, TBSテレビ, テレビ東京, フジテレビ) -
confirmed HTTP 403 from here on all six, consistent with the
geo-restriction every other Ⓖ-marked channel in this repo already
documents. They were working `[>]` entries with no Ⓖ, which reads as
"this should work from anywhere" when it does not.
Left alone after checking (false alarms / already resolved, not a
list-file problem):
- Croatia HRT 1-4: already Ⓖ-marked and alive.
- Mongolia TenGer TV/TV5/TV9: all 40 Mongolia channels alive.
- Japan Willfonk/naori-test links: already Invalid on master.
- Several `unreachable` entries (Greece ART TV/Epirus TV 1, Croatia's
RTL family, half of Spain, Bosnia's BHT/Glas Drine/etc.) -
`unreachable` means "every attempt timed out or failed to connect
from here", not "confirmed gone" - too weak to act on without a
second opinion, and these didn't get one in this pass.
ran: python3 make_playlist.py (clean regen) + check_channels.py on
every touched list afterward to confirm nothing newly broke and the
moved channels no longer show up as working.
Per #1226: once a channel is marked Invalid ([x]), nothing ever probes
it again, so a source that comes back online stays listed as dead
forever, and the scheduled fast/deep runs plus the PR check only ever
look at [>] rows.
- ROW now captures which marker (`>` or `x`) a row carries.
- --invalid probes only the Invalid-flagged rows; anything that now
answers alive/flaky is printed as "RECOVERED?" instead of being
judged dead/unreachable (the expected, uninteresting outcome for a
row that's supposed to be broken).
- --include-invalid runs both passes together in one worker pool.
- The exit code still only reflects dead [>] channels - a dead [x]
channel is the status quo, not a regression - so --invalid alone
always exits 0 and is safe to add to any workflow without risking a
spurious failure.
- --json records now carry the row's marker too.
Deliberately not wired into check_channels_deep.yml yet: the history
file and generate_dashboard.py's "most recent row per (list, channel)"
view assume every row is a working channel. Mixing in hundreds of
Invalid rows per run would bloat the dashboard's "not currently alive"
table with already-known-dead noise, and - worse - an Invalid channel
that comes back alive wouldn't show there either, since that table
only lists rows that are *not* alive. That's a second, separate change
to generate_dashboard.py; flagging it here rather than shipping it
half-done.
Tried --invalid on bulgaria/latvia (channels this account's own PR
moved to Invalid days ago, confirmed dead at the time) - correctly
reported dead/blocked, not recovered. Tried --include-invalid on
hungary and it immediately surfaced 4 real recovery candidates
(AlföldTV, Lóverseny közvetítés, Bajai TV, Tisza TV); re-checked those
4 by hand afterwards with a longer timeout and they went straight back
to unreachable, which is itself a useful data point - exactly the kind
of flaky intermittent case the tool is supposed to hand to a human
rather than silently act on, so none were restored. pylint: 10.00/10.
Same 141.94.193.53 host as the M1/M2/M5/Duna/RTL/TV2/ATV fixes in this
branch, per #1228. Re-tested all three live just now. TV4 is a genuine
free-to-air DVB-T2 channel; Cool and Film+ are RTL Group's
subscription-tier channels in official distribution, included here
since this mirror serves them without auth (same basis other
already-listed subscription channels in this repo are included on).
Re-tested every URL below just now (curl + real HLS manifest body check)
before restoring, per issue #1226's finding that some Invalid rows have
working streams again:
- Italy: K2, Frisbee, Canale 58 — live again (closes#1205)
- Lebanon: ALWifak News TV, Arabica TV — live again
- Hungary: Hír TV — old onlinestream.live link now serves a player error;
replaced with the working videa.hu relay
- Hungary: M1, M2/Petőfi TV, M5, Duna TV, RTL Klub, TV2, ATV — old
88.212.15.19 links are dead; replaced with the 141.94.193.53 mirror
URLs reported working in #1228 (verified live here too), moved back
out of Invalid
Regenerated playlist.m3u8 and the per-country playlists via
make_playlist.py.