An asset represents a static video object that can be identified, stored and processed within Livepeer. Livepeer is responsible for the life cycle management (i.e. CRUD) of an asset. An asset has a unique asset ID and a well-defined metadata describing its characteristics. An asset is created only when a video is uploaded to Livepeer successfully through its API, or when a recording or clip is created. An asset can only be deleted using Livepeer API.

When an asset is created successfully, an asset.created webhook event is fired to allow customized processing logic triggered, and if not, an asset.failed webhook will be fired.

Video assets are stored with an s3-compatible storage provider managed by Livepeer Studio, along with unique metadata such as name and description.

Playback

An asset can be easily viewed by passing a playbackId to Livepeer’s Player. If using a third-party player, then the full playback url is required. This can be fetched from the Playback Info API endpoint.

Also, Livepeer provides viewership metrics, which allow a more comprehensive look into viewer behavior using the livepeer viewership API. Reporting is enabled by default in the Livepeer Player, and can be integrated into any third party player.

Recording

A recording is an asset that has been created from a transcoded version of a stream - Livepeer supports recording a stream, which will be processed and stored as an asset.

Clip

A clip is an asset that was created from a stream. This is usually separate from a recording, where it is shorter and the creation is triggered by a viewer or creator.

Encrypted asset

An Encrypted asset refers to a video object within the Livepeer that has undergone cryptographic encryption for security purposes, ensuring its contents remain confidential and are only accessible to authorized users. The encryption process utilizes a 256-bit key generated using the ‘AES-CBC’ algorithm. This key encrypts the video file, and then this encryption key itself is encrypted using the Livepeer Public Key, a form of asymmetric encryption. This double layer of encryption ensures that the video content remains secure during its lifecycle in Livepeer.

To create an Encrypted asset, one must first generate an encryption key, use it to encrypt their video content, retrieve the Livepeer Public Key, and then encrypt the original encryption key. The encrypted video file, alongside its encrypted encryption key, is then uploaded to Livepeer. Livepeer only supports video content encrypted using the SubtleCrypto.encrypt method with the AES-CBC algorithm, compatible with other web3 protocols like Lit.

When an Encrypted asset is uploaded to Livepeer, a playback URL is generated. Access to this URL and the contents of the Encrypted asset can be controlled through access control, ensuring content security and selective accessibility.

To decrypt and view the asset, the correct decryption key, which has been encrypted using Livepeer’s Public Key, is required. Thus, even if one has the playbackId or playbackUrl, without the appropriate decryption, the Encrypted asset remains secure and unviewable.