M3U playlist for free TV channels around the World.
 
 
Go to file
Kálmán „KAMI” Szalai ecfc0bd2a3 Fix dead LiveNOW from FOX and RTS 3 links
zz_news_en:
- LiveNOW from FOX: lnc-fox-live-now.tubi.video no longer resolves.
  Replaced with the Amagi-hosted feed already used for the same
  channel under lists/usa.md's "FOX Live Now" entry. Verified alive
  via check_channels.py (3/3 ok).

Serbia:
- RTS 3: the old udp-multicast-proxy URL (185.81.240.65:15000) is
  unreachable. Found the current feed on the same official bhtelecom.ba
  CDN already used for RTS 1 and RTS 2 in this file. Verified alive via
  check_channels.py (3/3 ok), real HLS master playlist with two
  variants.

Researched but left unchanged (no fix available):
- zz_news_en: The Guardian, CBC News Network, Sky News Now (AU), i24
  News, CNBC Europe, CNBC Indonesia, Pluto TV News - official
  infrastructure down, geo/paywall-gated, or no public stream exists.
  CNN (line 36) was not touched - the only replacement found is the
  exact same feed already used by the "CNN International" row in this
  file, which would just be a duplicate entry, not a distinct fix.
- Moldova: Publika TV group and Balti TV - official domains gone, no
  replacement found.
- Serbia: Euronews Serbia has a real working stream, but it requires a
  custom Referer header this repo's plain-URL playlist format can't
  carry - not usable as a drop-in fix. Red TV - no replacement found.
- Slovakia: every channel points at a domain (sktv.mxnticek.eu) that is
  completely down. Found working replacements for 3 channels via
  STVR's own JSON endpoint, but those URLs embed a short-lived signed
  token that expires - not usable as a static playlist entry (same
  reasoning as the Sweden Solidtango tokens rejected earlier). No
  durable fix currently available for this file.
- Montenegro: no dead channels found.
- Bosnia and Herzegovina: BHT 1's URL times out, but it's confirmed to
  be the exact URL BHRT's own official site uses internally - looks
  like a genuine infra/geo outage at the source, not a stale link, so
  left unchanged. No fix found for Federalna TV, TV BPK, Kanal 6, TNT
  Kids, Sevdah, RTV Glas Drine, TVSA, RTV TK.

Regenerated playlist.m3u8 and the per-country playlists via
make_playlist.py.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Enus8N247jHM5r5Som5JuU
2026-09-06 15:28:16 +02:00
.github Only fail the PR channel check on channels the PR itself broke 2026-09-06 14:24:16 +02:00
lists Fix dead LiveNOW from FOX and RTS 3 links 2026-09-06 15:28:16 +02:00
playlists Fix dead LiveNOW from FOX and RTS 3 links 2026-09-06 15:28:16 +02:00
.gitignore Add channel checker, scheduled health checks, and a status dashboard 2026-09-04 10:21:37 +02:00
README.md Add Lebanon channel list 2026-08-18 11:49:20 +02:00
check_channels.py Recognize raw audio/video streams, not just playlists, as alive 2026-09-05 20:55:54 +02:00
epglist.txt Update epglist.txt with working files (#751) 2025-08-27 09:50:57 +02:00
flag_order.txt Add Turkmenistan, Telenorba, Handicap TV; clean up North Macedonia 2026-08-16 18:27:56 +02:00
generate_dashboard.py Add channel checker, scheduled health checks, and a status dashboard 2026-09-04 10:21:37 +02:00
make_flags.sh Update flags (#461) 2023-12-03 14:47:43 +01:00
make_playlist.py Strip trailing Ⓢ/Ⓖ/Ⓨ markers from tvg-name 2026-08-16 20:44:30 +02:00
playlist.m3u8 Fix dead LiveNOW from FOX and RTS 3 links 2026-09-06 15:28:16 +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.