M3U playlist for free TV channels around the World.
 
 
Go to file
David Park 7dee6c1c87 Merge remote-tracking branch 'origin/ua'
# Conflicts:
#	lists/france.md
#	lists/italy.md
#	lists/slovakia.md
#	lists/zz_news_en.md
#	playlist.m3u8
#	playlists/playlist_albania.m3u8
#	playlists/playlist_andorra.m3u8
#	playlists/playlist_argentina.m3u8
#	playlists/playlist_armenia.m3u8
#	playlists/playlist_australia.m3u8
#	playlists/playlist_austria.m3u8
#	playlists/playlist_azerbaijan.m3u8
#	playlists/playlist_belarus.m3u8
#	playlists/playlist_belgium.m3u8
#	playlists/playlist_bosnia_and_herzegovina.m3u8
#	playlists/playlist_brazil.m3u8
#	playlists/playlist_bulgaria.m3u8
#	playlists/playlist_canada.m3u8
#	playlists/playlist_chad.m3u8
#	playlists/playlist_chile.m3u8
#	playlists/playlist_china.m3u8
#	playlists/playlist_costa_rica.m3u8
#	playlists/playlist_croatia.m3u8
#	playlists/playlist_cyprus.m3u8
#	playlists/playlist_czech_republic.m3u8
#	playlists/playlist_denmark.m3u8
#	playlists/playlist_dominican_republic.m3u8
#	playlists/playlist_estonia.m3u8
#	playlists/playlist_faroe_islands.m3u8
#	playlists/playlist_finland.m3u8
#	playlists/playlist_france.m3u8
#	playlists/playlist_georgia.m3u8
#	playlists/playlist_germany.m3u8
#	playlists/playlist_greece.m3u8
#	playlists/playlist_greenland.m3u8
#	playlists/playlist_hong_kong.m3u8
#	playlists/playlist_hungary.m3u8
#	playlists/playlist_iceland.m3u8
#	playlists/playlist_india.m3u8
#	playlists/playlist_iran.m3u8
#	playlists/playlist_iraq.m3u8
#	playlists/playlist_ireland.m3u8
#	playlists/playlist_israel.m3u8
#	playlists/playlist_italy.m3u8
#	playlists/playlist_japan.m3u8
#	playlists/playlist_korea.m3u8
#	playlists/playlist_kosovo.m3u8
#	playlists/playlist_latvia.m3u8
#	playlists/playlist_lithuania.m3u8
#	playlists/playlist_luxembourg.m3u8
#	playlists/playlist_macau.m3u8
#	playlists/playlist_malta.m3u8
#	playlists/playlist_mexico.m3u8
#	playlists/playlist_moldova.m3u8
#	playlists/playlist_monaco.m3u8
#	playlists/playlist_montenegro.m3u8
#	playlists/playlist_netherlands.m3u8
#	playlists/playlist_north_korea.m3u8
#	playlists/playlist_north_macedonia.m3u8
#	playlists/playlist_norway.m3u8
#	playlists/playlist_paraguay.m3u8
#	playlists/playlist_peru.m3u8
#	playlists/playlist_poland.m3u8
#	playlists/playlist_portugal.m3u8
#	playlists/playlist_qatar.m3u8
#	playlists/playlist_romania.m3u8
#	playlists/playlist_russia.m3u8
#	playlists/playlist_san_marino.m3u8
#	playlists/playlist_saudi_arabia.m3u8
#	playlists/playlist_serbia.m3u8
#	playlists/playlist_slovakia.m3u8
#	playlists/playlist_slovenia.m3u8
#	playlists/playlist_somalia.m3u8
#	playlists/playlist_spain.m3u8
#	playlists/playlist_spain_vod.m3u8
#	playlists/playlist_sweden.m3u8
#	playlists/playlist_switzerland.m3u8
#	playlists/playlist_taiwan.m3u8
#	playlists/playlist_trinidad.m3u8
#	playlists/playlist_turkey.m3u8
#	playlists/playlist_uk.m3u8
#	playlists/playlist_ukraine.m3u8
#	playlists/playlist_united_arab_emirates.m3u8
#	playlists/playlist_usa.m3u8
#	playlists/playlist_usa_vod.m3u8
#	playlists/playlist_venezuela.m3u8
#	playlists/playlist_zz_documentaries_ar.m3u8
#	playlists/playlist_zz_documentaries_en.m3u8
#	playlists/playlist_zz_movies.m3u8
#	playlists/playlist_zz_news_ar.m3u8
#	playlists/playlist_zz_news_en.m3u8
#	playlists/playlist_zz_news_es.m3u8
#	playlists/playlist_zz_vod_it.m3u8
2025-03-18 21:02:37 +00:00
.github/workflows Update test_playlist.yml 2023-11-28 01:30:00 +01:00
lists Merge remote-tracking branch 'origin/ua' 2025-03-18 21:02:37 +00:00
playlists Update Dutch channels (#662) 2025-01-28 18:17:02 +01:00
README.md Update README.md 2024-02-01 18:10:46 +00:00
epglist.txt Merge branch 'patch-3' of https://github.com/TVKaista/IPTV 2024-05-10 16:15:17 +01:00
flag_order.txt Add Armenia.md (#502) 2024-09-22 03:55:23 +02:00
make_flags.sh Update flags (#461) 2023-12-03 14:47:43 +01:00
make_playlist.py fixed an error creating playlists by country, there was no line feed after the first line 2023-03-18 09:52:44 +04:00
playlist.m3u8 Update Dutch channels (#662) 2025-01-28 18:17:02 +01: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 represesnts 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.