Video Streaming on IPFS

Inspiration

This project aims to provide a decentralized and uncensored way to host videos in a streamed format on IPFS.
Video streaming is a hard problem - it requires expensive CDN caching to be performant and it's hard as a developer to set up a video streaming server. This project aims to solve that problem by leveraging decentralized storage and providing an easy way to upload a video and convert it to a streaming format. It provides a way for users to upload their videos and host them in streamed format in a decentralized and uncensored way. In the future, with the incentive of IPFS nodes to host files, this project would also aim to give users a way to ensure that quality content that they like would be hosted on the network with a way for them to pay.

What it does

You can host your streaming video segments on IPFS

How I built it

Upload video on the client

Server transcodes video to HLS format (with a playlist and many video segments)

Server hosts all the video segments on IPFS and updates the playlist to point to those video segments

Serve saves the playlist locally

User is able to use the playlist to stream video where all the video segments are stored on IPFS

The user is also able to pay for the video that he/she likes using metamask

Challenges I ran into

Everything was new, and thus almost everything was a challenge :)

Accomplishments that I'm proud of

Getting everything working!

What I learned

Wrote my very first contract at this hackathon. Learned some solidity, truffle, web3, ipfs, how video streaming works, and much much more

What's next for Video Streaming on IPFS

Figure out a way to incentivize nodes to host files to replace CDN caching for video streaming '