Skip to main content

Combining IPFS with Livepeer creates a fully decentralised video pipeline: content-addressed storage on IPFS with Livepeer transcoding for adaptive playback. This pattern is common in NFT video projects and decentralised social applications. What you will build: A workflow that uploads a video to IPFS via web3.storage, creates a Livepeer asset from the IPFS URL, and plays it back using the Livepeer Player.

Prerequisites

npm install livepeer @web3-storage/w3up-client

Build the pipeline

Storing the CID on-chain (optional)

For NFT video projects, store the IPFS CID in the NFT metadata to establish provenance. The Livepeer playbackId can be stored alongside it for delivery:
{
  "name": "My NFT Video",
  "description": "A video NFT with decentralised storage and delivery.",
  "animation_url": "ipfs://bafybei...",
  "properties": {
    "livepeer_playback_id": "pla_abc123"
  }
}
The animation_url field (ERC-721 metadata standard) points to the IPFS CID. The livepeer_playback_id is a convenience property for applications that want to serve the transcoded stream instead of the raw IPFS file.

Upload a Video Asset

Direct upload and URL-based import for video assets.

Token-Gated Video

Gate video access with NFT ownership using Lit Protocol.
Last modified on April 7, 2026