PeerTube is a decentralized video sharing and viewing platform. It is like a Web3 version of YouTube. PeerTube lets you upload a video, view it, subscribe to a channel, like/dislike and comment on a video publicly. Users can also search for the videos which are present on chain. Users pay a subscription price to follow creators.
We combined Push Protocol, TheGraph Protocol and Livepeer, and deployed it all on Polygon Mumbai Testnet.
There are three parts to our project.
First - The Backend.
The Backend is basically our smart contract which interacts with the blockchain. For the smart contract, we have used Solidity. We have used Hardhat for compiling, deploying and testing our contract. Then we have setup a subgraph using TheGraph Protocol for indexing events from Polygon. For storing thumbnail to IPFS, we have used Web3 Storage which uses Filecoin under the hood.
Second - The Frontend
We built an extensive front-end. For this we have used Next.js, TailwindCSS and MUI. We used Apollo to interact with the subgraph, and used wagmi+ethers.js to interact with the PeerTube smart contract. We have used RainbowKit for the connect wallet button.
Third - Push Protocol and Livepeer
Once a user uploads their video from the frontend, it would be uploaded to ipfs using Livepeer’s API and from there the video will be fetched and streamed. The IPFS url is used to create a video. We have also implemented Push Protocol by showing notifications in a notification box. The creator of the video can only notify their subscribers. For subscriptions and push notifications, we have used Push Protocol.
Most of the challenges we faced, were in fact during the protocol integrations, since the protocols are also in their early stages.
Tracks Applied (3)
Polygon
Polygon
Filecoin
Discussion