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 '
Thank you Laura Vaughan and Dan Finlay for helping me debug metamask / contracts in the AMs :)