Video on Demand?

How does Livepeer handle VOD? The docs don’t mention much…

Particularly, considering Swarm as the persistent store-cum-CDN of choice, what’s the flow from the user’s perspective?

  1. The transcoders just return the resultant file(s) to the broadcaster which then bears all the responsibility of uploading it to Swarm (with/without encryption), maintaining the balance, and so on. The transcoders however do offer the service of transcoding the saved VOD files given a valid Swarm manifest address. (Note that this whole process can be done on the fly via Swarm Appends while the video is being transcoded).

  2. The transcoders transcode the source and at the same time keep uploading the transformed output clips to Swarm. Upon ending the stream, you get the Swarm hash of the final result to be used for subsequent retrievals through Livepeer. This implicitly means that there’s no encryption of the result and is hence available for everyone. Payments either go through Livepeer to Swarm or you get to specify the Swarm postage subscription that you’d like to use (i.e. reuse), requiring you to trust the Livepeer nodes.

Being both easy to implement and sovereign, I’m guessing (1) is the case. Would be great if someone clears up this little confusion.

I believe the node has crude support for writing output segments to a filestore, but as there is no built-in storage, the full VOD capabilities still remain an open design question, relative to the full live stream support.

Check out this post: Grant Node Committee Call Recap - 06.05.20, which highlights that Buidl Labs and Basement studios built a VOD integration. Maybe they can chime in if they have open sourced the code yet.

Technically however, yes the B node receives back transcoded outputs from the network, and then can do what it likes with them, including write them to an object store like Swarm, construct a manifest URL for playback, and write that out at completion of the transcoding.