p2p video streaming for decentralized content sharing with libp2p, ipfs and hypercore
In our project, we leverage the capabilities of libp2p, specifically the WebRTC protocol, for seamless peer-to-peer communication in video sharing and discovery. By integrating WebRTC from libp2p, we enable users to stream and share video content directly from their browsers, eliminating the need for centralized servers. Additionally, we utilize IPFS for decentralized content storage, allowing videos to be accessible from multiple nodes in the network. Hypercore, a distributed append-only log, facilitates efficient data sharing among peers, ensuring seamless replication and synchronization. To enhance the performance of data retrieval, we incorporate Helia, which optimizes the process of fetching and serving video content from IPFS and Hypercore. With these technologies combined, our project enables secure, decentralized, and efficient video sharing and discovery experiences for users.
As a user, you can share your video content by pinning it to IPFS. Alternatively, you can fetch video content that is already available on IPFS. Once you establish a peer connection to the content, you can announce the content using hypercore. This allows other users to join and download or stream with helia fetch and we serve the video over HTTP with hypercore append only stream.
But wait, there's more! We're also exploring the possibility of announcing the content to a gossip network or pubsub. This would enable other users to access the content through connected peers, making it even more accessible and robust. We haven't fully developed to send streams with pupsub, that is an improvement we can make to this project.