mrkeyoor.com_
Sat 05 Sept 07:54 UTC
Dataevaluationupdated 05 Sept 2026

IPTV review

Free-TV/IPTV is an English-documented M3U playlist that points compatible players at freely available television streams from many countries and online services. It replaces the work of collecting channel URLs, logos, groups, country codes, and electronic program guide identifiers by hand.

Verdict

Our Free-TV/IPTV run installed 35 packages in 22 seconds and built in 27 seconds, but it skipped tests and did not play any of the 2,053 stream entries. Use the playlist as a convenient, disposable input for a player, especially when country grouping and EPG identifiers save setup time. Do not treat it as an uptime-tested service or adopt it in a licensed product until the missing license is resolved.

We ran it

Lab card: what happened when we ran IPTVScreenshot of IPTV (github.com/Free-TV/IPTV)
Install✓ · 22s35 packages · 37 MB
Build✓ · 27s
Testsn/ano test script
Known vulns0(pip-audit)
Repo208 files~202 lines of source · 2.4 MB · 5 CI workflows

Answers from our run

Does IPTV build from source?

Dependencies installed in 22 seconds (35 packages), and the build succeeded in 27 seconds. We cloned commit e45cbb8 into a clean Debian container with 3 CPUs and no project-specific setup.

Does IPTV have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does IPTV have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use IPTV?

Anyone who needs guaranteed channel uptime: issue 211 says URLs change often, and issue 1153 reports four named Slovak stations failing in one player.

What are the alternatives to IPTV?

IPTV-org, IPTV Simple PVR, Jellyfin. Our Free-TV/IPTV run installed 35 packages in 22 seconds and built in 27 seconds, but it skipped tests and did not play any of the 2,053 stream entries.

Setup4/5Paste one URL into a player; streams still fail or geo-block
Docs4/5Format, markers, channel policy, and contribution rules are clear
Community4/520,207 stars with 4 issues and 4 pull requests open
Maturity3/5Active playlist updates, but URLs churn and no license is declared

Who it’s for

Viewers who already have an IPTV player and want one remote playlist URL to try.
Hobbyists willing to tolerate geo-blocking, dead links, and source changes.
Developers who need raw M3U metadata rather than a hosted viewing app or API.
Contributors prepared to prove a channel is free and edit the country Markdown lists.

Who it’s NOT for

Anyone who needs guaranteed channel uptime: issue 211 says URLs change often, and issue 1153 reports four named Slovak stations failing in one player.
Viewers who need the same lineup in every country: 188 entries at commit e45cbb8 carried the project's geo-block marker.
People seeking paid, adult, religion-specific, party-specific, or foreign-funded national channels: the README excludes those categories by policy.
Organizations that require a declared reuse license: GitHub reports no license, and open issue 337 asks the maintainers to add one.
Users expecting a player, account system, recordings, or support desk: this repository supplies playlists and a generator, so playback remains the user's job.

Setup reality

Our sandbox cloned commit e45cbb8, a 2.4 MB checkout with 208 files and about 202 source lines. Installation succeeded in 22 seconds, adding 35 packages and using 37 MB. The build passed in 27 seconds. No test script or target was found, so tests were skipped; pip-audit found 0 known vulnerabilities.

Watching needs no project account, API key, or server. You supply an IPTV player and network access to the independent stream, logo, and EPG hosts listed in the file. Contributors need Python to regenerate playlists, plus evidence that a submitted channel is officially free.

Some streams are geo-blocked, lower resolution, or hosted on YouTube, and the playlist marks those cases. URLs can expire between repository updates. Our scan found 5 CI workflow files, no Dockerfile, and no tests directory; the checked-in stream checker summarizes failures without turning them into a failing workflow.

The 2,053 entries give a player a list, not a streaming service

At commit e45cbb8, the combined M3U file contained 2,053 entries pointing to video hosts outside the repository. Each entry can carry a channel name, logo, group, country, number, and EPG identifier. The file itself does not play video or proxy traffic. A user copies its raw GitHub URL into an IPTV player, which then contacts every channel's chosen host directly.

The repository is small at 2.4 MB with 208 files and roughly 202 lines of source. Most of its value sits in Markdown tables and generated playlists rather than Python logic. Alongside the worldwide file are country and topic-specific playlists, and the header names outside XMLTV sources for program data. This makes IPTV portable across players that understand common M3U and EPG fields.

The channel policy favors free mainstream television

The 97 Markdown list files at e45cbb8 follow a selective policy. A channel should be officially free in at least one country, preferably HD, and represented by one working URL. The README excludes paid services, adult channels, religion-specific channels, party-specific channels, and channels funded by another country. Contributors must provide evidence that a new entry is free before it can be accepted.

Free in one country does not mean available worldwide. The generated playlist marked 188 entries as geo-blocked and 127 as YouTube live sources at the measured commit. Other symbols flag lower-resolution feeds and source types. Those labels help a reader set expectations, but a player outside the allowed region can still fail with a valid URL. The project cannot remove a broadcaster's access rules.

What happened when we ran it

Our sandbox installed 35 packages in 22 seconds, using 37 MB on disk. The build succeeded in 27 seconds. We ran commit e45cbb8 in an unprivileged Debian container with 3 CPUs and 8 GB of RAM. The checkout held 208 files, about 202 source lines, and occupied 2.4 MB.

The harness found no test script or target, so tests were skipped. Pip-audit reported 0 known vulnerabilities in the 35 installed Python packages. The scan found 5 CI workflow files, no Dockerfile, and no tests directory. These results cover only the stated install, build, and dependency audit; they include no playback result, channel uptime count, picture-quality check, or country-by-country access test.

The generator turns marked Markdown rows into M3U files

The project's roughly 202 source lines parse every Markdown file under lists. Rows marked [>] become playlist entries, while invalid rows stay out. An HTML heading supplies the group name, the filename supplies the country code, and optional fields become channel numbers or EPG identifiers. The script writes one combined file and a separate generated file for each list.

Contributors are told to edit only Markdown for channel changes and leave generated M3U files alone. One of the 5 workflow files regenerates playlists after changes. Another installs a linter and IPTV checker, but its commands use || true; broken streams are summarized in the job output instead of failing the workflow. That design keeps updates moving, while it also means a green run is not an all-links-online guarantee.

Broken and geo-blocked links remain a viewer problem

Open issue 211 says the maintainer has less time than expected and that stream URLs change very often. It asks more contributors to help maintain the lists. Issue 1153 supplies a current example rather than a general complaint: its reporter says Markiza, Doma, Wau, and JOJ failed in one player. We did not reproduce that playback report in our 27-second build.

A failure can come from several places: the broadcaster may replace a URL, a host may block the viewer's country, YouTube may alter a live endpoint, or the player may lack the required input support. The 188 geo-marked entries at e45cbb8 expose only one class of failure. Keep a smaller local favorites list if a television must work without checking the project for updates.

The missing license blocks policy-sensitive reuse

GitHub reported no license for the 208-file repository. Open issue 337 has asked for a license since 2023 and remained open when checked. The channel links may be publicly reachable, but that does not answer what permission a company has to copy the generator, curated tables, or generated files into its own product. A team with an open-source intake policy should stop and get a clear answer.

The content policy also needs independent judgment. Maintainers require evidence that submitted channels are officially free and ask for proof before removing one as paid. That is a curation rule, not a legal warranty to every viewer or distributor. The 2,053 entries point across many hosts and countries, so commercial reuse deserves source-by-source review even if the repository later adds a software license.

Four issues and four pull requests show active list maintenance

GitHub showed 4 open issues and 4 open pull requests on 2026-09-05, matching the repository API's combined count of 8. The last push was also 2026-09-05. Current pull requests included stream replacements and a proposed checker improvement, while the issue queue contained broken-channel reports and the long-standing license request. That is small, visible activity around a list whose links keep moving.

The latest-release API returned no GitHub release. For this repository, commits are more informative because the main artifact is regenerated in place. The measured commit itself was an automated playlist update on 2026-09-04. Five CI workflow files support generation and link reporting, but the project does not publish a versioned promise that a particular set of streams will remain available.

IPTV works best as a disposable player input

Our run's 22-second install and 27-second build make the files easy to inspect or regenerate, while playback remains outside that evidence. Free-TV/IPTV is useful for trying public television in an existing player and for discovering country-grouped channel metadata. Save favorite working entries elsewhere, expect regional failures, and avoid product reuse until the license question has a documented answer.

Alternatives

ProjectWhat it isPick it when
IPTV-org gh↗A larger collection of public stream links with separate playlist, EPG, database, and API projects.pick this instead when catalog breadth and machine-readable companion projects matter more than Free-TV's selective channel policy.
IPTV Simple PVRA Kodi add-on that consumes M3U playlists and XMLTV guides for live TV playback.pick this instead when you already have legal stream sources and need a player with guide, catch-up, and time-shift support.
Jellyfin gh↗A self-hosted media server with a backend API and clients for user-managed media.pick this instead when you need an operated media server and client ecosystem around sources you control.

What people are saying

  1. [velocity-scout] Free-TV/IPTV
  2. [github-trending] iptv-org/iptv

Sources

  1. Free-TV/IPTV repository
  2. Generated playlist at measured commit e45cbb8
  3. Playlist generator at measured commit e45cbb8
  4. Playlist stream-check workflow
  5. Maintainer request for help with changing URLs
  6. Slovak station playback report
  7. Missing license issue

More data reviews

label-studio · greptimedb · chinese-independent-developer · dataease · tidb · anki · the whole board →