playbackPolicy on stream or asset creation. Without a playback policy, content is publicly playable by anyone with the playback URL.
JWT vs webhook
JWT access control
Step 1 — Create a signing key
Create a signing key pair in Studio under Settings > Signing Keys, or via API:Step 2 — Create a gated stream or asset
Step 3 — Sign a JWT (server-side API route)
The JWT must be signed server-side. Never sign tokens in browser code.Step 4 — Pass the JWT to the player
Livepeer-Jwt header for WebRTC and HLS requests, and as a jwt query parameter for MP4.
For custom players, add the header manually:
Webhook access control
Create a gated stream withwebhook type and a reference to your webhook:
Related pages
Create a Livestream
Create streams with or without playback policies.
Webhooks
Full webhook setup, signature verification, and event types.