Livepeer · Arazzo Workflow

Livepeer Clip a Livestream

Version 1.0.0

Create a clip from a live playback ID, poll the clip task, fetch the asset.

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

Provider

livepeer

Workflows

clip-livestream
Create a clip, poll its task, then read the resulting clip asset.
Creates a clip from a livestream playback ID over a timestamp window, polls the clip processing task, branching on the task phase, and reads the resulting clip asset.
3 steps inputs: authToken, endTime, name, playbackId, startTime outputs: clipAssetId, clipPlaybackId, clipPlaybackUrl
1
createClip
Create a clip over the supplied playback ID and timestamp window. Returns the clip asset and its processing task.
2
pollTask
Poll the clip task by ID. Branch to reading the asset when the task is completed and end on failure; otherwise keep polling.
3
getClipAsset
Read the finished clip asset to surface its playback ID and URL.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Livepeer Clip a Livestream
  summary: Create a clip from a live playback ID, poll the clip task, fetch the asset.
  description: >-
    Creates a highlight clip from an ongoing livestream (or a recorded session)
    by specifying the playback ID and a start/end timestamp window. Clipping is
    asynchronous, so the workflow captures the clip asset and task, polls the
    task until its phase reports "completed", branching to a failure end on
    failure, and then reads the finished clip asset to surface its playback ID.
    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: assetApi
  url: ../openapi/livepeer-asset-api-openapi.yml
  type: openapi
- name: streamApi
  url: ../openapi/livepeer-stream-api-openapi.yml
  type: openapi
- name: taskApi
  url: ../openapi/livepeer-task-api-openapi.yml
  type: openapi
workflows:
- workflowId: clip-livestream
  summary: Create a clip, poll its task, then read the resulting clip asset.
  description: >-
    Creates a clip from a livestream playback ID over a timestamp window, polls
    the clip processing task, branching on the task phase, and reads the
    resulting clip asset.
  inputs:
    type: object
    required:
    - authToken
    - playbackId
    - startTime
    properties:
      authToken:
        type: string
        description: Livepeer API key used as a Bearer token.
      playbackId:
        type: string
        description: Playback ID of the live stream or recording to clip.
      startTime:
        type: number
        description: Clip start timestamp in Unix milliseconds.
      endTime:
        type: number
        description: Clip end timestamp in Unix milliseconds.
      name:
        type: string
        description: Friendly name for the clip.
  steps:
  - stepId: createClip
    description: >-
      Create a clip over the supplied playback ID and timestamp window. Returns
      the clip asset and its processing task.
    operationId: createClip
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.authToken
    requestBody:
      contentType: application/json
      payload:
        playbackId: $inputs.playbackId
        startTime: $inputs.startTime
        endTime: $inputs.endTime
        name: $inputs.name
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      assetId: $response.body#/asset/id
      taskId: $response.body#/task/id
  - stepId: pollTask
    description: >-
      Poll the clip task by ID. Branch to reading the asset when the task is
      completed and end on failure; otherwise keep polling.
    operationId: getTask
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.authToken
    - name: taskId
      in: path
      value: $steps.createClip.outputs.taskId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      phase: $response.body#/status/phase
    onSuccess:
    - name: clipReady
      type: goto
      stepId: getClipAsset
      criteria:
      - context: $response.body
        condition: $.status.phase == "completed"
        type: jsonpath
    - name: clipFailed
      type: end
      criteria:
      - context: $response.body
        condition: $.status.phase == "failed"
        type: jsonpath
    - name: keepPolling
      type: goto
      stepId: pollTask
      criteria:
      - context: $response.body
        condition: $.status.phase != "completed" && $.status.phase != "failed"
        type: jsonpath
  - stepId: getClipAsset
    description: Read the finished clip asset to surface its playback ID and URL.
    operationId: getAsset
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.authToken
    - name: assetId
      in: path
      value: $steps.createClip.outputs.assetId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      phase: $response.body#/status/phase
      playbackId: $response.body#/playbackId
      playbackUrl: $response.body#/playbackUrl
  outputs:
    clipAssetId: $steps.createClip.outputs.assetId
    clipPlaybackId: $steps.getClipAsset.outputs.playbackId
    clipPlaybackUrl: $steps.getClipAsset.outputs.playbackUrl

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-clip-livestream-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.