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.