Cross-referenced TDTChannels' maintained playlist against dead/missing
entries: removed a duplicate dead TV3 row in spain.md (TV3Cat already
covers it), and added new working channels to mexico.md (7), peru.md (3),
and usa.md (7). All new stream URLs verified live.
ATV+ Noticias moved off its old CDN link; switched to the official
YouTube live channel. Karibeña TV's frequency now carries Exitosa's
programming, so the entry is repointed accordingly.
Bulgaria, Moldova, Macau, Georgia, Greece channels
Cross-checked against iptv-org's maintained playlists (36 channels
fixed across nine files). Channels without a matching current source
remain marked invalid.
Cross-checked against iptv-org's maintained playlists (26 channels
fixed across the five files). Channels without a matching current
source remain marked invalid.
UK: ITV1, ITV2, Channel 5, TJC, TBN UK, True Crime, Talking Pictures TV,
Together TV, BBC News and TalkTV restored using current sources
cross-checked against iptv-org. Removed now-redundant duplicate rows
from the Invalid section for channels fixed in their proper table.
Azerbaijan: moved İctimai TV and Xəzər TV out of Invalid into the DVB-S
table now that working sources were found.
Cross-checked against iptv-org's maintained playlists. Only channels
with a confirmed current match were updated; smaller/regional channels
without a matching iptv-org entry remain marked invalid.
Replace dead IRIB/presstv and France broadcaster links with current
working streams, cross-checked against iptv-org's maintained playlists.
Several entries (IRIB TV5, Jame Jam, Sahar variants, France 2/3, C8, W9,
NRJ 12, TF1 Séries Films, L'Équipe, RMC Découverte, Chérie 25) still have
no verified working source and remain marked invalid.
The media company behind the channel was previously ~88% owned by Hungarian companies believed to be closely related to Hungary's PM Viktor Orbán. Their share now is currnetly undisclosed and believed to be mostly owned by members of SDS (Slovenian Democratic Party), the far-right party that established it.
SDS is known for it's anti-immigration, anti-islamic and anti-semitic rhetoric, spreading lies about important politicians and individuals, defunding the Slovenian Press Agency and sowing division in media and state.
via #880
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 <[email protected]>
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 <[email protected]>
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>
* Improve make_playlist.py code quality and fix bugs
- Fix group name bug: replace underscores with spaces before title()
so filenames like north_korea.md produce "North Korea" not "North_Korea"
- Fix resource leaks: use context managers for all file handles including
EPG list and per-country playlist files
- Remove os.chdir() global side effect: use absolute paths derived from
the script location instead
- Avoid calling to_m3u_line() twice per channel by caching the result
- Fix redundant trailing colon in filename[:-3:] slice
- Consistent use of write() for headers instead of mixing print/write
- Strip blank lines from EPG URL list when reading
* Skip commit and push when playlist has no changes
Prevents the workflow from failing with exit code 1 when the generated
playlist is identical to the previous run and there is nothing to commit.
* Use current branch instead of hardcoded master for push
Replace hardcoded origin/master reference with @{u} (upstream of current
branch) for the diff check, and use HEAD for the push target so the
workflow works correctly on any branch.
---------
Co-authored-by: Kálmán „KAMI” Szalai <kami911gmail.com>