SkillAgentSearch skills...

IPTV

M3U Playlist for free TV channels

Install / Use

/learn @Free-TV/IPTV
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Free TV

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

Either free locally (over the air):

<img src="https://hatscripts.github.io/circle-flags/flags/us.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/ca.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/gb.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/ie.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/au.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/in.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/jp.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/cn.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/hk.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/mo.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/tw.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/kp.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/kr.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/dk.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/fo.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/gl.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/fi.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/is.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/no.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/se.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/ee.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/lv.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/lt.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/be.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/nl.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/lu.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/de.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/at.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/ch.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/pl.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/cz.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/sk.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/hu.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/ro.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/md.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/bg.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/fr.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/it.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/pt.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/es.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/ru.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/by.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/ua.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/am.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/az.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/ge.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/ba.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/hr.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/me.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/mk.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/rs.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/si.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/al.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/xk.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/gr.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/cy.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/ad.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/mt.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/mc.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/sm.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/ir.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/iq.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/il.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/qa.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/tr.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/ae.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/ar.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/cr.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/do.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/mx.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/py.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/pe.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/ve.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/br.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/tt.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/td.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/so.svg" width="24"> <img src="https://hatscripts.github.io/circle-flags/flags/id.svg" width="24">

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:

  • https://github.com/iptv-org/iptv/tree/master/streams
  • Youtube: As long as the channel is live and its URL doesn't change (check the age of the stream, the number of viewers..)
  • Dailymotion: Same criteria as for youtube

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

View on GitHub
GitHub Stars15.4k
CategoryDevelopment
Updated14m ago
Forks2.3k

Languages

Python

Security Score

85/100

Audited on Mar 24, 2026

No findings