Skip to main content
As exportações renderizam um karaokê finalizado como um arquivo de vídeo. Use client.exports.create(...) como ponto de entrada principal. Escolha target: "local" quando quiser que o SDK renderize diretamente na máquina atual; caso contrário, a exportação na nuvem é o padrão.

client.exports.create(projectId, input, options?)

Escolha o alvo da exportação com target: "cloud" | "local".
const cloud = await client.exports.create("prj_abc123", {
  resolution: "1080p",
  quality: "high",
});
// => ExportOperation

const local = await client.exports.create("prj_abc123", {
  target: "local",
  resolution: "1080p",
  quality: "high",
  outputPath: "./karaoke.mp4",
});
// => { outputPath, fileSize, duration, ... }
Use a nuvem quando quiser uma exportação assíncrona gerenciada. Use local quando quiser renderizar diretamente na máquina do chamador.

Campos comuns

CampoTipoDescrição
resolution"540p" | "720p" | "1080p"Resolução de saída.
quality"low" | "average" | "high"Qualidade de codificação.
playbackRatenumberMultiplicador de velocidade (ex.: 0.9).
toneFrequencynumberDeslocamento de tom em semitons.
transparentbooleanRenderiza com um fundo transparente.
presetIdstringAplica um preset antes de renderizar.
stemVolumesRecord<string, number>Substituições de volume por stem, indexadas pelo id do stem.
settingsOverrideobjectAjusta as configurações do projeto apenas para esta exportação.

Exemplo com volumes de stems

const result = await client.exports.create("prj_abc123", {
  resolution: "1080p",
  quality: "high",
  stemVolumes: {
    vocals: 0,
    instrumental: 1,
    backing: 0.5,
  },
});

Exemplo com substituição de configurações

const result = await client.exports.create("prj_abc123", {
  resolution: "1080p",
  settingsOverride: {
    trim: { startSeconds: 5, endSeconds: 180 },
    style: {
      background: { type: "color", color: "#101010" },
    },
  },
});
Veja Render settings reference para o formato completo de settingsOverride.

client.exports.quote(projectId, input, options?)

Faça a cotação dos créditos necessários para uma exportação na nuvem sem iniciar a exportação.
const quote = await client.exports.quote("prj_abc123", {
  resolution: "1080p",
  quality: "high",
  transparent: false,
});

console.log(quote.creditsRequired, quote.sufficientBalance);
As exportações locais rodam na máquina do chamador e não usam créditos de exportação na nuvem, então quote(...) é apenas para exportações na nuvem.

client.exports.list(projectId, input?, options?)

Liste exportações de um projeto, com paginação.
const exports = await client.exports.list("prj_abc123", {
  page: 1,
  pageSize: 50,
});
page
number
Número da página. O padrão no servidor é 1.
pageSize
number
Tamanho da página. O padrão é 100. Máximo 100.

client.exports.get(exportId, options?)

Busque uma exportação apenas pelo ID, sem saber o projeto pai.
const exported = await client.exports.get("exp_xyz");

Exportação local

const result = await client.exports.create("prj_abc123", {
  target: "local",
  resolution: "1080p",
  quality: "high",
  outputPath: "./karaoke.mp4",
  onProgress(progress) {
    console.log(progress.stage, progress.percent);
  },
});

console.log(result.outputPath);
Use onDependencyProgress se você quiser atualizações enquanto a cadeia de ferramentas de renderização local estiver sendo instalada ou verificada.

client.exports.prepareLocal(projectId, body, options?)

Retorna o payload preparado necessário para renderizar uma exportação localmente. Use isso ao integrar com @youka/remotion ou outro renderizador local. O servidor retorna as entradas da composição, URLs de assets e parâmetros de renderização sem enfileirar uma renderização na nuvem.
const payload = await client.exports.prepareLocal("prj_abc123", {
  resolution: "1080p",
  quality: "high",
});

// Hand payload off to your local renderer
await renderLocally(payload);
client.exports.prepareLocal(...) não inicia uma renderização na nuvem. Nenhuma computação faturável é consumida do lado da Youka.

Aguardando uma exportação

Exportações na nuvem são assíncronas. Use client.exports.wait(...):
const operation = await client.exports.create("prj_abc123", {
  resolution: "1080p",
});

const finalized = await client.exports.wait(operation, {
  pollIntervalMs: 3_000,
});
console.log("Download from", finalized.url);

Baixando o resultado

Exportações na nuvem finalizam com uma url assinada. Use o helper integrado para transmitir o arquivo para o disco. output pode ser um diretório ou um caminho completo de arquivo, e filename é opcional:
await client.exports.download(finalized, {
  output: "./exports",
});

Próximos passos

  • Tasks — handles de operação e polling avançado de tarefas
  • Presets — configurações de renderização reutilizáveis
  • Project settings — ajuste das configurações ativas de um projeto