Livepeer · Arazzo Workflow

Livepeer Secure a Stream with a Signing Key

Version 1.0.0

Create a signing key, create a JWT-gated stream, and resolve playback.

1 workflow 3 source APIs 1 provider
View Spec View on GitHub VideoStreamingTranscodingDecentralizedWeb3Live VideoAI VideoArazzoWorkflows

Provider

livepeer

Workflows

secure-stream-signing-key
Create a signing key then a JWT-gated stream and resolve its playback.
Creates an access control signing key, creates a stream with a JWT playback policy, and resolves the stream's playback info.
3 steps inputs: authToken, streamName outputs: playbackId, publicKey, signingKeyId, streamId
1
createSigningKey
Create an access control signing key. The private key is only returned on creation, so it is captured here for later JWT signing.
2
createGatedStream
Create a stream whose playback policy requires JWT authorization, gating playback behind tokens signed with the signing key.
3
getPlaybackInfo
Resolve playback info for the gated stream's playback ID.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Livepeer Secure a Stream with a Signing Key
  summary: Create a signing key, create a JWT-gated stream, and resolve playback.
  description: >-
    Sets up access-controlled playback for a livestream. It creates an access
    control signing key (the private key is only returned on creation, so it is
    captured here), creates a stream whose playback policy requires JWT
    authorization, and resolves the stream's playback info so the caller can
    confirm the gated playback sources. Every step spells out its request inline
    so the flow can be read and executed without opening the underlying OpenAPI
    description.
  version: 1.0.0
sourceDescriptions:
- name: accesscontrolApi
  url: ../openapi/livepeer-accesscontrol-api-openapi.yml
  type: openapi
- name: playbackApi
  url: ../openapi/livepeer-playback-api-openapi.yml
  type: openapi
- name: streamApi
  url: ../openapi/livepeer-stream-api-openapi.yml
  type: openapi
workflows:
- workflowId: secure-stream-signing-key
  summary: Create a signing key then a JWT-gated stream and resolve its playback.
  description: >-
    Creates an access control signing key, creates a stream with a JWT playback
    policy, and resolves the stream's playback info.
  inputs:
    type: object
    required:
    - authToken
    - streamName
    properties:
      authToken:
        type: string
        description: Livepeer API key used as a Bearer token.
      streamName:
        type: string
        description: Name of the gated stream to create.
  steps:
  - stepId: createSigningKey
    description: >-
      Create an access control signing key. The private key is only returned on
      creation, so it is captured here for later JWT signing.
    operationId: createSigningKey
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.authToken
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      signingKeyId: $response.body#/id
      publicKey: $response.body#/publicKey
  - stepId: createGatedStream
    description: >-
      Create a stream whose playback policy requires JWT authorization, gating
      playback behind tokens signed with the signing key.
    operationId: createStream
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.authToken
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.streamName
        playbackPolicy:
          type: jwt
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      streamId: $response.body#/id
      playbackId: $response.body#/playbackId
  - stepId: getPlaybackInfo
    description: Resolve playback info for the gated stream's playback ID.
    operationId: getPlaybackInfo
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.authToken
    - name: id
      in: path
      value: $steps.createGatedStream.outputs.playbackId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      playbackPolicy: $response.body#/meta/playbackPolicy
  outputs:
    signingKeyId: $steps.createSigningKey.outputs.signingKeyId
    publicKey: $steps.createSigningKey.outputs.publicKey
    streamId: $steps.createGatedStream.outputs.streamId
    playbackId: $steps.createGatedStream.outputs.playbackId

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/livepeer-secure-stream-signing-key-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.