Commit Graph

28 Commits (c1bcb2b057bc603a65a52f89193f430f63af446a)

Author SHA1 Message Date
Kálmán „KAMI” Szalai 755d991b10 Add Mongolia and Kazakhstan, salvage a few new channels from PR #963
PR #963 dumped 84 mixed-country channels into a single raw .m3u8 file
in the repo root, which doesn't follow the contribution format at all
and mostly duplicates channels already in the repo (BBC News, DW,
Al Jazeera, CGTN, TRT World, NHK World, Arirang, KBS World, Bloomberg,
Carousel, Domashniy, Friday, RBK are all already present under
lists/zz_news_en.md, korea.md or russia.md with different sources).
Tested every URL directly; only kept ones that actually work.

- New lists/mongolia.md: 40 working national Mongolian channels
  (skygo.mn), 8 dead ones filed under its own Invalid section
  (TV4, Premier Sports 1-5, Mongol TV, NTN).
- New lists/kazakhstan.md: Balapan TV and Qazaqstan International;
  QazSport redirects to a geoblock placeholder, filed as Invalid.
- lists/russia.md: added "Че" (Peretz/Che), a genuine RTRS multiplex-2
  free-to-air channel that wasn't in the list yet.
- lists/zz_movies.md: added "Action Hollywood Movies" (Amagi FAST
  channel), fits the existing Pluto TV/FilmRise/Stirr pattern there.
- make_playlist.py: added "mongolia": "MN" and "kazakhstan": "KZ" to
  COUNTRY_CODES; README.md and flag_order.txt updated to match.

Left out: the various *-samsungnz.amagi.tv channels (Samsung TV Plus
NZ's own licensed feeds, not a public source), CJ OnStyle (home
shopping), NHK World Premium (paid tier), BBC Earth/Cbeebies Asia
feeds and FashionTV (no clean existing home, source legitimacy
unclear) - can revisit if there's a good place for them.
2026-08-16 08:39:41 +02:00
Kálmán „KAMI” Szalai 4a63b94d96 Fix leftover M3U8 injection vector, missing country codes, README sync
- Sanitize the channel number field for embedded double quotes; the
  previous fix (#1124) covered group/name/logo/epg but missed
  tvg-chno, leaving the same attribute-injection vector open via the
  "#" column.
- Add missing "kenya" and "nigeria" entries to COUNTRY_CODES so those
  channels get a tvg-country attribute in the generated playlist.
- Sync README.md and flag_order.txt with lists/: add missing flags for
  chile, egypt, saudi_arabia, indonesia, kenya, nigeria in their
  proper geographic groups.
- Add .gitignore for __pycache__/*.pyc.
2026-08-16 06:28:29 +02:00
KAMI 6dceda13cd Security: sanitize channel attributes to prevent M3U8 attribute injection (#1124)
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 <miholmikor@gmail.com>
2026-08-14 12:13:49 +02:00
Kálmán „KAMI” Szalai 51bbec5b22 Fix pylint errors in make_playlist.py
Resolves trailing whitespace, line-too-long, unnecessary parens,
missing docstrings, and no-else-return findings from the Pylint
workflow job.
2026-08-14 11:43:38 +02: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
KAMI ac135619ff Improve make_playlist.py code quality and fix bugs (#989)
* 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>
2026-03-08 07:40:47 +01:00
Pavel Glotov 01e44ee83b fixed an error creating playlists by country, there was no line feed after the first line 2023-03-18 09:52:44 +04:00
Kálmán „KAMI” Szalai 9c7f4ff8d3 Better playlist formatting 2023-03-15 06:57:43 +01:00
Kálmán „KAMI” Szalai a35f43a1c0 Process EPG file 2023-03-15 06:55:55 +01:00
Kálmán „KAMI” Szalai bd85fd5b1f Try to avoid f-string expression part cannot include a backslash error 2023-03-15 06:46:54 +01:00
Kálmán „KAMI” Szalai 3c632383b9 Fix string generation 2023-03-15 06:42:27 +01:00
Kálmán „KAMI” Szalai dff9d89787 Remove newlines from EPG list 2023-03-15 06:36:19 +01:00
KAMI 213f73acd7 Fix path for invidual playlists 2023-03-14 06:21:22 +01:00
KAMI 22bf6c54ed Fix path 2023-03-14 06:16:15 +01:00
KAMI 3c31794611 OS independent path, filename join 2023-03-14 06:14:09 +01:00
Pavel Glotov c77f4f4889 added creation of separate playlist files by country to the playlists directory 2023-03-05 15:32:33 +04:00
Morpho c89a182fd5 new file: epglist.txt
modified:   make_playlist.py
2023-03-03 23:57:55 +04:00
Robert Walmsley de809af78d Update make_playlist.py
I removed the try/except block in the __init__ method. Instead, I split the md_line string into a list of parts and extract the relevant information from the list. If the list has more than 6 elements, then it means that the epg value is present, otherwise it is set to None.
I added a main function to contain the code that reads the input files and generates the output playlist.
I made minor formatting changes, such as adding blank lines between the different sections of the code, and using parentheses to enclose the arguments in the print statements. These changes are not strictly necessary, but they can make the code easier to read and understand.
2022-12-31 00:56:32 +01:00
infid0 8bbda8bd44 Update make_playlist.py
- Replaced old epg by sites with new epg by country
2022-11-01 22:09:13 +01:00
Free TV 9651dadbc7 Move md files into a directory 2022-09-02 12:19:54 +01:00
Kálmán „KAMI” Szalai 8fc602ad6f Add x-tvg-url support 2022-07-25 11:02:42 +02:00
Kálmán „KAMI” Szalai bf1d93323d Add initial support of EPG id 2022-07-23 09:26:45 +02:00
Axel Schneider 64679be231 Update German TV (#76)
* Update germany.md

adding some channels

* Update germany.md

* Update germany.md

One aktualisiert, RBB hinzugefügt.

* Update germany.md

* Update make_playlist.py

using f-strings

* Update germany.md

Co-authored-by: Free TV <82442641+freetv332@users.noreply.github.com>
2021-08-17 13:15:41 +01:00
Pasquale Coppola 024f937995 Update make_playlist.py (#62)
I've added "encoding='utf-8'" in line 25 and line 30 because on Windows the original script return some error (UnicodeEncodeError: 'charmap' codec can't encode character).
2021-07-14 14:15:32 +01:00
Free TV ca21cf9de3 Generate playlist 2021-05-24 12:43:58 +01:00
Free TV 21048bacff Fix python script permissions 2021-04-26 10:28:44 +01:00
Free TV f4d1a921e4 Add playlist generator and playlist 2021-04-13 13:16:51 +01:00