Free-TV/IPTVPublic

M3U Playlist for free TV channels

AI summary: A community-maintained M3U playlist collection providing access to free, publicly broadcasted TV channels globally.

Stars
19.6K
+19 today
Forks
2.8K
Watchers
766
Open issues
181
Open PRs
20
Contributors
~115
Commits
1.6K
Branches
7

PythonNo licenseCreated Apr 13, 2021Last push 1mo ago+80 stars this week+85 this month

Star history

since Apr 11, 2021
05K10K15KApr 2021Jan 2023Oct 2024Aug 2026
19.6K stars as of Aug 6, 2026, tracked back to Apr 11, 2021. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

commits per day, last 52 weeks
AugSepOctNovDecJanFebMarAprMayJunJulAugMonWedFri2025-08-10: 0 commits2025-08-11: 0 commits2025-08-12: 0 commits2025-08-13: 0 commits2025-08-14: 0 commits2025-08-15: 0 commits2025-08-16: 0 commits2025-08-17: 0 commits2025-08-18: 0 commits2025-08-19: 0 commits2025-08-20: 0 commits2025-08-21: 0 commits2025-08-22: 0 commits2025-08-23: 0 commits2025-08-24: 0 commits2025-08-25: 0 commits2025-08-26: 0 commits2025-08-27: 20 commits2025-08-28: 0 commits2025-08-29: 0 commits2025-08-30: 0 commits2025-08-31: 0 commits2025-09-01: 0 commits2025-09-02: 0 commits2025-09-03: 0 commits2025-09-04: 0 commits2025-09-05: 0 commits2025-09-06: 0 commits2025-09-07: 0 commits2025-09-08: 0 commits2025-09-09: 0 commits2025-09-10: 0 commits2025-09-11: 0 commits2025-09-12: 0 commits2025-09-13: 0 commits2025-09-14: 0 commits2025-09-15: 0 commits2025-09-16: 0 commits2025-09-17: 0 commits2025-09-18: 0 commits2025-09-19: 0 commits2025-09-20: 0 commits2025-09-21: 0 commits2025-09-22: 0 commits2025-09-23: 0 commits2025-09-24: 0 commits2025-09-25: 0 commits2025-09-26: 0 commits2025-09-27: 0 commits2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 2 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 1 commit2025-10-05: 3 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 2 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 3 commits2025-10-27: 1 commit2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 2 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 2 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 2 commits2025-11-29: 2 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 2 commits2025-12-05: 0 commits2025-12-06: 1 commit2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 4 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 1 commit2026-01-04: 1 commit2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 2 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 1 commit2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 8 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 7 commits2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 0 commits2026-04-22: 2 commits2026-04-23: 0 commits2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 0 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 0 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 0 commits2026-06-02: 0 commits2026-06-03: 0 commits2026-06-04: 0 commits2026-06-05: 0 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 0 commits2026-06-10: 0 commits2026-06-11: 0 commits2026-06-12: 0 commits2026-06-13: 0 commits2026-06-14: 0 commits2026-06-15: 0 commits2026-06-16: 0 commits2026-06-17: 2 commits2026-06-18: 0 commits2026-06-19: 0 commits2026-06-20: 0 commits2026-06-21: 0 commits2026-06-22: 0 commits2026-06-23: 0 commits2026-06-24: 0 commits2026-06-25: 0 commits2026-06-26: 0 commits2026-06-27: 0 commits2026-06-28: 0 commits2026-06-29: 0 commits2026-06-30: 28 commits2026-07-01: 0 commits2026-07-02: 0 commits2026-07-03: 0 commits2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 0 commits2026-07-07: 10 commits2026-07-08: 0 commits2026-07-09: 0 commits2026-07-10: 0 commits2026-07-11: 0 commits2026-07-12: 0 commits2026-07-13: 0 commits2026-07-14: 0 commits2026-07-15: 0 commits2026-07-16: 0 commits2026-07-17: 0 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 0 commits2026-07-21: 0 commits2026-07-22: 0 commits2026-07-23: 0 commits2026-07-24: 0 commits2026-07-25: 0 commits2026-07-26: 0 commits2026-07-27: 0 commits2026-07-28: 0 commits2026-07-29: 0 commits2026-07-30: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits2026-08-02: 0 commits2026-08-03: 0 commits2026-08-04: 0 commits2026-08-05: 0 commits2026-08-06: 0 commits2026-08-07: 0 commits2026-08-08: 0 commits
109 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    19,614 stars

  • Battle-tested

    5 years of history

  • Community-driven

    ~115 contributors

  • Continuous integration

    Automated checks passing

  • Repeat trending

    3 trending appearances

What IPTV does

This project curates and maintains a comprehensive set of M3U playlists for free, publicly accessible television channels around the world. It organizes channels by country, category, and language, ensuring users can easily navigate through thousands of options. The playlists are continuously updated by the community to remove dead links and add new available streams. It relies on standard M3U formatting, making the streams compatible with almost any modern media player or dedicated IPTV application. The focus is strictly on legitimate, free-to-air content rather than pirated streams.

Designed for cord-cutters, media center enthusiasts, and language learners who want free access to global television. It requires basic familiarity with media players (like VLC) or IPTV applications that support M3U playlist importing.

  • Global channel categorization: Organizes streams systematically by geographic region, country, language, and content category.
  • M3U playlist format: Uses the ubiquitous playlist standard so streams work seamlessly in VLC, Kodi, and smart TV apps.
  • Community-driven updates: Relies on contributor pull requests to maintain link vitality and flag broken streams.
  • Strict legal scope: Filters submissions to ensure only legally free, publicly broadcasted channels are included.
  • Automated validation: Employs scripts to routinely test stream availability and health across the playlist network.

Where teams use it

Cord-cutting media setups

Users looking to replace traditional cable subscriptions integrate these playlists into Kodi or Plex for free entertainment.

Language learning immersion

Language learners stream foreign news and local programming to practice listening comprehension with authentic media.

Testing IPTV client software

Developers building media players use this vast, reliable dataset of live streams to test their software's playback capabilities.

Accessing regional news

Expatriates use the country-specific playlists to stay updated with local broadcasts from their home nations.

Getting started: Download the index.m3u file or paste its raw URL directly into your preferred IPTV player.

README

master branch

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.

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Commits per week

last 52 weeks
280Week of 2025-08-10: 0 commitsWeek of 2025-08-17: 0 commitsWeek of 2025-08-24: 20 commitsWeek of 2025-08-31: 0 commitsWeek of 2025-09-07: 0 commitsWeek of 2025-09-14: 0 commitsWeek of 2025-09-21: 0 commitsWeek of 2025-09-28: 3 commitsWeek of 2025-10-05: 5 commitsWeek of 2025-10-12: 0 commitsWeek of 2025-10-19: 0 commitsWeek of 2025-10-26: 4 commitsWeek of 2025-11-02: 2 commitsWeek of 2025-11-09: 2 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 4 commitsWeek of 2025-11-30: 3 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 4 commitsWeek of 2025-12-28: 1 commitsWeek of 2026-01-04: 1 commitsWeek of 2026-01-11: 2 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 1 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 8 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 0 commitsWeek of 2026-04-05: 7 commitsWeek of 2026-04-12: 0 commitsWeek of 2026-04-19: 2 commitsWeek of 2026-04-26: 0 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 0 commitsWeek of 2026-05-17: 0 commitsWeek of 2026-05-24: 0 commitsWeek of 2026-05-31: 0 commitsWeek of 2026-06-07: 0 commitsWeek of 2026-06-14: 2 commitsWeek of 2026-06-21: 0 commitsWeek of 2026-06-28: 28 commitsWeek of 2026-07-05: 10 commitsWeek of 2026-07-12: 0 commitsWeek of 2026-07-19: 0 commitsWeek of 2026-07-26: 0 commitsWeek of 2026-08-02: 0 commitsAug 10, 2025Aug 2, 2026
109 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 7 commitsSun 1:00 — 12 commitsSun 2:00 — 13 commitsSun 3:00 — 6 commitsSun 4:00 — 3 commitsSun 5:00 — 7 commitsSun 6:00 — 4 commitsSun 7:00 — 11 commitsSun 8:00 — 13 commitsSun 9:00 — 19 commitsSun 10:00 — 14 commitsSun 11:00 — 5 commitsSun 12:00 — 5 commitsSun 13:00 — 15 commitsSun 14:00 — 4 commitsSun 15:00 — 9 commitsSun 16:00 — 4 commitsSun 17:00 — 10 commitsSun 18:00 — 6 commitsSun 19:00 — 7 commitsSun 20:00 — 21 commitsSun 21:00 — 10 commitsSun 22:00 — 3 commitsSun 23:00 — 8 commitsMon 0:00 — 5 commitsMon 1:00 — 1 commitsMon 2:00 — 0 commitsMon 3:00 — 0 commitsMon 4:00 — 0 commitsMon 5:00 — 3 commitsMon 6:00 — 6 commitsMon 7:00 — 7 commitsMon 8:00 — 8 commitsMon 9:00 — 18 commitsMon 10:00 — 16 commitsMon 11:00 — 15 commitsMon 12:00 — 8 commitsMon 13:00 — 12 commitsMon 14:00 — 6 commitsMon 15:00 — 12 commitsMon 16:00 — 7 commitsMon 17:00 — 9 commitsMon 18:00 — 10 commitsMon 19:00 — 16 commitsMon 20:00 — 11 commitsMon 21:00 — 9 commitsMon 22:00 — 36 commitsMon 23:00 — 24 commitsTue 0:00 — 17 commitsTue 1:00 — 6 commitsTue 2:00 — 1 commitsTue 3:00 — 1 commitsTue 4:00 — 1 commitsTue 5:00 — 8 commitsTue 6:00 — 9 commitsTue 7:00 — 25 commitsTue 8:00 — 5 commitsTue 9:00 — 23 commitsTue 10:00 — 7 commitsTue 11:00 — 16 commitsTue 12:00 — 4 commitsTue 13:00 — 15 commitsTue 14:00 — 12 commitsTue 15:00 — 11 commitsTue 16:00 — 6 commitsTue 17:00 — 12 commitsTue 18:00 — 17 commitsTue 19:00 — 11 commitsTue 20:00 — 13 commitsTue 21:00 — 22 commitsTue 22:00 — 9 commitsTue 23:00 — 4 commitsWed 0:00 — 5 commitsWed 1:00 — 0 commitsWed 2:00 — 0 commitsWed 3:00 — 3 commitsWed 4:00 — 2 commitsWed 5:00 — 11 commitsWed 6:00 — 11 commitsWed 7:00 — 16 commitsWed 8:00 — 20 commitsWed 9:00 — 21 commitsWed 10:00 — 13 commitsWed 11:00 — 2 commitsWed 12:00 — 6 commitsWed 13:00 — 11 commitsWed 14:00 — 18 commitsWed 15:00 — 18 commitsWed 16:00 — 11 commitsWed 17:00 — 5 commitsWed 18:00 — 14 commitsWed 19:00 — 9 commitsWed 20:00 — 6 commitsWed 21:00 — 3 commitsWed 22:00 — 2 commitsWed 23:00 — 1 commitsThu 0:00 — 2 commitsThu 1:00 — 3 commitsThu 2:00 — 0 commitsThu 3:00 — 3 commitsThu 4:00 — 2 commitsThu 5:00 — 4 commitsThu 6:00 — 5 commitsThu 7:00 — 3 commitsThu 8:00 — 8 commitsThu 9:00 — 2 commitsThu 10:00 — 8 commitsThu 11:00 — 16 commitsThu 12:00 — 5 commitsThu 13:00 — 13 commitsThu 14:00 — 12 commitsThu 15:00 — 29 commitsThu 16:00 — 3 commitsThu 17:00 — 7 commitsThu 18:00 — 5 commitsThu 19:00 — 5 commitsThu 20:00 — 7 commitsThu 21:00 — 4 commitsThu 22:00 — 10 commitsThu 23:00 — 6 commitsFri 0:00 — 10 commitsFri 1:00 — 3 commitsFri 2:00 — 0 commitsFri 3:00 — 1 commitsFri 4:00 — 3 commitsFri 5:00 — 4 commitsFri 6:00 — 10 commitsFri 7:00 — 5 commitsFri 8:00 — 4 commitsFri 9:00 — 6 commitsFri 10:00 — 5 commitsFri 11:00 — 3 commitsFri 12:00 — 9 commitsFri 13:00 — 8 commitsFri 14:00 — 9 commitsFri 15:00 — 9 commitsFri 16:00 — 19 commitsFri 17:00 — 2 commitsFri 18:00 — 15 commitsFri 19:00 — 13 commitsFri 20:00 — 6 commitsFri 21:00 — 2 commitsFri 22:00 — 9 commitsFri 23:00 — 4 commitsSat 0:00 — 6 commitsSat 1:00 — 4 commitsSat 2:00 — 0 commitsSat 3:00 — 3 commitsSat 4:00 — 2 commitsSat 5:00 — 6 commitsSat 6:00 — 6 commitsSat 7:00 — 12 commitsSat 8:00 — 12 commitsSat 9:00 — 10 commitsSat 10:00 — 8 commitsSat 11:00 — 5 commitsSat 12:00 — 9 commitsSat 13:00 — 9 commitsSat 14:00 — 8 commitsSat 15:00 — 6 commitsSat 16:00 — 17 commitsSat 17:00 — 8 commitsSat 18:00 — 4 commitsSat 19:00 — 4 commitsSat 20:00 — 8 commitsSat 21:00 — 18 commitsSat 22:00 — 10 commitsSat 23:00 — 12 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Jan 26, 2026daily#18+148
Jan 12, 2026daily#17+192
Jan 11, 2026daily#15+223