Please describe your proposed solution.
Intent of App
Creators understand that the media platforms are profiting off of them, not the other way around. It is difficult for videographers and content creators to distribute content across multiple media platforms at once, unless they pay for a third-party solution to push videos across various accounts. However, once videos are hosted by these web2 platforms, they are subject to the miniscule monetization terms programmed by each platform.
The mass majority of creative content publishers are not familiar with blockchain and don’t have a tangible example to fully understand the benefit of utilizing NFTs as access to value for consumers.
We need a self-service web app that allows users to apply video-based utility to their own website secured by a token-based access control scheme that would allow creators to monetize video through NFTs without needing to know how to code.
We need a simple way for even those not familiar with blockchain to monetize access to video content through NFTs that will work on any website, not just a centralized web app.
There needs to be a service layer that acts as a bridge between NFTs, web2 video hosting providers, and the creator’s own website. The solution should be open-source so that others can create their own applications for marrying token ownership with gate payloads.
Primary Components
Video hosting and streaming is handled by an API partner, SproutVideo. This token-gating app will communicate directly with the user's Sprout account to fetch and play embedded streams for token holders that can be securely restricted to one or more domains, which allows for a new form of distribution control and monetization across multiple video websites at once, with the monetization and distribution settings firmly in the hands of the content creator.
Among participating video “curation” sites where a universal script is utilized, media that is gated with this app can be unlocked securely for any domain in the whitelist of the gate creator. The gate object both dictates the cost of access (via the NFT), which websites can host the streaming, for how long, and other distribution control and monetization options.
An advanced version of the Sprout token gate is login-based access to videos. The difference between domain-restricted video and the Sprout API for Logins and Access Grants is that a wallet-based OAuth flow can create conditional access to videos (such as max plays) for individual token holders that does not need to be restricted to one website at a time to remain secure. In other words, we are creating a new form of instant distribution control for artists where a token gate can be played for holders on all websites that utilize a form of the on-page script.
This proposal also includes a scope of work for the token gating object, distribution control. At this present time the app allows users to create token gates that work on any website with a copy/paste script. This new functionality would allow content creators a new form of distribution control - for any video streaming app using this on-page script, creators can dictate which websites their videos can show up on or are banned from, and the effect is immediate.
What is unique about this solution is that the functionality can work on any website thanks to the usage of a custom Oauth flow process and a wallet-based resource server. This third-party authentication approach was important to us because most NFT functionality is hardcoded to work in one way, on a singular website, and it was critical to the vision for the app that the user is in complete control over content access and monetization. We hope that Cardano projects that produce animations, film or other content can honor this app by using it as a service layer for engaging with their audiences.
We have described the use-case flows for this system from a component standpoint, but the below org tree highlights platform-specific integration features based on our research of the third-party API documentation.
- SproutVideo
- Authentication API
- Authenticate account in Integrations section of User Profile and store API key
- Videos API
- List videos when creating a new SproutVideo type gate
- Playlist API
- List playlists when creating a new SproutVideo type gate
- Livestream API
- List livestreams when creating a new SproutVideo Stream type gate
- Access Grants API
- Create new grant configuration when making a video tokengate
- Edit an access grant if a video tokengate has been edited
- Delete access grants when token gates are deleted
- Logins API
- Create a consumer login when the Gate API processes a request to access a gate payload