I'm working on a p2p streaming/sharing app called bubbleBASED. Its here https://bubblebased.com/ its based! on bubbles! But it uses Webtorrent to stream and share content in context bubbles. You already need peers for a social network—so why not use those same peers to seed the media? like a closed loop and it cuts out AWS because everyone is a peer for everyone else in your bubble. There is an assist from Heroku and Pinata. There is no algo. Its just whatever you post. Also you can add an affiliate link (from cj.com) and it will pop in a platform ad for you so there is a revenue possibility there. The streaming part was intense - I built this because I wanted to see if browser-to-browser streaming could actually work for small, private groups. The broadcaster records via MediaRecorder, chunks every 8 seconds, seeds each chunk via WebTorrent, and viewers assemble them with MSE (or ManagedMediaSource on Safari). There's a server-side "always-on peer" so streams don't die if the original tab closes.
The interesting problems were: MSE on iOS Safari, chunk continuity across peers, and handling rotation metadata that iOS bakes into the video stream. Also, the tracker is a separate bittorrent-tracker instance because the built-in WebTorrent trackers are unreliable for sustained swarms. Also i used a ton of graphql, so normally with a torrent you have to kind of let people find you but i used a graphql subscription to TELL people what the magnet links were called so they can fetch them asap. Lots of shortcuts like that, its been interesting!!