Skip to main content
프리셋은 어떤 프로젝트나 내보내기에 적용할 수 있는 재사용 가능한 렌더 구성(배경, 자막 스타일, 레이아웃)입니다. 여러 트랙에서 일관된 룩을 유지하고 싶을 때 프리셋을 사용하세요. 전체 preset 형태와 모든 enum 기반 옵션은 Render settings reference를 참고하세요.

client.presets.list(options?)

인증된 계정이 소유한 모든 프리셋을 나열합니다.
const presets = await client.presets.list();
presets.forEach((p) => console.log(p.id, p.name, p.isDefault));

client.presets.get(presetId, options?)

단일 프리셋을 가져옵니다.
const preset = await client.presets.get("preset_abc123");

client.presets.create(body, options?)

새 프리셋을 생성합니다.
const preset = await client.presets.create({
  name: "Neon Night",
  preset: {
    background: {
      type: "gradient",
      colors: ["#12001f", "#2f0a57"],
      angle: 90,
    },
    singerTextStyles: {
      0: {
        fontFamily: "Inter",
        textColor: "#00f5ff",
        effectColor: "#ff4fd8",
      },
    },
  },
  isDefault: false,
});
name
string
required
Youka UI에 표시되는 표시 이름입니다.
preset
KaraokePreset
required
전체 프리셋 본문입니다. 사람이 읽기 쉬운 필드 맵은 Render settings reference를 사용하고, 기계 판독용 스키마는 KaraokePresetSchema.toJSONSchema()를 사용하세요.
isDefault
boolean
새 프리셋을 계정 기본값으로 지정합니다. 기본 프리셋은 한 번에 하나만 설정할 수 있습니다.
안전한 재시도를 위해 멱등성 키와 함께 사용하세요:
const preset = await client.presets.create(body, {
  idempotencyKey: "create-neon-night-v1",
});

client.presets.update(presetId, body, options?)

기존 프리셋을 패치합니다. name, preset, isDefault 중 어떤 하위 집합이든 전달할 수 있습니다.
const updated = await client.presets.update("preset_abc123", {
  name: "Neon Night v2",
  preset: {
    singerTextStyles: {
      0: { textColor: "#ff2a2a" },
    },
  },
});

client.presets.delete(presetId, options?)

프리셋을 삭제합니다.
await client.presets.delete("preset_abc123", {
  idempotencyKey: "delete-preset_abc123",
});
프리셋을 삭제해도 이전에 해당 프리셋으로 렌더링된 프로젝트나 내보내기가 삭제되지는 않습니다. 삭제된 프리셋을 참조하는 향후 내보내기는 실패합니다.

client.presets.setDefault(presetId, options?)

새 프로젝트의 기본값으로 프리셋을 지정합니다. 이는 client.presets.update(presetId, { isDefault: true })를 편의상 감싼 래퍼입니다.
await client.presets.setDefault("preset_abc123");
새 기본값을 설정하면 이전 기본값은 자동으로 해제됩니다.

유효한 필드 찾기

SDK는 프리셋 본문을 검증하는 Zod 스키마를 내보냅니다. 에이전트와 폼 빌더를 위해 런타임에 JSON Schema로 변환하세요:
import { KaraokePresetSchema } from "@youka/sdk";

const jsonSchema = KaraokePresetSchema.toJSONSchema();
console.log(jsonSchema);
에이전트 작성자: 프리셋을 변경하기 전에 이 스키마를 호출해 모델이 정확한 필드 이름과 값 타입을 알 수 있도록 하세요.
사람이 읽기 쉬운 참고 자료:

프리셋 적용하기

프리셋은 다음 세 지점에서 적용할 수 있습니다:
await client.projects.create({
  source: { type: "path", path: "./song.mp3" },
  presetId: "preset_abc123",
});

다음 단계