Get this Television but over the Internet 🤯.
A strange offering indeed and an even stranger ecosystem that mixes streaming and piracy with an incredibly bad UX. Let’s start though with how I came across it - a somewhat hushed conversation with a friend of a friend. Like any great promoter, they start with how cheap it is for which I believe an equivalence was made between a 6 pack and a whole year of service. Then comes the quantity, you get 10,000 channels from all across the world. What am I going to do with all those channels? I was told bragging rights… I’m sold I guess. He donates the site link to me and I then proceed to forget about it for months.
One day though I pull this stale memory out as my parents struggle with their definitely legal satellite. The struggle is real when Benfica is playing in 2 days but you’ve just lost your direct link to Portugal. I tell them about Internet Protocol Television (IPTV) and they don’t really care what it is but only that it works. Banking on this solution, I input the link and buy the given option. The whole enterprise was basically resting on a dubious chain of social trust which wasn’t helped by the website itself. It was a mess of poor English and presumably poor Chinese with a design that cautioned me to the grey market status of it all. A couple of tense hours later I receive what can only be described as the dodgiest looking email I have ever received. Broken English instructions that contained a plaintext username & password combo with two connection options - M3U and XStream - and a reconciliation process that involved pretending the service was related to bikes. They got me now… I’m too far in.
Is it over? Not quite, we now need to peruse the walled garden of Smart TV applications for an IPTV player. There are too many options to care just wish for the best. Did I say it’s not quite over? Well now you have to spend the next 20 minutes inputting a ridiculous amount of characters to use your promised 10,000 channels. We finally connect with our Chinese server and everything looks to be fine. All the channels are there in a humongous linear list alphabetically organised by country name. I’m left pondering the true cost of bragging rights whilst scrolling to the Portugal header. Now only a minute later we arrive at the moment of truth… does RTP work? Mostly no. It came through but I personally could never watch something that pixelated and choppy so my labour was not over. I checked the connection speed and it barely clocked 15 Mbps download - Australian internet speeds are criminal. I had one more day to rectify this situation which boiled down to get a better plan or change providers. Given the time constraints we opted for the former and after another anxiety smothered waiting session the connection speed upped to a decent 90 Mbps download. It worked, it finally bloody worked.
I suppressed this particular event again for another couple of weeks but I couldn’t outrun it because of course, people talk. Soon everyone wants in when I want out. It’s a delicate situation though with all the boasting since it’s decline is inevitable when everyone has the same access. To avoid such a situation, my parents would soon start smuggling bragging rights by way of charitable donation namely me. On these missions, I found myself gaining weight as I was paid off the books with food. Still I found the whole business quite nauseating and not because I was being fed too much. I was finally prepared to put it all behind me when I somehow stumbled across the following github repo:
--
How can you not love open source? Free to use and contribute to if you can handle the toil. Still I was somewhat bothered by this discovery. I had to deal with dodgy bike shenanigans while the rest of the internet took a stroll through the white market. Free comes with costs specifically limitations - copyright claims and geoblocking. The latter promises a ready made solution which is to use a VPN. At that point though may as well use the gray market vendor so I got to wondering could I make my own service? How hard could it be? Let’s start with the open source version:
- GET request to https://iptv-org.github.io/iptv/languages/por.m3u
- Receive m3u file
- IPTV player decodes and presents channel list
- Profit???
First let’s take a look at the raw m3u file. It’s just a simple text file with the following format:
#EXTM3U
#EXTINF:-1 tvg-id="ADBTV.pt@SD",ADB TV (1080p)
https://live-tv.waytv.pt/adbtv/adbtv/playlist.m3u8
...With the easiest MVP you can ever wish for:
func main() {
s := NewServer()
fuego.GetStd(s, "/watch", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "audio/x-mpegurl; charset=utf-8")
http.ServeFile(w, r, "data/pt.m3u"))
})
s.Run()
}To do just the above is silly, what I want is to unlock geoblocked channels. So I’ll need a Portuguese server with an associated IP from which I can stream the bytes down to the client. I looked to the major cloud providers AWS, Microsoft Azure & Google Cloud and not one has a data centre in Portugal 😅. Spain steals all the attention in this regard. All good, I found OVHCloud. I’ve not used them before but I have heard of them so there is trust there. I was so excited I bought a domain name and started thinking about authentication mechanisms. Before long though I had a nagging feeling that something wasn’t right. To smother the feeling I needed to prove to myself that the server in Portugal would work. So I signed up to OVHCloud and put all the necessary input information. OVHCloud has a terraform provider but for this quick test run I used clickops. I couldn’t believe my eyes… the cheapest option was almost $70 a month 😳. My dreams shattered against the reality of the market.
EOF
Don’t buy a domain name too early.