It was towards the end of 2017 that Baiskoafu, a client based in the Maldives, approached us to build a platform to stream and download multimedia content in Dhivehi, the Maldivian language. The client wanted the app to be a medium through which they could promote local talent and content across the globe. Apart from this key idea, they had a sizeable collection of audio and video content and a set of questions for us. How could they materialize this dream? What should the product look like? What features should be included? 2018 was a period of joint discovery and exciting development for Baiskoafu and QBurst.

Building the Prototype

To bring the concept into reality, we started by analyzing the objective, identified the features, and defined the workflow. Delivering the full set of features within the stipulated timeline was the initial challenge. We took it on nevertheless and successfully presented a full-fledged working prototype. The prototype included major features such as the latest and trending media content, options to stream/download the files and search for artists, a user library, and user profile. Apart from the mobile application, we also identified the need for an admin panel to serve as a management system. The management system would help manage the user base, upload and tag the content, assign the artists and content providers. With the go-ahead from the client, we started converting the concept to code. One of the key challenges we would address while building the streaming and downloading features is quality adjustments to adapt to the requesting bandwidth.

How Streaming Apps Work

Streaming apps work based on streaming protocols, which chop up the media content into encoded short elements called chunks. These chunks, a stream of data, are then delivered from the server to the clients. The server, information stream, and decoder then work together to let people watch the live or prerecorded telecasts. An important aspect for consideration while building a streaming application is adaptive bitrate streaming. This multimedia streaming technique is a combination of server and client software that detects a client’s bandwidth capacity and adjusts the quality of the media stream between multiple bitrates and/or resolutions. It requires the use of an encoder which can encode a single source media (video or audio) at multiple bit rates. The player client hence switches between streaming the different encodings depending on available resources. HTTP Live Streaming (HLS), a media streaming protocol, is widely used for streaming applications, as it has emerged as the standard in adaptive bitrate media. The HLS streaming protocol breaks down the media content into short 10-second chunks, which are then delivered to the viewers by HTTP. This technology makes HLS compatible with a wide range of devices and firewalls.

How We Achieved Streaming in Baiskoafu App

Baiskoafu also follows the HLS protocol. All the media content is uploaded and managed through the admin panel. The content undergoes elastic transcoding, which transcodes them into different qualities and stores them in Amazon Web Service S3 buckets. Each media file has an associated m3u8, a playlist file, which includes references (URLs) to all the available qualities. For Baiskaofu, we kept four m3u8 files against each content, including:
  • Master: Contains references to all qualities in this playlist file
  • Low: Contains only low-quality reference
  • Medium: Contains only medium-quality reference
  • High: Contains only high-quality reference
The client application receives all the associated m3u8 playlists through rest APIs and supplies the master playlist file as player input by default. The player then selects the apt quality reference from the list based on client bandwidth and starts streaming. Users can manually switch to any of the other qualities (low, medium, or high), which will input the corresponding m3u8 file into the player. Downloads in Baiskoafu work similarly, where the master playlist will be used by default and the quality will be based on the bandwidth. Users can manually switch to other qualities.

How the Application Evolved

The visual impact of the real-time product inspired the client to introduce new ideas that would make the application different from its competitors. The client wanted to categorize and present the content to the user in a more systematic manner. To support the concept, new designs and workflow were brought in, revamping the application. Categorization brought changes to the admin panel as well. The admin panel was modified with options to create and assign categories against each content, which improved the user experience of the mobile application. Users can now navigate between the categories and find the most relevant items as per their choice. Our team adapted to the changes quickly and incorporated them in a very short period of time. With the changes in place, the public release was scheduled in March 2018.

Live Streaming and Revenue Generation

Live streaming, our next challenge, would take Baiskoafu to the next level. The client had contracts with the local channels in the Maldives, and we were provided with live streaming playlists. We introduced a new section in the admin panel to manage live TV and radio channels and where the admin could add the channel details along with the live streaming URLs. And, in the mobile application, the live streaming mechanism was implemented following the HTTP Live Streaming protocol, which helps users to watch live channels seamlessly. The evolution of the application raised the question of revenue generation. The solution was subscription. Although this was considered early on, the client had wanted to release the free option first. But the introduction of exclusive features made revenue generation relevant and the decision to release with a subscription was made. Accordingly, the content was classified into free and premium, and the admin panel was enabled with the options to mark this. Baiskoafu provides free content for all users and premium content only for subscribed users. The subscription fee was fixed at $9.99 per month and in-app purchase (facility to buy goods and services within an app) was selected as the payment method as this is mandatory for selling digital goods in apps as per Google and Apple.

Getting App Store Approval

The next step was securing approval from Apple and Google stores. The Android version was approved really quick but things weren’t as smooth for the iOS version. Apple rejected the application at first because the app allowed users to stream and download third-party content and channels. This hurdle was cleared by submitting legal documents from content providers that proved that Baiskoafu had their consent to use their content. Our request to expedite the review process was also denied by Apple, pointing out the exclusive nature of the app. While this problem with the iOS app brewed unresolved in the background, the Android version was launched in the Maldives with fanfare and to great media attention. The response was incredible, but there was an anxious question from iPhone users: “When will this app be in our hands?” After facing multiple rejections from Apple, we finally managed to get it approved and released in the App store by November 2018. This was achieved by providing all the necessary proofs, and addressing each and every query put forward by the tech giant. And thus, with both the versions in stores, the dream became a reality.

Baiskoafu: The Impact and Importance

The uniqueness of Baiskoafu is its all-in-one nature. It has audio and video content in a single platform, which makes it a first-of-its-kind streaming application. The content is well organized and provides an extraordinary user experience. Users can navigate through audio, video, albums and TV shows, which are placed under different categories. Baiskoafu has created a splash in the Maldivian entertainment industry and the people are excited about having their own Dhivehi media platform. The app has good ratings and it garnered the second place a day after its release. Its user base is growing tremendously and the feedback has been impressive. We have successfully released two more updates incorporating the feedback. Our experience in the media and entertainment industry has enabled us to build an application to match some of the leading digital entertainment solutions. We started with minimal features and a team of four members that expanded to thirty members as the scope evolved. The journey was not easy, but we overcame the obstacles and ensured the delivery of a much-loved product.