M3UPT: a legal Portuguese IPTV playlist you point a player at
IPTV playlist in M3U format with TV and radio stations in Portuguese. Public and official streams only. Made in 🇵🇹 Portugal.
At a glance
- What is it?
- M3UPT is not a streaming service. It is a maintained M3U playlist and EPG feed listing Portuguese public TV and radio channels, and the work is keeping those links alive as broadcasters change their endpoints. The playlist is free, the streams are the broadcasters' own, and the hard part is DRM and geo-blocking rather than content.
- Who is it for?
- Adopt M3UPT if you want Portuguese-language public television and radio in a single playlist without an account, and you are in Portugal or willing to deal with geo-restricted channels and DRM streams that only open in specific players.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Shell, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A directory of links, not a streaming service
M3UPT is a playlist project, and the distinction from a streaming service is the whole point. The project describes itself as a free and legal IPTV playlist in M3U format with TV and radio stations in Portuguese, and it states that it uses public and official streams only. There is no account, no subscription and no media passing through anyone else's servers. The repository holds the playlist files and the guide data, and the streams themselves come from the broadcasters.
The motivation given is cultural rather than technical. It is not easy for Portuguese speakers living abroad to stay in touch with their culture, and the project says it can also help anyone trying to learn Portuguese or simply curious about the language.
The repository layout matches the content. There are M3U/ and EPG/ directories holding the actual data, README.md and README.pt.md in two languages, images/ and logos/ for the documentation, and a .github/ directory. The primary language is listed as Shell, which points to the update machinery rather than to the playlists themselves, since the content is text.
The homepage is m3upt.com, the licence is MIT, and the repository topics are iptv, kodi, m3u, portuguese, radio and tv.
Two URLs, and the player does the rest
The getting started section is short because the configuration is short. All you need is an IPTV player and the M3U link, and the README says you do not need to configure the EPG link in most players, because they pick it up automatically from the M3U playlist.
The two endpoints are the whole interface:
- M3U: https://m3upt.com/iptv - EPG: https://m3upt.com/epg
Because the guide is normally derived from the playlist, most of the work of adding this to a player is pasting one URL. That is the entire onboarding, and it is the reason the project can serve a user base that spans Kodi, several Android players and a Linux desktop player without shipping a client of its own.
The EPG endpoint exists for the cases where the automatic path does not work, and it is also a useful diagnostic. If a player shows channel names but no programme information, that is usually a guide sync problem rather than a stream problem, and pointing the player at the EPG link directly is the first thing to try.
What the channel list actually contains
The list is a mixture of Portuguese domestic broadcasters, Portuguese regional and international feeds, and a broad set of international news channels carried in several languages.
The domestic core is RTP 1, RTP 2, RTP 3, SIC, SIC Notícias, TVI and ARTV, with the Portuguese public broadcaster represented across its schedule channels, including RTP Memória for archive programming. The regional dimension is covered by RTP Açores, RTP Madeira, RTP África and RTP Internacional, alongside TVI Internacional.
From there the list widens into European and international news, and the language coverage is deliberate. Euronews appears in Portuguese through Euronews PT and in English, Spanish, Italian, French and German variants. France 24 appears in English, Spanish and French. Deutsche Welle appears in Spanish, German and Arabic. RT is present in several language versions, and CGTN in Spanish and French. Also listed are Al Jazeera English, CNN International, Reuters TV, NHK World, TV5 Monde Info, TVE 24h, the Spanish channels La 1 and La 2, Gulli, Trace Urban, Canal 11 Internacional, Fuel TV, Red Bull TV and Fashion TV.
For a user in Portugal this is a complete television diet. For a user abroad it is a mix of channels that are globally available and channels that are not, which is the split the notes section warns about.
Radio and a hundred beach cameras
The radio section is smaller but covers the main Portuguese networks: Antena 1, Antena 2 and Antena 3, the Antena 1 regional feeds for Açores and Madeira, RDP Internacional and RDP África, Rádio Comercial, M80, Rádio Oxigénio, Rádio Renascença, TSF and Venice Classic Radio.
The beachcam section is the unexpected one, and it is the most interesting feature for anyone who has used this kind of playlist before. The project claims over 100 cameras on Portuguese beaches, which is a niche that almost no commercial service offers and which turns the playlist into something you can leave running on a second screen.
For a Kodi setup this is a natural fit, since the PVR IPTV Simple Client can hold a large channel group and Kodi will happily display a slow-moving camera feed while the main screen plays something else.
DRM and geo-blocking decide which player you need
The player section is really a compatibility matrix, and the axis that matters is whether the player can open DRM encrypted streams.
OTT TV and OTT Navigator are described as the most complete IPTV player, they open DRM encrypted streams, and the README recommends restoring a specific backup with a given password, which suggests the project keeps a tuned configuration. Sparkle TV and TiviMate also open DRM streams and each has a recommended setting, a synchronisation interval of three hours for Sparkle and a playlist update interval of two hours for TiviMate. M3U IPTV is described as simple and as an excellent experience on mobile devices.
The other side of the matrix is the players that do not open DRM streams. ProgTV is a good Android player that cannot, and the README notes the curious detail that it can bypass geo-blocking of the SIC channels. Perfect Player is listed as discontinued, with a hardware decoder, a User-Agent of IE and channel groups shown as folders, plus a link to a downloader app with a specific identifier.
For desktop Linux, Yuki-IPTV is the recommendation, and its settings include mpv options carrying a cenc_decryption_key value, which is how it plays the DRM streams that the other Linux clients cannot. For the remaining platforms, Kodi with the PVR IPTV Simple Client is the pick, with the YouTube addon installed and its subtitles configured to pt-PT rather than auto-generated.
The notes section is candid about the limits: DRM encrypted streams do not open in some players, some channels only work with a Portuguese IP address so a VPN is needed from outside Portugal, and some streams only work in Kodi with the YouTube addon installed.
Hardware notes and how the project pays for itself
The README does not stop at the playlist and moves into hardware, which is unusual but explains what kind of project this is.
For Android TV boxes the advice is a decent SoC and enough RAM, with 4 GB of memory and Amlogic S905Y5, S905A or S905X5 chipsets recommended, the last of which is noted as supporting the modern AV1 video codec. The advice is to avoid Rockchip and Allwinner SoCs, on the grounds that Amlogic-based boxes are usually much better supported, and a slimBOXtv firmware is suggested for the device. A store link offers a device already configured and ready to use.
The shopping list that follows, AliExpress, Amazon, eBay, Geekbuying, Banggood and DHgate, is disclosed as affiliate links, where a purchase may earn the maintainer a small commission. The same pattern appears with the VPN page, the TV box store and the donation page.
That is the business model in a sentence: a free, MIT licensed playlist funded by hardware referrals and donations, with a private Telegram group offered to supporters. The open source claim sits alongside the commercial links without much tension, since the playlist itself is just a list of URLs.
For bug reports and broken links there is an Issues section, with Discussions for suggestions, plus a public Telegram group and a Signal group for updates.
The repository is two data directories and a README
The maintenance story of this project is the interesting part, and it is not a code story.
The top level holds .github/, .gitignore, LICENSE, README.md, README.pt.md, an EPG/ directory, an M3U/ directory, images/ and logos/. There is no library, no application and no test suite, because there is nothing to execute. The deliverable is data, and the primary language being Shell says what the actual work is: a script that fetches or rewrites the playlist entries and keeps the guide data in step with the broadcaster schedules.
That has a direct effect on what you can expect. The links are points in time. When a broadcaster changes its stream URL, moves a channel to a different manifest, or starts encrypting a feed, the entry in the M3U stops working until someone updates it. The repository has no GitHub releases, so there is no version history to roll back to, and the last push was on 2026-10-20.
The EPG side is the same story. Guide data for dozens of channels across several languages has to be refreshed continuously, and the fact that the EPG is served from a separate URL from the playlist is what lets a player re-fetch the schedule without re-fetching the channel list.
The licence is MIT, the project calls itself open source in the closing paragraph of the README, and the channels it points at are the broadcasters' own public streams.
Editorial conclusion
Adopt M3UPT if you want Portuguese-language public television and radio in a single playlist without an account, and you are in Portugal or willing to deal with geo-restricted channels and DRM streams that only open in specific players. Skip it if you are outside Portugal with no VPN, since the README states some channels only work with a Portuguese IP address, or if you need a service with support and a content licence, because this is a community playlist of links to other people's streams. Before you rely on it, point your player at https://m3upt.com/iptv and check which channels play in your region, use the EPG link at https://m3upt.com/epg if your player does not pick it up automatically, and report broken links through the Issues section. The last push was on 2026-10-20 and the repository has no GitHub releases.
Frequently asked questions
What is the M3U URL for M3UPT and do I need the EPG too?
The playlist link is https://m3upt.com/iptv and the guide link is https://m3upt.com/epg. The README says most players pick up the EPG automatically from the M3U playlist, so you normally only configure the playlist URL.
Which M3UPT player can play the DRM encrypted streams?
OTT TV and OTT Navigator are described as the most complete player and they open DRM streams, as do Sparkle TV, TiviMate and M3U IPTV. ProgTV and the discontinued Perfect Player do not, and the README notes that some streams work only in Kodi with the YouTube addon installed.
Can I use M3UPT outside Portugal?
Partly. The notes state that some channels only work with a Portuguese IP address and that a VPN is needed if you live outside Portugal, and the project links to a VPN page for that. The international channels in the list are a separate case.
How do I report a broken channel in M3UPT?
The README points to the Issues section for bug reports and broken links, and to Discussions for suggestions and general conversation. A public Telegram group and a Signal group are also listed for updates and chat.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/lituatui-m3upt)Was this useful?