跳转到主要内容
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"
      }
    }
  }
}

创建转码任务

授权

Authorization
string
header
必填

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

请求体

application/json
input
object
必填

URL input video

storage
object
必填

Storage for the output files

outputs
object
必填

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

响应

Success

id
string

Task ID

示例:

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

type
enum<string>

Type of the task

可用选项:
upload,
export,
export-data,
transcode-file,
clip
示例:

"upload"

createdAt
number

Timestamp (in milliseconds) at which task was created

示例:

1587667174725

scheduledAt
number

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

示例:

1587667174725

inputAssetId
string

ID of the input asset

示例:

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

outputAssetId
string

ID of the output asset

示例:

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

projectId
string

ID of the project

示例:

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

requesterId
string

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

示例:

"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