Commit Graph

86 Commits (72b7c7e076e9a74847b370af83740607e276a797)

Author SHA1 Message Date
Kálmán „KAMI” Szalai 72b7c7e076 Restore official geo-blocked RAI streams alongside the CloudFront mirror
Fixes #1179.

PR #1166 moved Rai 1, Rai 2, Rai 3, Rai Premium, Rai Storia and Rai
Scuola from the official mediapolis.rai.it relinker to a third-party
CloudFront mirror, because the relinker had become Italy-IP-gated and
was failing for everyone else (including the CI checker). That mirror
works for casual viewing, but as #1179 reports, it goes black during
broadcasts where RAI only holds domestic rights (e.g. EuroVolley) -
the official stream keeps working correctly for Italian-IP viewers
through exactly those broadcasts, because it's RAI's own domestic
feed, not a re-mirror of it.

Rather than trade one gap for the other, add the official mediapolis
URL back as a second, Ⓖ-marked entry for each of the six channels -
the same "CDN mirror as the general-access entry, official relinker
as the geo-gated alternative" split this file already uses for every
other Rai channel (Rai 4, Rai 5, Rai Movie, Rai Sport, etc., all still
on mediapolis.rai.it + Ⓖ). Viewers with an Italian IP get the more
correct source; everyone else keeps the mirror that already works for
them.

Also fixes a real gap in check_channels.py found while verifying this:
mediapolis.rai.it's relinker doesn't refuse an out-of-territory request
with an HTTP error - it answers 200 with a real MP4, but the file is
always the same "video_no_available.mp4" decoy regardless of which
channel was asked for. The checker had no way to tell that apart from
a working stream failing its playlist-header check, so every
mediapolis.rai.it entry (the pre-existing Rai 4/5/Movie/Sport ones
included) was scored `dead` instead of `blocked`, right down to the
newly-fixed pr_check.yml workflow that now hard-fails a PR over a
`dead`-scored touched channel. Added a check for this specific decoy
redirect target, classified as `blocked` like any other geo-refusal.

Regenerated playlist.m3u8 and playlists/playlist_italy.m3u8 via
make_playlist.py. pylint check_channels.py: 10.00/10.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Enus8N247jHM5r5Som5JuU
2026-09-06 21:09:12 +02:00
KAMI e1f16b8c96
Merge pull request #1168 from KAMI911/fix-italy-local-tv-batch1
Fix 14 dead Italian local TV links
2026-09-05 18:08:17 +02:00
KAMI dcbda8ff83
Merge pull request #1167 from KAMI911/fix-italy-local-tv-batch2
Fix 8 dead Italian local TV links, remove a dead TG Norba 24 duplicate
2026-09-05 18:08:07 +02:00
Kálmán „KAMI” Szalai ac044f207d Fix 14 dead Italian local TV links
Found via each station's own official "diretta/streaming" page, following
embedded iframes/JS one level deeper to the real .m3u8. No hosting
infrastructure was brute-forced. Verified 3x each with check_channels.py,
all consistently alive:

- Travel TV, Donna TV, Alma TV, Italia 7, Lazio Tv, Gold Tv: new
  5f11919dca3bd.streamlock.net host (old streaming.softwarecreation.it
  provider dead)
- Calabria Uno Tv: same host, working path (ngrp: prefix dropped)
- Canale 21 / Canale 21 Extra: new encoders.immergo.tv provider (old
  msvdn.net dead)
- Fascino Tv, Motori Tv: new 64b16f23efbee.streamlock.net host
- Ran Friul: azotosolutions.com load-balancer (old streamlock.net host dead)
- Love in Venice: same host, working path (.stream suffix added)
- Mediterranea Tv: new xdevel.com stream (old aswifi.it dead)

Castrovillari Tv and Cittaceleste Tv are still on their original URLs
unchanged - the outage looks to have been transient, both returned
live content again on retest.

Sportitalia SOLOCALCIO: found a candidate at
distribution.sportitalialive.it/sportitalia/sisolocalcio_abr/playlist.m3u8
(hardcoded in the official player page), but it returns 403 from here -
looks like a datacenter/ASN block rather than a bad URL, so left
unchanged rather than swap in something equally unverifiable.

19 other stations were also researched but had no findable working
replacement (parked/dead domain, JS-rendered player with no static URL,
or the official embed itself already dead) - left unchanged.
2026-09-05 15:59:26 +02:00
Kálmán „KAMI” Szalai d229c258e8 Fix 8 dead Italian local TV links, remove a dead TG Norba 24 duplicate
Found via each station's own official "diretta/streaming" page, following
embedded iframes (several use a shared white-label player at
player.streamshow.it/hosted/*.php) one level deeper to the real .m3u8.
No hosting infrastructure was brute-forced. Verified 3x each with
check_channels.py, all consistently alive:

- TVL (TV Libera Pistoia): new mariatvcdn.it host (old one dead)
- Teatro Tv: teatrotv.iostream.it (old m.iostream.it path dead)
- Tele Belluno: new mariatvcdn.it host + path
- Tele Cupole: azotosolutions.com load-balancer (old newradio.it dead)
- Tele Ischia: new streamlock.net host
- Tele Radio Ercolano: same saiuzwebnetwork.it provider, working path
- Teleiblea: same streamlock.net provider, working host
- Vera Tv: streamshow.it CDN (old shared streamshow.it host dead)

TG Norba 24 was listed twice under two different EPG rows with the same
tgv-id (TGNorba24.it) - one already pointed at a working
live-telenorba.cdn.netrw.it URL, the other (router.xdevel.com) was dead.
Removed the dead duplicate rather than adding a third entry.

29 other Italian local stations were also researched but had no
findable working replacement (site down, JS-injected player with no
static URL, or official embed itself already dead) - left unchanged.
2026-09-05 15:51:33 +02:00
Kálmán „KAMI” Szalai 1972c39bf9 Fix 6 dead RAI channels via a working third-party mirror
mediapolis.rai.it's relinker service is now Italy-IP-gated: with
forceUserAgent it 302s to a "video not available" placeholder MP4
(the "raw binary" symptom this repo's checker was seeing), without it
Akamai returns a plain 403. RAI's own official pages (raiplay.it) still
embed the same dead relinker pattern, and no working parameter/domain
variant was found - this isn't a broken link, it's a geo-restriction
that happens to also break for the CI runner's non-Italian IP.

Found a third-party CDN mirror (d3k8wzt41aflvx.cloudfront.net) already
re-serving RAI's linear feeds unrestricted, in the same vein as the
existing Rai4K/UniNettuno akamaized.net mirrors already in this list.
Verified each with curl (multi-quality master playlist, real segment
references) and with check_channels.py (3x each): Rai 2/3/Premium/
Storia/Scuola came back consistently alive, Rai 1 flaky (2/3 ok, real
content each time) - consistent with general CDN flakiness elsewhere
in this list, not a sign the URL is wrong.

Dropped the Ⓖ marker on these 6 since the mirror isn't geo-blocked.

Rai 4, Rai 5, Rai Movie, Rai Gulp, Rai YoYo, Rai Sport, and Rai Radio 2
Visual Radio are not on this mirror and were left unchanged (still
pointing at the geo-gated relinker, since that's genuinely the current
official source and may still work for viewers with an Italian IP).
2026-09-05 15:44:27 +02:00
PlaylistBot 5e14f0f239 Update Playlist (GitHub Actions) 2026-08-24 09:21:45 +00:00
PlaylistBot 60c704c498 Update Playlist (GitHub Actions) 2026-08-22 07:17:52 +00:00
PlaylistBot 2641b7f9a3 Update Playlist (GitHub Actions) 2026-08-18 10:05:03 +00:00
PlaylistBot 49c9d29640 Update Playlist (GitHub Actions) 2026-08-17 15:45:54 +00:00
PlaylistBot ca9612856c Update Playlist (GitHub Actions) 2026-08-17 10:20:18 +00:00
PlaylistBot c8b812905c Update Playlist (GitHub Actions) 2026-08-17 07:06:00 +00:00
Kálmán „KAMI” Szalai 51e324066d Strip trailing Ⓢ/Ⓖ/Ⓨ markers from tvg-name
Issue #483: these circled-letter suffixes are in-list markers for
human readers (subscription-required, geo-blocked, YouTube-sourced,
etc.), but were leaking into the generated tvg-name verbatim (e.g.
tvg-name="Rai 1 Ⓖ"), breaking EPG matching for any provider keying
off channel name. Now stripped from tvg-name only; the display name
after the comma still shows the marker as before.
2026-08-16 20:44:30 +02:00
Kálmán „KAMI” Szalai 0f0c65697d Telenorba: real HLS source instead of YouTube; add TG Norba 24; fix Antenna Sud dead links
- Telenorba was added via YouTube live (issue #1015 asked for the
  play.telenorba.it site). That site is a JS SPA; traced its player
  bundle to play.norbaonline.it, which resolves to the same
  live-telenorba.cdn.netrw.it CDN already used by Antenna Sicilia.
  Swapped in the direct HLS master playlist.
- Added TG Norba 24 as a separate channel (same CDN, different path),
  with its Wikimedia Commons logo.
- Antenna Sud / Antenna Sud Extra (live.antennasudwebtv.it:9443) now
  time out; replaced with working URLs from the sibling
  live-antennasud.cdn.netrw.it CDN.
2026-08-16 19:49:51 +02:00
Kálmán „KAMI” Szalai e70230e204 Add Turkmenistan, Telenorba, Handicap TV; clean up North Macedonia
- New lists/turkmenistan.md: all 8 national channels from issue #1023,
  verified working.
- Italy: added Telenorba (Puglia regional) via its YouTube live
  channel, the given URL was an HTML embed page not a stream. #1015
- France: added Handicap TV, verified working. #1049
- North Macedonia: the MRT public broadcaster channels use Windows
  Media auth tokens with validminutes=30 baked into the URL - they
  expire 30 minutes after being generated regardless of viewer
  location, so no static URL can fix them. Moved 10 other dead
  channels (timeout/404, no replacement found) to Invalid. #1025
2026-08-16 18:27:56 +02:00
PlaylistBot d34aba912f Update Playlist (GitHub Actions) 2026-06-30 07:30:18 +00:00
PlaylistBot 089fb1cdaa Update Playlist (GitHub Actions) 2026-06-17 05:25:40 +00:00
PlaylistBot f04c4b81ed Update Playlist (GitHub Actions) 2026-04-22 03:58:05 +00:00
Giacinto Lo Meo 9487db3c43 Add tvg-chno support using channel number from markdown lists (#1018)
* Add channel number to M3U line formatting

Add tvg-chno support using channel number from markdown lists

- Extract channel number from md lists
- Add tvg-chno attribute to M3U output
- Skip invalid values (e.g. 0)

Improves channel ordering in IPTV clients like Jellyfin

* Update make_playlist.py

Add tvg-chno support using channel number from markdown lists

- Extract channel number from md lists
- Add tvg-chno attribute to M3U output
- Skip invalid values (e.g. 0)

Improves channel ordering in IPTV clients like Jellyfin

* Delete playlists/playlist_italy.m3u8

delete italy playlist for updating with channel number

* Italy playlist updated with channel number
2026-04-09 05:21:25 +02:00
KAMI 354ec3bc3a Add tvg-country attribute to M3U8 playlist entries (#990)
Add ISO 3166-1 alpha-2 country codes via tvg-country attribute
to all #EXTINF lines, enabling IPTV players to filter and display
channels by country.

Co-authored-by: Kálmán „KAMI” Szalai <kami911gmail.com>
2026-03-08 09:29:23 +01:00
PlaylistBot 81833b6589 Update Playlist (GitHub Actions) 2025-12-24 09:27:11 +00:00
PlaylistBot 4835ffc097 Update Playlist (GitHub Actions) 2025-12-24 09:08:10 +00:00
Emilio Cruciani 8790c40166 Fix broken link - Italy La7 2025-12-06 09:32:43 -03:00
PlaylistBot 9d789587c9 Update Playlist (GitHub Actions) 2025-11-29 21:37:37 +00:00
PlaylistBot 5b35cbbfd8 Update Playlist (GitHub Actions) 2025-11-28 15:07:21 +00:00
PlaylistBot 187d2a19df Update Playlist (GitHub Actions) 2025-11-04 13:22:37 +00:00
PlaylistBot 8e7fc38851 Update Playlist (GitHub Actions) 2025-10-11 12:29:41 +00:00
PlaylistBot d7e563e99f Update Playlist (GitHub Actions) 2025-10-05 01:15:51 +00:00
PlaylistBot 821cdeda57 Update Playlist (GitHub Actions) 2025-10-01 12:38:35 +00:00
PlaylistBot 7ee9d56ba6 Update Playlist (GitHub Actions) 2025-08-27 07:51:04 +00:00
PlaylistBot 7f85d2e6e5 Update Playlist (GitHub Actions) 2025-08-27 07:50:30 +00:00
PlaylistBot e0f26bb046 Update Playlist (GitHub Actions) 2025-07-07 09:07:27 +00:00
PlaylistBot 57899d2027 Update Playlist (GitHub Actions) 2025-07-03 20:53:01 +00:00
PlaylistBot a87cc4c6b0 Update Playlist (GitHub Actions) 2025-06-26 04:12:54 +00:00
PlaylistBot bd927158c8 Update Playlist (GitHub Actions) 2025-06-24 12:23:37 +00:00
PlaylistBot 6e3bf213d9 Update Playlist (GitHub Actions) 2025-06-19 11:07:08 +00:00
PlaylistBot edcd5de0c2 Update Playlist (GitHub Actions) 2025-06-19 11:06:51 +00:00
PlaylistBot 11ed731236 Update Playlist (GitHub Actions) 2025-05-23 06:34:56 +00:00
PlaylistBot f91b8bfffb Update Playlist (GitHub Actions) 2025-04-02 15:37:11 +00:00
PlaylistBot 35d27c188f Update Playlist (GitHub Actions) 2025-01-18 19:35:22 +00:00
PlaylistBot cd21656594 Update Playlist (GitHub Actions) 2024-12-02 09:42:44 +00:00
PlaylistBot 881477d7bf Update Playlist (GitHub Actions) 2024-11-27 09:19:39 +00:00
PlaylistBot 4ab51297a5 Update Playlist (GitHub Actions) 2024-11-12 21:01:57 +00:00
PlaylistBot 01a5a2fc2e Update Playlist (GitHub Actions) 2024-10-29 07:04:28 +00:00
PlaylistBot aecd11d5e3 Update Playlist (GitHub Actions) 2024-10-13 05:28:05 +00:00
PlaylistBot 179be903c4 Update Playlist (GitHub Actions) 2024-09-22 02:15:31 +00:00
PlaylistBot 337f536969 Update Playlist (GitHub Actions) 2024-09-22 01:57:39 +00:00
PlaylistBot 017918e3a3 Update Playlist (GitHub Actions) 2024-09-21 03:20:15 +00:00
PlaylistBot 97418bdc80 Update Playlist (GitHub Actions) 2024-07-31 20:14:34 +00:00
PlaylistBot 694f31eea4 Update Playlist (GitHub Actions) 2024-07-31 19:57:25 +00:00