Saltar al contenido principal
POST
/
transcode
TypeScript
import { Livepeer } from "livepeer";
import {
  TranscodePayloadSchemasStorageType,
  TranscodeProfileEncoder,
  TranscodeProfileProfile,
} from "livepeer/models/components";

const livepeer = new Livepeer({
  apiKey: "<YOUR_BEARER_TOKEN_HERE>",
});

async function run() {
  const result = await livepeer.transcode.create({
    input: {
      url: "https://s3.amazonaws.com/bucket/file.mp4",
    },
    storage: {
      type: TranscodePayloadSchemasStorageType.Web3Storage,
      credentials: {
        proof: "EaJlcm9vdHOAZ3ZlcnNpb24BmgIBcRIg2uxHpcPYSWNtifMKFkPC7IEDvFDCxCd3ADViv0coV7SnYXNYRO2hA0AnblHEW38s3lSlcwaDjPn",
      },
    },
    outputs: {
      hls: {
        path: "/samplevideo/hls",
      },
      mp4: {
        path: "/samplevideo/mp4",
      },
      fmp4: {
        path: "/samplevideo/fmp4",
      },
    },
    profiles: [
      {
        width: 1280,
        name: "720p",
        height: 720,
        bitrate: 3000000,
        quality: 23,
        fps: 30,
        fpsDen: 1,
        gop: "2",
        profile: TranscodeProfileProfile.H264Baseline,
        encoder: TranscodeProfileEncoder.H264,
      },
    ],
  });

  // Handle the result
  console.log(result);
}

run();
{
  "id": "09F8B46C-61A0-4254-9875-F71F4C605BC7",
  "type": "upload",
  "createdAt": 1587667174725,
  "scheduledAt": 1587667174725,
  "inputAssetId": "09F8B46C-61A0-4254-9875-F71F4C605BC7",
  "outputAssetId": "09F8B46C-61A0-4254-9875-F71F4C605BC7",
  "projectId": "09F8B46C-61A0-4254-9875-F71F4C605BC7",
  "requesterId": "09F8B46C-61A0-4254-9875-F71F4C605BC7",
  "params": {
    "upload": {
      "url": "https://cdn.livepeer.com/ABC123/filename.mp4",
      "encryption": "<unknown>",
      "c2pa": true,
      "profiles": [
        {
          "bitrate": 3000000,
          "width": 1280,
          "name": "720p",
          "height": 720,
          "quality": 23,
          "fps": 30,
          "fpsDen": 1,
          "gop": 2,
          "profile": "H264Baseline",
          "encoder": "H.264"
        }
      ],
      "targetSegmentSizeSecs": 6
    },
    "export": {
      "custom": {
        "url": "https://s3.amazonaws.com/my-bucket/path/filename.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=LLMMB",
        "method": "POST",
        "headers": {}
      }
    },
    "exportData": {
      "content": {
        "data": "Hello, World!"
      },
      "ipfs": {
        "pinata": {}
      },
      "type": "text/plain",
      "id": "09F8B46C-61A0-4254-9875-F71F4C605BC7"
    },
    "transcode-file": {
      "input": {
        "url": "https://cdn.livepeer.com/ABC123/filename.mp4"
      },
      "storage": {
        "url": "s3+https://accessKeyId:secretAccessKey@s3Endpoint/bucket"
      },
      "outputs": {
        "hls": {
          "path": "/samplevideo/hls"
        },
        "mp4": {
          "path": "/samplevideo/mp4"
        }
      },
      "profiles": [
        {
          "bitrate": 3000000,
          "width": 1280,
          "name": "720p",
          "height": 720,
          "quality": 23,
          "fps": 30,
          "fpsDen": 1,
          "gop": 2,
          "profile": "H264Baseline",
          "encoder": "H.264"
        }
      ],
      "targetSegmentSizeSecs": 10,
      "creatorId": {
        "type": "unverified",
        "value": "<string>"
      },
      "c2pa": false
    },
    "clip": {
      "url": "https://asset-cdn.lp-playback.monster/hls/1bde4o2i6xycudoy/static360p0.mp4",
      "clipStrategy": {
        "startTime": "<unknown>",
        "endTime": "<unknown>",
        "playbackId": "<unknown>"
      },
      "catalystPipelineStrategy": "catalyst_ffmpeg",
      "sessionId": "d32ae9e6-c459-4931-9898-e86e2f5e7e16",
      "inputId": "09F8B46C-61A0-4254-9875-F71F4C605BC7"
    }
  },
  "status": {
    "phase": "pending",
    "updatedAt": 1587667174725,
    "progress": 0.5,
    "errorMessage": "Failed to upload file",
    "retries": 3
  },
  "output": {
    "upload": {
      "assetSpec": {
        "id": "09F8B46C-61A0-4254-9875-F71F4C605BC7",
        "source": {
          "type": "url",
          "url": "<string>",
          "gatewayUrl": "<string>",
          "encryption": "<unknown>"
        },
        "name": "filename.mp4",
        "type": "video",
        "playbackId": "eaw4nk06ts2d0mzb",
        "userId": "66E2161C-7670-4D05-B71D-DA2D6979556F",
        "playbackUrl": "https://livepeercdn.com/asset/ea03f37e-f861-4cdd-b495-0e60b6d753ad/index.m3u8",
        "downloadUrl": "https://livepeercdn.com/asset/eaw4nk06ts2d0mzb/video/download.mp4",
        "playbackPolicy": {
          "type": "webhook",
          "webhookId": "1bde4o2i6xycudoy",
          "webhookContext": {
            "streamerId": "my-custom-id"
          },
          "refreshInterval": 600,
          "allowedOrigins": [
            "<string>"
          ]
        },
        "creatorId": {
          "type": "unverified",
          "value": "user123"
        },
        "profiles": [
          {
            "bitrate": 3000000,
            "width": 1280,
            "name": "720p",
            "height": 720,
            "quality": 23,
            "fps": 30,
            "fpsDen": 1,
            "gop": 2,
            "profile": "H264Baseline",
            "encoder": "H.264"
          }
        ],
        "storage": {
          "ipfs": {
            "spec": {},
            "nftMetadata": {
              "cid": "<string>",
              "url": "<string>",
              "gatewayUrl": "<string>"
            },
            "updatedAt": 1587667174725
          },
          "status": {
            "phase": "ready",
            "tasks": {
              "pending": "09F8B46C-61A0-4254-9875-F71F4C605BC7",
              "last": "09F8B46C-61A0-4254-9875-F71F4C605BC7",
              "failed": "09F8B46C-61A0-4254-9875-F71F4C605BC7"
            },
            "progress": 0.5,
            "errorMessage": "Failed to update storage"
          }
        },
        "status": {
          "phase": "uploading",
          "updatedAt": 1587667174725,
          "progress": 123,
          "errorMessage": "<string>"
        },
        "projectId": "aac12556-4d65-4d34-9fb6-d1f0985eb0a9",
        "createdAt": 1587667174725,
        "createdByTokenName": "<string>",
        "size": 84934509,
        "hash": [
          {
            "hash": "9b560b28b85378a5004117539196ab24e21bbd75b0e9eb1a8bc7c5fd80dc5b57",
            "algorithm": "sha256"
          }
        ],
        "videoSpec": {
          "format": "mp4",
          "duration": 23.8328,
          "bitrate": 1000000,
          "tracks": [
            {
              "type": "video",
              "codec": "aac",
              "startTime": 23.8238,
              "duration": 23.8238,
              "bitrate": 1000000,
              "width": 1920,
              "height": 1080,
              "pixelFormat": "yuv420p",
              "fps": 30,
              "channels": 2,
              "sampleRate": 44100,
              "bitDepth": 16
            }
          ]
        }
      }
    },
    "export": {
      "ipfs": {
        "videoFileCid": "Qmabc123xyz341",
        "videoFileUrl": "ipfs://Qmabc123xyz341",
        "videoFileGatewayUrl": "https://gateway.ipfs.io/ipfs/Qmabc123xyz341",
        "nftMetadataCid": "Qmabc123xyz341",
        "nftMetadataUrl": "ipfs://Qmabc123xyz341",
        "nftMetadataGatewayUrl": "https://gateway.ipfs.io/ipfs/Qmabc123xyz341"
      }
    },
    "exportData": {
      "ipfs": {
        "cid": "Qmabc123xyz341"
      }
    }
  }
}

Crear trabajo de transcodificación

Autorizaciones

Authorization
string
header
requerido

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Cuerpo

application/json
input
object
requerido

URL input video

storage
object
requerido

Storage for the output files

outputs
object
requerido

Output formats

profiles
object[]
targetSegmentSizeSecs
number

How many seconds the duration of each output segment should be

creatorId
c2pa
boolean

Decides if the output video should include C2PA signature

Respuesta

Success

id
string

Task ID

Ejemplo:

"09F8B46C-61A0-4254-9875-F71F4C605BC7"

type
enum<string>

Type of the task

Opciones disponibles:
upload,
export,
export-data,
transcode-file,
clip
Ejemplo:

"upload"

createdAt
number

Timestamp (in milliseconds) at which task was created

Ejemplo:

1587667174725

scheduledAt
number

Timestamp (in milliseconds) at which the task was scheduled for execution (e.g. after file upload finished).

Ejemplo:

1587667174725

inputAssetId
string

ID of the input asset

Ejemplo:

"09F8B46C-61A0-4254-9875-F71F4C605BC7"

outputAssetId
string

ID of the output asset

Ejemplo:

"09F8B46C-61A0-4254-9875-F71F4C605BC7"

projectId
string

ID of the project

Ejemplo:

"09F8B46C-61A0-4254-9875-F71F4C605BC7"

requesterId
string

ID of the requester hash(IP + SALT + PlaybackId)

Ejemplo:

"09F8B46C-61A0-4254-9875-F71F4C605BC7"

params
object

Parameters of the task

status
object

Status of the task

output
object

Output of the task

Last modified on March 1, 2026