M3U playlist for free TV channels around the World.
 
 
Go to file
Kálmán „KAMI” Szalai 61b28d3c43 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
.github/workflows Add Python 3.12-3.14 to the pylint test matrix 2026-08-14 11:50:35 +02:00
lists Add Mongolia and Kazakhstan, salvage a few new channels from PR #963 2026-08-16 08:39:41 +02:00
playlists Add Mongolia and Kazakhstan, salvage a few new channels from PR #963 2026-08-16 08:39:41 +02:00
.gitignore Fix leftover M3U8 injection vector, missing country codes, README sync 2026-08-16 06:28:29 +02:00
README.md Add Mongolia and Kazakhstan, salvage a few new channels from PR #963 2026-08-16 08:39:41 +02:00
epglist.txt Update epglist.txt with working files (#751) 2025-08-27 09:50:57 +02:00
flag_order.txt Add Mongolia and Kazakhstan, salvage a few new channels from PR #963 2026-08-16 08:39:41 +02:00
make_flags.sh Update flags (#461) 2023-12-03 14:47:43 +01:00
make_playlist.py Add Mongolia and Kazakhstan, salvage a few new channels from PR #963 2026-08-16 08:39:41 +02:00
playlist.m3u8 Add Mongolia and Kazakhstan, salvage a few new channels from PR #963 2026-08-16 08:39:41 +02:00

README.md

Free TV

This is an M3U playlist for free TV channels around the World.

Either free locally (over the air):

Or free on the Internet:

  • Plex TV
  • Pluto TV (English, Spanish, French, Italian)
  • Redbox Live TV
  • Roku TV
  • Samsung TV Plus
  • Youtube live channels

To use it point your IPTV player to https://raw.githubusercontent.com/Free-TV/IPTV/master/playlist.m3u8.

Philosophy

The main goals for this playlist are listed below.

Quality over quantity

The less channels we support the better.

  • All channels should work well.
  • As much as possible channels should be in HD, not SD.
  • Only one URL per channel (no +1, no alternate feeds, no regional declinations)

Only free channels

If a channel is normally only available via commercial subscriptions it has nothing to do in this playlist. If on the other hand it is provided for free to everybody in a particular country, then it should be in this playlist.

  • No paid channels
  • Only channels which are officially provided for free (via DVB-S, DVB-T, analog, etc..)

Only mainstream channels

This is a playlist for everybody.

  • No adult channels
  • No channels dedicated to any particular religion
  • No channels dedicated to any particular political party
  • No channels made for a country and funded by a different country

Feed sources

It can be quite hard to find up to date URLs, here's a list of sources:

Format

The m3u8 playlist is generated by make_playlist.py, using the .md files located in lists.

Each .md file represents a group. The <h1> line is used as the group title.

Only channels which URL column starts with [>] are included in the playlist.

Channels which are not in HD are marked with an .

Channels which use GeoIP blocking are marked with a .

Channels which are live Youtube channels are marked with a .

Issues

Only create issues for bugs and feature requests.

Do not create issues to add/edit or to remove channels. If you want to add/edit/remove channels, create a pull request directly.

Pull Requests

Only modify .md files

If your Pull Request modifies channels, only modify .md files. Do not modify m3u8 files in your pull request.

Adding a new Channel

To add a new channel, make a Pull Request.

  • In your Pull Request you need to provide information to show that the channel is free.
  • Use imgur.com to host the channel logo and point to it.
  • If you have a valid stream, add it and put [>] in front of it.
  • If you don't have an stream for the channel, add [x]() in the url column and place your channel in the Invalid category.
  • If you have a stream but it doesn't work well, put the channel in the Invalid category and put [x] in front of the url.
  • If you're adding geoblocked URLs specify it in your PR and specify which country they're working in. The PR will only be merged if these URLs can be tested.

Removing a Channel

To remove a channel, make a Pull Request.

In your Pull Request you need to provide information to show that the channel is only available via a private paid subscription.

Note: Public taxes (whether national or regional, whether called TV License or not) do not constitute a private paid subscription.

If a stream is broken, simply move the channel to the invalid category and replace [>] with [x] in the url column.