Transcoding Jobs Quickstart
Submit an on-demand transcoding job through the Livepeer Studio API and track it to completion using the Tasks API.AI-ready summary (for humans and assistants)
- Use the Studio API base URL:
https://livepeer.studio/api - Submit jobs with
POST /transcode - Transcoding is asynchronous; poll
GET /task/{id} - A successful
POST /transcodereturns atask.id - Final technical accuracy review is required from Rick (TD)
Review status
This quickstart is structurally complete and based on the GitHub-validated Studio OpenAPI spec, but Rick (TD) review is required before final publish for canonical flow accuracy and user-facing defaults.1. Prerequisites
- A Livepeer API key (backend use only)
curl(and optionallyjq)- Input video accessible over HTTP or a S3-compatible source
- Output storage destination (S3-compatible or web3.storage delegation proof)
2. Base URL and authentication
- Base URL:
https://livepeer.studio/api - Auth header:
Authorization: Bearer <LIVEPEER_API_KEY>
3. Submit a transcode job
The Studio spec requires:inputstorageoutputs
- HTTP input URL
- S3-compatible storage output
- HLS + MP4 outputs
Example request body
Example curl request
4. Capture the task ID
Transcoding is asynchronous. The response is atask object. Save the id field and poll the task endpoint.
Example response shape (trimmed):
5. Poll the task status
UseGET /task/{id} until status.phase is completed or failed.
pendingwaitingrunningfailedcompletedcancelled
6. Verify completion and outputs
Whenstatus.phase is completed:
- Confirm the task did not report an
errorMessage - Inspect task output metadata and/or linked asset IDs
- Verify the output paths you requested under
outputsin your destination storage
7. Common failure modes
401 Unauthorized
- Invalid API key
- Missing/incorrect
Authorizationheader
422 Validation Error
- Missing required top-level fields (
input,storage,outputs) - Invalid
inputschema (URL vs S3 object mismatch) - Invalid
profilesshape
Task enters failed
- Check
status.errorMessage - Verify input URL is accessible to the service
- Verify output storage credentials and bucket permissions
- Re-run with a minimal profile/output combination first
8. Rick (TD) review checklist (blocking before final publish)
- Confirm canonical user-facing transcoding flow for 2026 docs
- Confirm recommended default profile example(s)
- Confirm polling expectations and completion verification guidance
- Confirm deprecated legacy examples should be removed/labeled
- Confirm boundary with realtime APIs (what belongs elsewhere)
9. Next steps
- Create Transcode Job endpoint reference
- Transcode API overview
- Tasks API overview
- Get Task endpoint reference
- Studio API overview
- SDKs overview
Canonical references (source-of-truth first)
- GitHub (primary): livepeer/docs
api/studio.yaml - GitHub (primary): livepeer/docs
api/gateway.openapi.yaml(for sharedgeneratetag context) - DeepWiki (corroboration only): livepeer/docs | DeepWiki
- Repo-local docs refs (unvalidated until cross-checked):
/platforms/livepeer-studio/api-reference/transcode/create,/platforms/livepeer-studio/api-reference/tasks/get