Livepeer Studio

Export an Asset to IPFS

Export a video Asset from Livepeer to IPFS on the POST /api/asset/$ASSET_ID/export endpoint. This request spawns an export task.


curl --location --request POST '$ASSET_ID/export' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "ipfs": {}

JavaScript + axios

const axios = require("axios");

  .post("$ASSET_ID/export", {
    headers: {
      Authorization: "Bearer {api_key}",
      "Content-Type": "application/json",
    data: JSON.stringify({
      ipfs: {},
  .then((res) => {
  .catch((error) => console.log(error));
ipfsobjectDefined properties to export the `Asset` on IPFS
ipfs.pinataobjectCustom credentials for the Piñata service. Must have either a JWT or an API key and an API secret. (Optional)
ipfs.pinata.jwtstringWill be added to the `Authorization` header as a Bearer token.
ipfs.pinata.apiKeystringWill be added to the `pinata_api_key` header.
ipfs.pinata.apiSecretstringWill be added to the `pinata_secret_api_key` header.
ipfs.nftMetadataobjectAdditional data to add to the NFT metadata also exported to IPFS. Will be deep merged with the default metadata regularly exported.
customobjectDefine properties to export the `Asset` on a custom URL. (Optional)
custom.urlstringURL where to export the `Asset`
custom.methodstringAlternative method to use on the export request. Will use PUT if not specified (Optional)
custom.headersobjectAdditional headers to add to the export request (Optional)

You can then check the result of the export through the tasks API, by querying for the specific task returned as a response.