Skip to content

API 参考

所有方法均从 cut_cli 包导出,返回 Promise。

typescript
import {
  createDraft, getDraftInfo, listDrafts, easyCreateMaterial,
  zipDraft, uploadDraft,
  renderDraft, getCloudJob, getCloudJobs,
  runScheduledRenderOnce, startScheduledDraftRendering,
  addCaptions, getCaptions,
  addImages, getImages,
  addVideos, getVideos,
  addAudios, getAudios,
  addEffects, getEffects,
  addSticker, getStickers,
  addKeyframes, getKeyframes,
  addMasks, getMasks,
  addTextStyle,
  getAudioDuration, getImageAnimations,
  registerDraftUrl,
} from 'cut_cli';

时间单位:所有时间参数使用微秒(μs),1秒 = 1,000,000


草稿管理

createDraft(params?)

创建新的剪映草稿。会在 draftsDir 下创建一个完整的剪映标准草稿文件夹,包含模板文件和 resources/ 媒体目录,可直接被剪映桌面端打开。

参数 CreateDraftInput

字段类型必填默认值说明
widthnumber1080画布宽度(像素)
heightnumber1920画布高度(像素)
namestring自动生成草稿名称
userIdstring-用户 ID

返回 Promise<CreateDraftOutput>

字段类型说明
draftIdstring草稿唯一标识
filePathstring草稿文件夹路径

示例

typescript
const draft = await createDraft({ width: 1080, height: 1920 });
console.log(draft.draftId);  // "a1b2c3d4-..."
console.log(draft.filePath); // "~/Movies/JianyingPro Drafts/a1b2c3d4-.../"

getDraftInfo(params)

获取草稿的基本信息。

参数 { draftId: string }

字段类型必填说明
draftIdstring草稿 ID

返回 Promise<DraftInfo>

字段类型说明
draftIdstring草稿 ID
canvasWidthnumber画布宽度
canvasHeightnumber画布高度
durationnumber总时长(μs)
fpsnumber帧率
trackSummary{ id, type, segmentCount }[]轨道摘要
materialSummaryobject素材统计(videos/audios/texts/stickers/effects)

示例

typescript
const info = await getDraftInfo({ draftId: 'abc123' });
console.log(`时长: ${info.duration / 1000000}秒`);

listDrafts()

列出当前草稿目录下的所有剪映草稿,按修改时间倒序返回。

返回 Promise<DraftListItem[]>

字段类型说明
draftIdstring草稿 ID 或草稿目录名
filePathstring草稿文件夹路径
namestring草稿名称
durationnumber草稿总时长(μs)
canvasWidth / canvasHeightnumber画布尺寸
createdAt / modifiedAtnumber创建和修改时间戳

示例

typescript
const drafts = await listDrafts();
console.log(drafts[0]?.draftId);

easyCreateMaterial(params)

按音频时长自动铺设素材,将图片/视频/文字铺满整个音频时长。传入的媒体 URL 会自动下载到草稿的 resources/ 目录。

参数 EasyCreateMaterialInput

字段类型必填说明
draftIdstring草稿 ID
audioUrlstring音频 URL(自动下载)
imgUrlstring图片 URL(自动下载)
videoUrlstring视频 URL(自动下载)
textstring文字内容
textColorstring文字颜色
fontSizenumber字号
textTransformYnumber文字 Y 轴偏移

返回 Promise<EasyCreateMaterialOutput>

字段类型说明
draftIdstring草稿 ID
messagestring操作结果信息

示例

typescript
await easyCreateMaterial({
  draftId: 'abc123',
  audioUrl: 'https://example.com/audio.mp3',
  imgUrl: 'https://example.com/bg.jpg',
  text: '欢迎观看',
});

zipDraft(params)

将本地剪映草稿文件夹打包为 zip。

参数 ZipDraftInput

字段类型必填说明
draftIdstring草稿 ID 或草稿名称
outputPathstring输出 zip 路径;不传则写到草稿目录同级

返回 Promise<ZipDraftOutput>

字段类型说明
messagestring状态信息
zipPathstringzip 文件路径
sizenumberzip 文件大小(字节)

示例

typescript
const zip = await zipDraft({ draftId: 'abc123' });
console.log(zip.zipPath);

uploadDraft(params)

打包并上传草稿 zip,返回云端下载链接。需要先通过 cutcli auth set 保存 API Key,或在当前进程设置 CUTCLI_API_KEY

参数 UploadDraftInput

字段类型必填说明
draftIdstring草稿 ID 或草稿名称
zipPathstring已有 zip 路径;不传则自动调用 zipDraft

返回 Promise<UploadDraftOutput>

字段类型说明
messagestring状态信息
draftUploadIdstring云端草稿上传记录 ID
downloadUrlstring草稿 zip 下载链接
zipPathstring本地 zip 路径
sizenumberzip 文件大小(字节)

示例

typescript
const upload = await uploadDraft({ draftId: 'abc123' });
console.log(upload.downloadUrl);

云渲染

renderDraft(params)

上传草稿并创建云渲染任务。未传 zipPath 时会自动打包草稿;设置 wait: true 时会继续轮询任务,直到完成、失败或超时。

参数 RenderDraftInput

字段类型必填说明
draftIdstring草稿 ID 或草稿名称
zipPathstring已有 zip 路径
waitboolean是否等待渲染结果
pollIntervalMsnumber等待时的轮询间隔,默认 15000
timeoutMsnumber等待超时,默认 1800000

返回 Promise<RenderDraftOutput>

字段类型说明
messagestring状态信息
draftUploadIdstring云端草稿上传记录 ID
downloadUrlstring草稿 zip 下载链接
jobIdstring云渲染任务 ID
statusstring当前任务状态
videoUrlstring渲染完成后的视频链接
failureReasonstring失败原因
renderJobRenderJob云渲染任务对象
resultCommandstring查询结果的 CLI 命令

示例

typescript
const result = await renderDraft({ draftId: 'abc123' });
console.log(result.renderJob.id, result.renderJob.status);

const completed = await renderDraft({ draftId: 'abc123', wait: true });
console.log(completed.videoUrl);

getCloudJobs(params?)

查询当前用户的云渲染任务列表。

参数 { status?: string }

字段类型必填说明
statusstring按状态筛选,如 queuedrenderingcompletedfailed

返回 Promise<RenderJob[]>

字段类型说明
idstring任务 ID
statusstring任务状态
draft_upload_idstring草稿上传记录 ID
draft_download_urlstring草稿 zip 下载链接
video_urlstring渲染完成后的成片地址
failure_reasonstring失败原因

示例

typescript
const jobs = await getCloudJobs({ status: 'queued' });
console.log(jobs.length);

getCloudJob(params)

查询单个云渲染任务详情和事件记录。

参数 { id: string }

字段类型必填说明
idstring云渲染任务 ID

返回 Promise<RenderJobDetail>

字段类型说明
renderJobRenderJob任务详情
eventsArray<Record<string, unknown>>任务事件记录

示例

typescript
const detail = await getCloudJob({ id: 'job_xxx' });
console.log(detail.renderJob.video_url);

runScheduledRenderOnce(options?, runNumber?)

创建一个草稿、可选添加默认字幕、上传并提交一次云渲染。适合把定时逻辑交给外部调度系统时调用。

常用参数 ScheduledRenderOptions

字段类型默认值说明
width / heightnumber1080 / 1920画布尺寸
namePrefixstringauto_render草稿名称前缀
captionbooleantrue是否添加默认字幕
captionTextstringAuto render #{count}\n{time}字幕模板,支持 {count}{run}{time}{iso}{draftId}
durationSecondsnumber5默认字幕时长
fontSizenumber12默认字幕字号
textColorstring#ffffff默认字幕颜色
onEventfunction-监听草稿创建、任务提交等事件

示例

typescript
const run = await runScheduledRenderOnce({
  namePrefix: 'smoke_test',
  captionText: 'Render #{count} {time}',
});
console.log(run.renderJob.id);

startScheduledDraftRendering(options?)

启动内置定时循环,按固定间隔创建草稿、上传并提交云渲染。默认立即执行一次,然后每 5 分钟执行一次。

常用参数 ScheduledRenderOptions

字段类型默认值说明
intervalMsnumber300000执行间隔,单位毫秒
countnumber无限执行次数
immediatebooleantrue是否立即执行第一次
signalAbortSignal-用于停止定时循环
onEventfunction-监听 scheduler-startedrun-startedrender-submittedrun-failed 等事件

返回 Promise<ScheduledRenderSummary>

字段类型说明
completedRunsnumber已完成次数
successfulRunsnumber成功次数
failedRunsnumber失败次数
startedAt / stoppedAtstring开始和停止时间

示例

typescript
await startScheduledDraftRendering({
  intervalMs: 5 * 60 * 1000,
  count: 1,
  onEvent: (event) => console.log(event.type),
});

字幕

addCaptions(params)

向草稿批量添加字幕。

参数 AddCaptionsInput

字段类型必填说明
draftIdstring草稿 ID
captionsCaptionItem[] | string字幕数组或 JSON 字符串
fontstring字体名称
alignmentnumber对齐方式
alphanumber透明度(0-1)
textColorstring文字颜色
fontSizenumber字号
boldboolean加粗
italicboolean斜体
underlineboolean下划线
textEffectstring文字特效
letterSpacingnumber字间距
lineSpacingnumber行间距
borderColorstring描边颜色
styleTextboolean是否应用样式
hasShadowboolean是否有阴影
shadowInfoobject阴影配置(见下方)
scaleXnumberX 轴缩放
scaleYnumberY 轴缩放
transformXnumberX 轴位移
transformYnumberY 轴位移

shadowInfo 对象:

字段类型说明
shadowColorstring阴影颜色
shadowAlphanumber阴影透明度
shadowDiffusenumber阴影扩散
shadowDistancenumber阴影距离
shadowAnglenumber阴影角度

CaptionItem 对象:

字段类型必填说明
textstring字幕文本
startnumber开始时间(μs)
endnumber结束时间(μs)
keywordstring关键词高亮文本
keywordColorstring关键词颜色
fontSizenumber单条字号
keywordFontSizenumber关键词字号
inAnimationstring入场动画名
outAnimationstring出场动画名
loopAnimationstring循环动画名
inAnimationDurationnumber入场动画时长(μs)
outAnimationDurationnumber出场动画时长(μs)
loopAnimationDurationnumber循环动画时长(μs)

返回 Promise<AddCaptionsOutput>

字段类型说明
draftIdstring草稿 ID
trackIdstring轨道 ID
textIdsstring[]文本素材 ID 列表
segmentIdsstring[]片段 ID 列表
segmentInfosSegmentInfo[]片段详情(id/start/end)

示例

typescript
const result = await addCaptions({
  draftId: 'abc123',
  captions: [
    { text: '第一句话', start: 0, end: 3000000 },
    { text: '第二句话', start: 3000000, end: 6000000 },
  ],
  fontSize: 8,
  textColor: '#FFFFFF',
  bold: true,
});

getCaptions(params)

获取草稿中的所有字幕。

参数 { draftId: string }

返回 Promise<CaptionInfo[]>

字段类型说明
segmentIdstring片段 ID
trackIdstring轨道 ID
textstring字幕文本
startnumber开始时间(μs)
durationnumber持续时间(μs)
materialIdstring素材 ID

图片

addImages(params)

向草稿添加图片素材。传入的图片 URL 会自动下载到草稿的 resources/ 目录,工程 JSON 中使用本地路径引用。

参数 AddImagesInput

字段类型必填说明
draftIdstring草稿 ID
imageInfosImageItem[] | string图片数组或 JSON 字符串
alphanumber透明度(0-1)
scaleXnumberX 轴缩放
scaleYnumberY 轴缩放
transformXnumberX 轴位移
transformYnumberY 轴位移

ImageItem 对象:

字段类型必填说明
imageUrlstring图片 URL(自动下载到本地)
widthnumber宽度(像素,省略时自动识别)
heightnumber高度(像素,省略时自动识别)
startnumber开始时间(μs)
endnumber结束时间(μs)
maskstring | object图片蒙版,支持 线性/镜面/圆形/矩形/星形/爱心,默认 圆形
maskX / maskYnumber蒙版中心偏移(像素,基于图片中心)
maskWidth / maskHeightnumber蒙版宽高(像素)
maskFeathernumber蒙版羽化(0-100)
maskExpansionnumber蒙版扩展(0-100)
maskRotationnumber蒙版旋转角度
maskInvertboolean反转蒙版
maskRoundCornernumber矩形蒙版圆角(0-100)
maskAspectRationumber形状宽高比(默认使用 CapCut 对应蒙版的原始值)
inAnimationstring入场动画名
outAnimationstring出场动画名
loopAnimationstring循环动画名
inAnimationDurationnumber入场动画时长(μs)
outAnimationDurationnumber出场动画时长(μs)
loopAnimationDurationnumber循环动画时长(μs)
transitionstring转场效果名
transitionDurationnumber转场时长(μs)

返回 Promise<AddImagesOutput>

字段类型说明
draftIdstring草稿 ID
trackIdstring轨道 ID
imageIdsstring[]图片素材 ID 列表
segmentIdsstring[]片段 ID 列表
maskIdsstring[]本次创建的图片蒙版 ID 列表
segmentInfosSegmentInfo[]片段详情

示例

typescript
const result = await addImages({
  draftId: 'abc123',
  imageInfos: [
    {
      imageUrl: 'https://example.com/1.jpg',
      width: 1920,
      height: 1080,
      start: 0,
      end: 5000000,
      mask: '圆形',
      maskWidth: 720,
      maskHeight: 720,
      maskFeather: 12,
    },
    { imageUrl: 'https://example.com/2.jpg', width: 1920, height: 1080, start: 5000000, end: 10000000 },
  ],
});

getImages(params)

获取草稿中的所有图片素材。

参数 { draftId: string }

返回 Promise<ImageInfo[]>

字段类型说明
segmentIdstring片段 ID
trackIdstring轨道 ID
materialUrlstring素材本地路径(占位符格式)
widthnumber宽度
heightnumber高度
startnumber开始时间(μs)
durationnumber持续时间(μs)
materialIdstring素材 ID

视频

addVideos(params)

向草稿添加视频素材,支持变速和曲线变速。传入的视频 URL 会自动下载到草稿的 resources/ 目录。

参数 AddVideosInput

字段类型必填说明
draftIdstring草稿 ID
videoInfosVideoItem[] | string视频数组或 JSON 字符串
alphanumber透明度(0-1)
scaleXnumberX 轴缩放
scaleYnumberY 轴缩放
transformXnumberX 轴位移
transformYnumberY 轴位移
sceneTimelinesSceneTimeline[]场景时间线(变速/曲线变速)

VideoItem 对象:

字段类型必填说明
videoUrlstring视频 URL(自动下载到本地)
widthnumber宽度(像素)
heightnumber高度(像素)
durationnumber视频原始时长(μs)
startnumber在时间线的开始时间(μs)
endnumber在时间线的结束时间(μs)
maskstring遮罩,支持 线性/镜面/圆形/矩形/星形/爱心,默认 圆形
transitionstring转场效果名
transitionDurationnumber转场时长(μs)
volumenumber音量

SceneTimeline 对象:

字段类型必填说明
startnumber开始时间(μs)
endnumber结束时间(μs)
curveSpeedstring曲线变速配置

返回 Promise<AddVideosOutput>

字段类型说明
draftIdstring草稿 ID
trackIdstring轨道 ID
videoIdsstring[]视频素材 ID 列表
segmentIdsstring[]片段 ID 列表

示例

typescript
const result = await addVideos({
  draftId: 'abc123',
  videoInfos: [
    {
      videoUrl: 'https://example.com/video.mp4',
      width: 1920, height: 1080,
      duration: 10000000,
      start: 0, end: 10000000,
    },
  ],
});

getVideos(params)

获取草稿中的所有视频片段(不含图片类型)。

参数 { draftId: string }

返回 Promise<VideoInfo[]>

字段类型说明
segmentIdstring片段 ID
trackIdstring轨道 ID
materialUrlstring素材本地路径(占位符格式)
widthnumber宽度
heightnumber高度
startnumber开始时间(μs)
durationnumber持续时间(μs)
materialIdstring素材 ID

音频

addAudios(params)

向草稿添加音频素材。传入的音频 URL 会自动下载到草稿的 resources/ 目录。

参数 AddAudiosInput

字段类型必填说明
draftIdstring草稿 ID
audioInfosAudioItem[] | string音频数组或 JSON 字符串

AudioItem 对象:

字段类型必填说明
audioUrlstring音频 URL(自动下载到本地)
durationnumber音频时长(μs)
startnumber开始时间(μs)
endnumber结束时间(μs)
audioEffectstring音效名称
volumenumber音量

返回 Promise<AddAudiosOutput>

字段类型说明
draftIdstring草稿 ID
trackIdstring轨道 ID
audioIdsstring[]音频素材 ID 列表

示例

typescript
const result = await addAudios({
  draftId: 'abc123',
  audioInfos: [
    {
      audioUrl: 'https://example.com/bgm.mp3',
      duration: 60000000,
      start: 0,
      end: 60000000,
      volume: 0.8,
    },
  ],
});

getAudios(params)

获取草稿中的所有音频片段。

参数 { draftId: string }

返回 Promise<AudioInfo[]>

字段类型说明
segmentIdstring片段 ID
trackIdstring轨道 ID
materialUrlstring素材本地路径(占位符格式)
startnumber开始时间(μs)
durationnumber持续时间(μs)
volumenumber音量
materialIdstring素材 ID

特效

addEffects(params)

向草稿添加视频特效。

参数 AddEffectsInput

字段类型必填说明
draftIdstring草稿 ID
effectInfosEffectItem[] | string特效数组或 JSON 字符串

EffectItem 对象:

字段类型必填说明
effectIdstring特效 ID,和 effectTitle 二选一
effectTitlestring特效名称,和 effectId 二选一
startnumber开始时间(μs)
endnumber结束时间(μs)
effectTypescreen | face特效类型,默认 screen

返回 Promise<AddEffectsOutput>

字段类型说明
draftIdstring草稿 ID
trackIdstring轨道 ID
effectIdsstring[]特效素材 ID 列表
segmentIdsstring[]片段 ID 列表

示例

typescript
const result = await addEffects({
  draftId: 'abc123',
  effectInfos: [
    { effectId: '7399468886309162246', start: 0, end: 3000000 },
    { effectTitle: '模糊', start: 0, end: 3000000 },
  ],
});

getEffects(params)

获取草稿中的所有特效。

参数 { draftId: string }

返回 Promise<EffectInfo[]>

字段类型说明
segmentIdstring片段 ID
trackIdstring轨道 ID
startnumber开始时间(μs)
durationnumber持续时间(μs)
materialIdstring素材 ID

贴纸

addSticker(params)

向草稿添加贴纸。

参数 AddStickerInput

字段类型必填说明
draftIdstring草稿 ID
stickerIdstring贴纸资源 ID
startnumber开始时间(μs)
endnumber结束时间(μs)
scalenumber缩放比例
transformXnumberX 轴位移
transformYnumberY 轴位移

返回 Promise<AddStickerOutput>

字段类型说明
draftIdstring草稿 ID

示例

typescript
await addSticker({
  draftId: 'abc123',
  stickerId: 'sticker_001',
  start: 0,
  end: 5000000,
  scale: 1.5,
});

getStickers(params)

获取草稿中的所有贴纸。

参数 { draftId: string }

返回 Promise<StickerInfo[]>

字段类型说明
segmentIdstring片段 ID
trackIdstring轨道 ID
startnumber开始时间(μs)
durationnumber持续时间(μs)
materialIdstring素材 ID

关键帧

addKeyframes(params)

为草稿中的片段添加关键帧动画。

参数 AddKeyframesInput

字段类型必填说明
draftIdstring草稿 ID
keyframes(KeyframeItem | KeyframeGroup)[] | string关键帧数组或 JSON 字符串

KeyframeItem 对象:

字段类型必填说明
segmentIdstring所属片段 ID
propertystring属性名(如 scale_xposition_x
offsetnumber在片段内的时间偏移(μs)
valuenumber属性值

也支持按属性分组的 KeyframeGroup

字段类型必填说明
segmentIdstring所属片段 ID
propertystring属性名(如 scale_xposition_x
keyframesarray关键帧点数组,点内使用 time/offsetvalue

返回 Promise<AddKeyframesOutput>

字段类型说明
draftIdstring草稿 ID

示例

typescript
await addKeyframes({
  draftId: 'abc123',
  keyframes: [
    { segmentId: 'seg_001', property: 'scale_x', offset: 0, value: 1.0 },
    { segmentId: 'seg_001', property: 'scale_x', offset: 3000000, value: 1.5 },
  ],
});

await addKeyframes({
  draftId: 'abc123',
  keyframes: [
    {
      segmentId: 'seg_001',
      property: 'position_x',
      keyframes: [
        { time: 0, value: -0.5, easing: 'ease_in_out' },
        { time: 3000000, value: 0.5, easing: 'linear' },
      ],
    },
  ],
});

getKeyframes(params)

获取指定片段的关键帧列表。

参数 { draftId: string; segmentId: string }

字段类型必填说明
draftIdstring草稿 ID
segmentIdstring片段 ID

返回 Promise<KeyframeInfo[]>

字段类型说明
propertystring属性名
timeOffsetnumber时间偏移(μs)
valuenumber属性值

遮罩

addMasks(params)

为草稿中的多个片段批量添加遮罩。

参数 AddMasksInput

字段类型必填默认值说明
draftIdstring草稿 ID
segmentIdsstring[]目标片段 ID 列表
namestring线性遮罩类型名称
Xnumber中心 X 坐标
Ynumber中心 Y 坐标
widthnumber宽度
heightnumber高度
feathernumber羽化值
rotationnumber旋转角度
invertboolean反转遮罩
roundCornernumber圆角

返回 Promise<AddMasksOutput>

字段类型说明
draftIdstring草稿 ID

示例

typescript
await addMasks({
  draftId: 'abc123',
  segmentIds: ['seg_001', 'seg_002'],
  name: '线性',
  feather: 0.5,
  rotation: 45,
});

getMasks(params)

获取草稿中的遮罩信息。

参数 { draftId: string; segmentId?: string }

字段类型必填说明
draftIdstring草稿 ID
segmentIdstring过滤指定片段

返回 Promise<MaskInfo[]>

字段类型说明
idstring遮罩 ID
namestring遮罩类型名称
resourceTypestring资源类型
configobject遮罩配置
config.centerXnumber中心 X
config.centerYnumber中心 Y
config.widthnumber宽度
config.heightnumber高度
config.feathernumber羽化
config.rotationnumber旋转
config.invertboolean是否反转
config.roundCornernumber圆角

文字样式

addTextStyle(params)

生成文字样式 JSON(不写入草稿),可用于关键词高亮等场景。

参数 AddTextStyleInput

字段类型必填说明
textstring文字内容
keywordstring关键词(多个用 | 分隔)
keywordColorstring关键词颜色
fontSizenumber默认字号
keywordFontSizenumber关键词字号

返回 Promise<AddTextStyleOutput>

字段类型说明
textStylestring生成的样式 JSON 字符串

示例

typescript
const { textStyle } = await addTextStyle({
  text: '欢迎来到我的世界',
  keyword: '世界',
  keywordColor: '#FF0000',
  keywordFontSize: 12,
});

工具查询

getAudioDuration(params)

获取远程音频文件的时长。

参数 GetAudioDurationInput

字段类型必填说明
urlstring音频文件 URL

返回 Promise<GetAudioDurationOutput>

字段类型说明
messagestring状态信息
durationnumber音频时长(μs)

示例

typescript
const { duration } = await getAudioDuration({ url: 'https://example.com/audio.mp3' });
console.log(`时长: ${duration / 1000000}秒`);

getImageAnimations(params?)

获取可用的图片动画效果列表。

参数 GetImageAnimationsInput(可选)

字段类型必填默认值说明
modenumber0模式
type'in' | 'out' | 'loop''in'动画类型

返回 Promise<GetImageAnimationsOutput>

字段类型说明
effectsany[]动画效果列表

示例

typescript
const { effects } = await getImageAnimations({ type: 'in' });
console.log(`共 ${effects.length} 个入场动画`);

工具函数

registerDraftUrl(draftId, ossUrl)

手动注册草稿 ID 与 OSS URL 的映射关系,之后可用短 draftId 加载草稿。

参数

字段类型必填说明
draftIdstring草稿 ID
ossUrlstringOSS 存储地址

返回 void

示例

typescript
registerDraftUrl('abc123', 'https://oss.example.com/draft/abc123/draft_content.json');

类型导出

所有 TypeScript 类型接口均从包中导出,可直接引用:

typescript
import type {
  CreateDraftInput, CreateDraftOutput, DraftInfo,
  EasyCreateMaterialInput, EasyCreateMaterialOutput,
  CaptionItem, AddCaptionsInput, AddCaptionsOutput, CaptionInfo,
  ImageItem, AddImagesInput, AddImagesOutput, ImageInfo,
  VideoItem, SceneTimeline, AddVideosInput, AddVideosOutput, VideoInfo,
  AudioItem, AddAudiosInput, AddAudiosOutput, AudioInfo,
  EffectItem, AddEffectsInput, AddEffectsOutput, EffectInfo,
  AddStickerInput, AddStickerOutput, StickerInfo,
  KeyframeItem, AddKeyframesInput, AddKeyframesOutput, KeyframeInfo,
  AddMasksInput, AddMasksOutput, MaskInfo,
  AddTextStyleInput, AddTextStyleOutput,
  GetAudioDurationInput, GetAudioDurationOutput,
  GetImageAnimationsInput, GetImageAnimationsOutput,
  SegmentInfo,
} from 'cut_cli';