PeerTube

PeerTube

P2P Video using Blockchain.

PeerTube

PeerTube

P2P Video using Blockchain.

The problem PeerTube solves

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.

How it works

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.

Challenges I ran into

Most of the challenges we faced, were in fact during the protocol integrations, since the protocols are also in their early stages.

  • We had trouble integrating Push Protocol's notification systems but eventually succeeded.
  • We faced some problems in integrating the smart contract with the frontend. Some of the wagmi hooks throwed error, so we had to find a workaround on that and eventually did.
  • We planned on integrating the live streaming feature of Livepeer but the time turned out to be too less.

Tracks Applied (3)

Ethereum + Polygon Track

I have deployed the smart contract to Polygon Mumbai Testnet.

Polygon

Ethereum Track

I have deployed the smart contract to Polygon Mumbai Testnet. Polygon is an L2 that helps to scale the Ethereum blockch...Read More

Polygon

Filecoin

For storing my files into IPFS, I have used Web3 Storage which uses Filecoin under the hood.

Filecoin

Discussion