A Livepeer video asset has two distinct concerns: the source file (the master from which renditions are transcoded) and the playback renditions (the HLS playlists and segment files served to viewers). Both can live on different storage layers. The Asset API supports Gateway-managed storage as the default and accepts decentralised storage URLs as either source input or persistence target. This guide covers the storage choices, the trade-offs, and the integration patterns. For the upload-to-playback path, see .Documentation Index
Fetch the complete documentation index at: https://na-36-merge-docs-v2-dev-draft-into-docs-v2-clean-20260525.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Storage Tiers
Three tiers cover the spectrum from fast hot cache to permanent archive.| Tier | Where | Cost | Latency | Permanence |
|---|---|---|---|---|
| Gateway-managed | Gateway provider’s regional storage and CDN | Highest per GB-month | Lowest playback latency | Bounded by Gateway retention policy |
| IPFS | Content-addressed network via pinning service | Mid (storage + pinning) | Mid (depends on Gateway) | Strong while pinned |
| Arweave | Permanent storage protocol | One-time fee, ~200-year guarantee | Slower retrieval | Strong, no ongoing payment |
Default Asset Storage
When you create an asset via TUS upload orlivepeer.asset.create({ name }), the Gateway stores the source file and transcoded renditions in its own storage. Playback URLs point to the Gateway’s CDN.
IPFS as Source
You can store the master file on IPFS and have Livepeer fetch and transcode it. The original file stays on IPFS; the Gateway holds only the transcoded renditions. The pattern fits NFT video projects, decentralised social applications, and any workload where content addressing matters. The activation path is in . The shape is:cid remains a stable, content-addressed reference that survives Gateway provider changes.
Arweave as Source
Arweave’s permanent storage guarantee makes it suitable for long-tail catalogue and any content that must outlive the Gateway operator. Upload via Bundlr (or Turbo, ArDrive, or any Arweave uploader), capture the transaction ID, and pass the Arweave Gateway URL to Livepeer:Encrypted Assets
For content that must not be downloadable in raw form (paid video, gated content, sensitive recordings), encrypt the source before upload. The Gateway accepts AES-CBC encrypted video; the symmetric key is encrypted with the Gateway’s public key. The Asset API supports encrypted assets natively via theplaybackPolicy and access control fields. The Gateway decrypts on demand, gates the decrypted stream by access control policy (JWT, allow-list, signed URL), and serves encrypted segments to authorised viewers.
Retention Policies
Storage decisions extend beyond initial upload. Three retention concerns drive the archival pattern. Gateway provider retention. Most providers retain assets indefinitely on paid tiers, with grace periods on free tiers. Confirm the policy before relying on Gateway-managed storage as the only copy. IPFS pinning lifecycle. IPFS storage requires active pinning. Without a pinning service or self-hosted pinning node, files become unavailable as nodes recycle their caches. Pin every asset you want to persist; check pin status periodically. Arweave permanence. Arweave’s protocol guarantees retrieval for at least 200 years against a one-time upload fee. No ongoing payment required, but uploads cost more upfront than IPFS for the equivalent file size. Suitable for hot-path-cold archives. For multi-tier strategies, store the source on Arweave for permanence, mirror to IPFS for fast retrieval, and pin trending content to Gateway-managed storage for low-latency playback. The Asset API supports all three as source URLs interchangeably.Asset Migration
Moving an asset between storage tiers does not require re-transcoding. The Asset API exposes the source file’s storage location separately from the playback renditions. To migrate:- Download the original source from the current tier (via the Asset API’s
downloadUrlor by retrieving from IPFS/Arweave directly) - Upload to the new tier (web3.storage, Bundlr, or Gateway storage)
- Update the asset’s
storagefield to reference the new location
Production Considerations
Six things change between a single-asset proof of concept and a production storage strategy. Pinning redundancy. A single pinning service is a single point of failure for IPFS-backed assets. Pin to two providers minimum for production. Encryption key rotation. AES-CBC keys never change for an existing encrypted asset. Plan for re-encryption if a key is compromised; this means downloading, decrypting, re-encrypting, and re-uploading. Storage cost monitoring. Per-GB-month costs vary 10-50x across tiers. Tag assets with their storage tier in your database; monitor monthly spend per tag. Access control on encrypted assets. JWT-based access control requires signed tokens with short expiries. Plan token rotation and viewer authentication before shipping encrypted content. CDN cache warming. Cold playback of a long-tail asset stored only on IPFS or Arweave incurs first-fetch latency. For predictable hot content, pre-warm the Gateway’s cache by issuing a low-bitrate fetch ahead of expected viewer traffic. Webhook handling for asset lifecycle. Theasset.ready, asset.failed, and asset.deleted webhooks fire on the storage transitions; subscribe to them in production so your application state stays consistent with the Gateway’s view.
Next Steps
VOD Upload and Playback
The end-to-end upload, transcode, playback path.
IPFS Video Integration
Web3.storage + Livepeer Asset API: working example.
Low-Latency Streaming
The live-streaming counterpart with WebRTC ingest.
Production Hardening
Webhook signatures, encryption, retention, access control.