Behind the scenes of VTM GO & Streamz: iOS development for video
Our video teams are always working on new features and optimizations – classified information, sorry! But we thought it would be nice to take you behind the scenes for a little bit with our Popcorn squad – the team responsible for the video players of brands like VTM GO and Streamz. What have they been working on lately? Get your popcorn out and enjoy the read!
Video squads in motion
Within DPG Media, we have two established video brands in Belgium. VTM GO and Streamz (a joint venture between DPG Media and Telenet), both available on Android, iOS, and many other platforms. VTM GO first ‘aired’ in April 2019, and Streamz – the Belgian Netflix challenger – was released in September 2020.
We have several squads working on Streamz and VTM GO. They all have different specializations. The De Videotheek squad, for example, is responsible for serving video files, ensuring they are properly transcoded and encoded into different formats so that the video player – powered by the Popcorn squad – is able to show the videos.
Swift iOS development
The Popcorn squad is responsible for many platforms, one of them is the Apple ecosystem. At this point, they support iOS, tvOS, and Airplay. The programming language is Swift, and the team uses HTTP Live Streaming (HLS) to send live and on-demand audio and video to user devices.
As you may know, video holds a lot of development complexities. Just think of widely-accepted and used features as downloading videos for offline use, video encryption, and subtitles. And, of course, there’s a multitude of devices to support: iPad, iPhone, Apple TV, and AirPlay, but also Chromecast and even televisions might influence the behavior of the code.
Streamz – build from scratch
The biggest release of 2020 was the brand new Streamz. It is actually the first video player we built from scratch – no third-party libraries. As Streamz is ad-free, it was the perfect opportunity to take on the challenge of building our very own player. It’s not only very educational and exciting for the tech team, but it also enables us to respond to customer requests to optimize the platform rapidly.
Faking VOD for news – no #fakenews
Another challenge the Popcorn squad faced was how to serve the VTM news broadcast through VTM GO quickly. The news is first broadcasted on television, and viewers can watch the live stream in the VTM GO app too. But due to technical reasons, the on-demand version of the news only appeared online several hours later. We were serving VTM GO users old news, basically.
Enter ‘restart-tv’ – the internal name for our solution using the minimum viable product (MVP) mentality. iOS Developer and Scrum Master Joris Dubois explains: “Restart is a new feature with a high business value. We can’t let viewers wait for hours before they can watch the news, but the underlying complexity just takes this much time to render a VOD from a live stream. We could maybe tweak it to be faster, but nowhere near as fast as our restart-tv feature. Now, with the MVP, we serve the audience a time-shifted live stream which they experience as Video on Demand (VOD).”
The complexity is that the video player recognizes the live stream as live, logically. But that means, among other things, there’s no going backward or forward in the video. It doesn’t have the features you’d expect from VOD. So the video teams had to make the video player believe the live stream was actually VOD so that the user interface (UI) acts accordingly. Basically, VTM GO serves a fake VOD – a live stream with a timeshift. As we can’t livestream up until eternity, as soon as the real VOD is available, the live stream is replaced by the real VOD.
Complex to the max
You’ve read it: iOS development for video is a whole different ball game than ‘regular’ iOS app development. It requires inventiveness, perseverance, and damn’ good brainpower.
Joris: “Our video players are getting more complex by the day. Not only do we add more features, but Apple also releases updates. When there’s a new beta version, we need to make sure our functionalities still work as expected. People need to be able to play their videos because, without video, our apps are worthless.”