A

Atlas.tv

On-demand Video Streaming service exclusive to Superfluid Subscriptions on Lens

103

The problem Atlas.tv solves

We are building an on-chain Decentralised and Composable On demand Video Streaming service to empower creators over what they put so much hard work in . Atlas is designed to boost creator earning on the basis of engagement and multiple video metrics , which allows them to earn money in realtime with the help of Superfluid Streams . The pay is streamed right from the Atlas Router to the creators on the basis of daily engagement , the metrics include Views and Watch Hours. This also creates a sense of challenge between creators to produce the best quality content , to enhance their engagement , promoting self-growth. Every video is a post on lens , containing the video metadata , which is fully controlled by the creator and not by the platform at any instance . Creator can manage every aspect , like collect , mirror or comment , along with setting up modules to customize the video access and earnings.

For users , they get access to high quality exclusive content , just by purchasing a single fixed monthly Stream Subscription , this eliminates the need to subscribe to individual creators , at the same time with no Ads & awesome video experience. The Sub is not charged at the start of the month ,instead , streamed over the whole month every second, they get access as long as they are subscribed to the platform.

LivePeer was used to store , Cache & display videos for our platform , lens being the social layer storing all the info about the video and it's related content . Some files were stored on IPFS with IPFS client and Web3.storage in the backend. Gelato's web3 function handeled off chain computation and connecting off-chain data to the on-chain contracts. Polybase was our database through out to store creator & user info.

flow-chart

Challenges I ran into

We had to face a lot of challenges , one of the first being dependency conflict between Wagmi , Viem & Ethers. The Superfluid Subscriptions support Wagmi with Viem , but the Lens support Wagmi with Ethers until now. This made us create 2 different frontend applications to resovle the conflict.

Another being on how to split subscriptions to the creators on the basis of metrices, we came up with the solution by splitting this on the basis of the Views and Watch hours for the creator as a whole , in respect to the total View and Watch hours on the platform . We have a cron Job in the backend updating the livepeer video data to our Polybase collection , Then gelato Web3 Fucntions is being used to get this data and compute it off chain , to call 'distributeSubscriptions' in the Atlas Router Contracts.

Discussion