Replaces iptv-checker (npm + ffmpeg) with check_channels.py:
- Checks every channel in a list a PR touches, existing and new, not just
the added/changed rows - a PR editing italy.md now surfaces already-dead
channels in italy.md too, not only the one line it changed.
- Uses check_channels.py's dead/blocked/unreachable/flaky states instead
of a binary online/failed, so the summary no longer needs the "some of
these failures are geo-blocks, use your judgment" disclaimer without
telling reviewers which failures those are - blocked channels are now
named as such.
- Summary separates what the PR actually added/changed from what was
already broken in the same file, so a reviewer isn't left guessing
whether a failure is theirs to fix.
- No ffprobe pass here (kept fast for a PR gate) - anything this flags as
dead gets a second opinion from the scheduled Channel check (deep)
workflow before anyone acts on it.
Verified end to end against a simulated PR diff.
Weekly trend workflow: runs the full iptv-checker weekly, keeps a
snapshot of failed URLs in .github/checker-history/failed.txt, and
reports newly-broken vs newly-recovered channels since the last run
in the job summary.
PR check workflow: on any PR touching lists/*.md, extracts only the
added/changed stream links from the diff and checks just those (not
the whole 2000+ channel playlist), reporting online/failed results
directly in the PR's Checks summary.