cutsdk 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +27 -24
  2. package/dist/api/cloud/render-draft.d.ts +5 -2
  3. package/dist/api/cloud/render-draft.d.ts.map +1 -1
  4. package/dist/api/cloud/render-draft.js +117 -15
  5. package/dist/api/cloud/render-draft.js.map +1 -1
  6. package/dist/api/cloud/submit-video-render-task.js +2 -2
  7. package/dist/api/cloud/submit-video-render-task.js.map +1 -1
  8. package/dist/api/cloud/upload-draft.d.ts.map +1 -1
  9. package/dist/api/cloud/upload-draft.js +0 -2
  10. package/dist/api/cloud/upload-draft.js.map +1 -1
  11. package/dist/api/draft-spec/create-and-render-draft.d.ts.map +1 -1
  12. package/dist/api/draft-spec/create-and-render-draft.js +0 -1
  13. package/dist/api/draft-spec/create-and-render-draft.js.map +1 -1
  14. package/dist/api/query/get-text-effects.d.ts +4 -0
  15. package/dist/api/query/get-text-effects.d.ts.map +1 -0
  16. package/dist/api/query/get-text-effects.js +36 -0
  17. package/dist/api/query/get-text-effects.js.map +1 -0
  18. package/dist/api/setup/templates/project/.agents/skills/cut-draft/SKILL.md +48 -33
  19. package/dist/api/setup/templates/project/{cut-sdk → cutcli-docs}/.env.example +0 -1
  20. package/dist/api/setup/templates/project/cutcli-docs/README.md +95 -0
  21. package/dist/api/setup/templates/project/{cut-sdk → cutcli-docs}/api-cheatsheet.md +29 -5
  22. package/dist/api/setup/templates/project/{cut-sdk → cutcli-docs}/examples/03-create-and-render.ts +1 -2
  23. package/dist/api/setup/templates/project/cutcli-docs/examples/04-cli-examples.md +109 -0
  24. package/dist/api/setup/templates/project/{cut-sdk → cutcli-docs}/quickstart.md +22 -2
  25. package/dist/config/index.d.ts +1 -0
  26. package/dist/config/index.d.ts.map +1 -1
  27. package/dist/config/index.js +3 -2
  28. package/dist/config/index.js.map +1 -1
  29. package/dist/draft/drafts/Effects.d.ts.map +1 -1
  30. package/dist/draft/drafts/Effects.js +0 -1
  31. package/dist/draft/drafts/Effects.js.map +1 -1
  32. package/dist/index.d.ts +6 -0
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +5 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/shared/cloud-client.d.ts +2 -7
  37. package/dist/shared/cloud-client.d.ts.map +1 -1
  38. package/dist/shared/cloud-client.js +4 -4
  39. package/dist/shared/cloud-client.js.map +1 -1
  40. package/dist/shared/media.d.ts.map +1 -1
  41. package/dist/shared/media.js +36 -11
  42. package/dist/shared/media.js.map +1 -1
  43. package/dist/types/index.d.ts +23 -6
  44. package/dist/types/index.d.ts.map +1 -1
  45. package/package.json +9 -12
  46. package/dist/api/setup/templates/project/cut-sdk/README.md +0 -54
  47. package/dist/api/setup/templates/project/cut-sdk/examples/04-cli-examples.md +0 -71
  48. package/dist/cli.d.ts +0 -3
  49. package/dist/cli.d.ts.map +0 -1
  50. package/dist/cli.js +0 -339
  51. package/dist/cli.js.map +0 -1
  52. /package/dist/api/setup/templates/project/{cut-sdk → cutcli-docs}/examples/01-create-draft.ts +0 -0
  53. /package/dist/api/setup/templates/project/{cut-sdk → cutcli-docs}/examples/02-draft-spec.ts +0 -0
package/README.md CHANGED
@@ -1,23 +1,28 @@
1
- # cut_sdk
1
+ # cutsdk
2
2
 
3
- CapCut / 剪映草稿 SDK + CLI 工具。用代码创建剪映标准草稿,可直接被剪映桌面端打开。
3
+ CapCut / 剪映草稿 Node.js SDK。用于代码化、批量化创建剪映标准草稿,可直接被剪映桌面端打开,也可提交云渲染。
4
4
 
5
- - Node.js SDK + CLI 双模式
5
+ - npm 包名:`cutsdk`
6
+ - 当前发布版本:`1.1.0`(SDK 和 CLI 统一版本)
7
+ - 版本迭代记录:[CHANGELOG.md](./CHANGELOG.md)
8
+
9
+ - Node.js SDK,用于服务端、脚本和批量生成视频
6
10
  - 支持字幕、图片、视频、音频、特效、贴纸、关键帧、遮罩
7
11
  - 媒体 URL 自动下载到草稿目录
8
12
  - 出入场动画、转场效果、关键词高亮
9
- - 提供项目级 AI Agent 接入文档与示例模板
13
+ - CLI 已拆到 `@cutcli/cutcli`,命令名是 `cutcli`,版本号跟随 `cutsdk`
10
14
 
11
15
  ## 安装
12
16
 
13
17
  ```bash
14
- npm install -g cutsdk
18
+ npm install cutsdk
15
19
  ```
16
20
 
17
- 或直接通过 npx 运行(无需安装):
21
+ AI / 命令行实时调用请安装 CLI:
18
22
 
19
23
  ```bash
20
- npx cutsdk draft create
24
+ npm install -g @cutcli/cutcli
25
+ cutcli draft create
21
26
  ```
22
27
 
23
28
  ## 快速上手
@@ -26,22 +31,14 @@ npx cutsdk draft create
26
31
 
27
32
  ```bash
28
33
  # 创建草稿
29
- cut draft create --width 1080 --height 1920
30
-
31
- # 添加字幕
32
- cut captions add <draftId> --captions '[
33
- {"text":"你好世界","start":0,"end":3000000}
34
- ]' --font-size 8 --bold
35
-
36
- # 添加图片
37
- cut images add <draftId> --image-infos '[
38
- {"imageUrl":"https://example.com/bg.jpg","width":1920,"height":1080,"start":0,"end":5000000}
39
- ]'
40
-
41
- # 添加背景音乐
42
- cut audios add <draftId> --audio-infos '[
43
- {"audioUrl":"https://example.com/bgm.mp3","duration":5000000,"start":0,"end":5000000}
44
- ]'
34
+ cutcli draft create --width 1080 --height 1920
35
+
36
+ # 本地拼接优先使用单素材命令,--src 支持本地路径或 URL
37
+ cutcli query text-effects --keyword 火焰 --limit 5
38
+ cutcli text add <draftId> --text "你好世界" --start 0s --duration 3s --font-size 8 --text-effect "红黄火焰综艺花字" --shadow
39
+ cutcli image add <draftId> --src ./素材/bg.png --start 0s --duration 5s --width 1080 --height 1920
40
+ cutcli audio add <draftId> --src ./素材/bgm.mp3 --start 0s --duration 5s
41
+ cutcli video add <draftId> --src ./素材/clip.mp4 --start 5s --duration 3s --width 1080 --height 1920 --mask 圆形
45
42
  ```
46
43
 
47
44
  ### Node.js SDK
@@ -108,7 +105,13 @@ console.log(result.render?.videoUrl);
108
105
 
109
106
  ## AI Agent 接入
110
107
 
111
- 项目级接入模板位于 `src/api/setup/templates/project/`,包含 `.agents/skills/cut-draft/SKILL.md`、SDK 快速开始、API 速查和示例代码。后续可接入 `cut init` 命令,将这些文件复制到业务项目中。
108
+ CLI 可把项目级 AI 使用说明安装到业务项目:
109
+
110
+ ```bash
111
+ cutcli agents install
112
+ ```
113
+
114
+ 模板位于 `src/api/setup/templates/project/`,包含 `.agents/skills/cut-draft/SKILL.md`、SDK 快速开始、API 速查和示例代码。
112
115
 
113
116
  ## 文档
114
117
 
@@ -1,8 +1,11 @@
1
- import type { RenderDraftInput, RenderDraftOutput } from '../../types';
1
+ import type { CloudRenderJob, RenderDraftInput, RenderDraftOutput } from '../../types';
2
2
  export declare function renderDraft(input: RenderDraftInput): Promise<RenderDraftOutput>;
3
3
  export declare function getCloudRenderStatus(params: {
4
4
  taskId: string;
5
- apiBase?: string;
6
5
  apiToken?: string;
7
6
  }): Promise<Record<string, unknown>>;
7
+ export declare function normalizeCloudRenderPayload(payload: any, fallbackId?: string): CloudRenderJob;
8
+ export declare function isCloudRenderRunningStatus(status: unknown): boolean;
9
+ export declare function isCloudRenderSuccessStatus(status: unknown): boolean;
10
+ export declare function isCloudRenderFailureStatus(status: unknown): boolean;
8
11
  //# sourceMappingURL=render-draft.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render-draft.d.ts","sourceRoot":"","sources":["../../../src/api/cloud/render-draft.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEvE,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgDrF;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAUnC"}
1
+ {"version":3,"file":"render-draft.d.ts","sourceRoot":"","sources":["../../../src/api/cloud/render-draft.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAMvF,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA4DrF;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAUnC;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,SAAK,GAAG,cAAc,CAsBzF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAGnE;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAEnE;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAGnE"}
@@ -5,6 +5,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.renderDraft = renderDraft;
7
7
  exports.getCloudRenderStatus = getCloudRenderStatus;
8
+ exports.normalizeCloudRenderPayload = normalizeCloudRenderPayload;
9
+ exports.isCloudRenderRunningStatus = isCloudRenderRunningStatus;
10
+ exports.isCloudRenderSuccessStatus = isCloudRenderSuccessStatus;
11
+ exports.isCloudRenderFailureStatus = isCloudRenderFailureStatus;
8
12
  const fs_1 = __importDefault(require("fs"));
9
13
  const path_1 = __importDefault(require("path"));
10
14
  const node_fetch_1 = __importDefault(require("node-fetch"));
@@ -13,6 +17,9 @@ const config_1 = require("../../config");
13
17
  const cloud_client_1 = require("../../shared/cloud-client");
14
18
  const errors_1 = require("../../shared/errors");
15
19
  const upload_draft_1 = require("./upload-draft");
20
+ const RUNNING_STATUSES = new Set([0, 1, 2]);
21
+ const FAILURE_STATUSES = new Set([3, 5, 6]);
22
+ const SUCCESS_STATUS = 7;
16
23
  async function renderDraft(input) {
17
24
  const draftPath = input.draftPath || path_1.default.join(config_1.config.draftsDir, input.draftId);
18
25
  if (!fs_1.default.existsSync(draftPath) || !fs_1.default.statSync(draftPath).isDirectory()) {
@@ -24,7 +31,7 @@ async function renderDraft(input) {
24
31
  }
25
32
  const zipPath = input.zipPath || await (0, upload_draft_1.zipDraftDirectory)(draftPath, input.draftId);
26
33
  try {
27
- const apiBase = normalizeBackendBase(input.apiBase || config_1.config.uploadApi.baseUrl);
34
+ const backendBase = normalizeBackendBase(config_1.config.uploadApi.baseUrl);
28
35
  const token = (0, cloud_client_1.getCloudApiToken)(input.apiToken);
29
36
  const form = new form_data_1.default();
30
37
  form.append('draft_id', input.draftId);
@@ -32,7 +39,7 @@ async function renderDraft(input) {
32
39
  filename: path_1.default.basename(zipPath),
33
40
  contentType: 'application/zip',
34
41
  });
35
- const response = await (0, node_fetch_1.default)(`${apiBase}/v1/cloud-render-jobs`, {
42
+ const response = await (0, node_fetch_1.default)(`${backendBase}/v1/cloud-render-jobs`, {
36
43
  method: 'POST',
37
44
  headers: {
38
45
  ...form.getHeaders(),
@@ -41,17 +48,27 @@ async function renderDraft(input) {
41
48
  body: form,
42
49
  });
43
50
  const result = await parseJsonResponse(response, '/v1/cloud-render-jobs');
51
+ const jobId = getFirstString(result, ['task_id', 'taskId', 'id']) || '';
52
+ let renderJob = normalizeCloudRenderPayload(result, jobId);
53
+ let renderResult = result;
54
+ let timedOut = false;
55
+ if (input.wait && jobId) {
56
+ const waited = await waitForCloudRender(jobId, input);
57
+ renderJob = waited.job;
58
+ renderResult = waited.raw;
59
+ timedOut = waited.timedOut;
60
+ }
44
61
  return {
45
- message: result.message || 'ok',
46
- draftUploadId: result.object_key || '',
47
- downloadUrl: result.download_url || '',
48
- jobId: result.task_id || result.taskId || result.id || '',
49
- status: result.status || result.raw?.status || '',
50
- renderJob: result.raw || result,
51
- videoUrl: result.video_url || result.videoUrl || result.raw?.video_url || result.raw?.videoUrl,
52
- failureReason: result.failure_reason || result.failureReason || result.raw?.failure_reason,
53
- resultCommand: `cut cloud result ${shellQuote(result.task_id || result.taskId || result.id || '')} --pretty`,
54
- timedOut: false,
62
+ message: timedOut ? 'timed out waiting for cloud render' : getMessage(renderResult, result),
63
+ draftUploadId: getFirstString(result, ['object_key', 'objectKey', 'draft_upload_id', 'draftUploadId']) || '',
64
+ downloadUrl: getFirstString(result, ['download_url', 'downloadUrl', 'draft_download_url', 'draftDownloadUrl']) || '',
65
+ jobId,
66
+ status: renderJob.status,
67
+ renderJob,
68
+ videoUrl: renderJob.videoUrl || renderJob.video_url,
69
+ failureReason: renderJob.failure_reason,
70
+ resultCommand: `cutcli cloud result ${shellQuote(jobId)} --pretty`,
71
+ timedOut,
55
72
  };
56
73
  }
57
74
  finally {
@@ -61,13 +78,63 @@ async function renderDraft(input) {
61
78
  }
62
79
  }
63
80
  async function getCloudRenderStatus(params) {
64
- const apiBase = normalizeBackendBase(params.apiBase || config_1.config.uploadApi.baseUrl);
81
+ const backendBase = normalizeBackendBase(config_1.config.uploadApi.baseUrl);
65
82
  const token = (0, cloud_client_1.getCloudApiToken)(params.apiToken);
66
- const response = await (0, node_fetch_1.default)(`${apiBase}/v1/cloud-render-jobs/${encodeURIComponent(params.taskId)}/status`, {
83
+ const response = await (0, node_fetch_1.default)(`${backendBase}/v1/cloud-render-jobs/${encodeURIComponent(params.taskId)}/status`, {
67
84
  headers: { Authorization: `Bearer ${token}` },
68
85
  });
69
86
  return await parseJsonResponse(response, `/v1/cloud-render-jobs/${encodeURIComponent(params.taskId)}/status`);
70
87
  }
88
+ function normalizeCloudRenderPayload(payload, fallbackId = '') {
89
+ const data = isRecord(payload?.data) ? payload.data : {};
90
+ const raw = isRecord(payload?.raw) ? payload.raw : {};
91
+ const source = { ...raw, ...payload, ...data };
92
+ const rawStatus = getFirstDefined(source, ['status', 'state']);
93
+ const status = typeof rawStatus === 'number' || typeof rawStatus === 'string' ? rawStatus : '';
94
+ const failureReason = getFirstString(source, ['failure_reason', 'failureReason', 'error', 'message'])
95
+ || getFirstString(payload, ['msg', 'message']);
96
+ const videoUrl = getFirstString(source, ['video_url', 'videoUrl']);
97
+ return {
98
+ id: getFirstString(source, ['task_id', 'taskId', 'id', 'job_id', 'jobId']) || fallbackId,
99
+ status,
100
+ draft_upload_id: getFirstString(source, ['draft_upload_id', 'draftUploadId', 'object_key', 'objectKey']),
101
+ draft_download_url: getFirstString(source, ['draft_download_url', 'draftDownloadUrl', 'download_url', 'downloadUrl']),
102
+ filename: getFirstString(source, ['filename', 'fileName']),
103
+ video_url: videoUrl,
104
+ videoUrl,
105
+ failure_reason: failureReason,
106
+ created_at: getFirstString(source, ['created_at', 'createdAt']),
107
+ updated_at: getFirstString(source, ['updated_at', 'updatedAt']),
108
+ };
109
+ }
110
+ function isCloudRenderRunningStatus(status) {
111
+ const normalized = normalizeStatus(status);
112
+ return normalized !== undefined && RUNNING_STATUSES.has(normalized);
113
+ }
114
+ function isCloudRenderSuccessStatus(status) {
115
+ return normalizeStatus(status) === SUCCESS_STATUS;
116
+ }
117
+ function isCloudRenderFailureStatus(status) {
118
+ const normalized = normalizeStatus(status);
119
+ return normalized !== undefined && FAILURE_STATUSES.has(normalized);
120
+ }
121
+ async function waitForCloudRender(taskId, input) {
122
+ const pollIntervalMs = input.pollIntervalMs ?? 15000;
123
+ const timeoutMs = input.timeoutMs ?? 1800000;
124
+ const startedAt = Date.now();
125
+ let lastRaw = {};
126
+ let lastJob = normalizeCloudRenderPayload({}, taskId);
127
+ while (Date.now() - startedAt <= timeoutMs) {
128
+ await sleep(pollIntervalMs);
129
+ lastRaw = await getCloudRenderStatus({ taskId, apiToken: input.apiToken });
130
+ lastJob = normalizeCloudRenderPayload(lastRaw, taskId);
131
+ input.onPoll?.(lastJob);
132
+ if (isCloudRenderSuccessStatus(lastJob.status) || isCloudRenderFailureStatus(lastJob.status)) {
133
+ return { raw: lastRaw, job: lastJob, timedOut: false };
134
+ }
135
+ }
136
+ return { raw: lastRaw, job: lastJob, timedOut: true };
137
+ }
71
138
  async function parseJsonResponse(response, requestPath) {
72
139
  const text = await response.text();
73
140
  let data;
@@ -89,7 +156,7 @@ async function parseJsonResponse(response, requestPath) {
89
156
  }
90
157
  function normalizeBackendBase(value) {
91
158
  if (!value) {
92
- throw new Error('Missing backend API base. Set CUT_UPLOAD_API_BASE or pass apiBase.');
159
+ throw new Error('Missing backend API base.');
93
160
  }
94
161
  return value.replace(/\/+$/, '');
95
162
  }
@@ -98,4 +165,39 @@ function shellQuote(value) {
98
165
  return value;
99
166
  return `'${value.replace(/'/g, "'\\''")}'`;
100
167
  }
168
+ function normalizeStatus(status) {
169
+ if (typeof status === 'number' && Number.isFinite(status))
170
+ return status;
171
+ if (typeof status === 'string' && status.trim() !== '') {
172
+ const parsed = Number(status);
173
+ if (Number.isFinite(parsed))
174
+ return parsed;
175
+ }
176
+ return undefined;
177
+ }
178
+ function getMessage(renderResult, submitResult) {
179
+ return getFirstString(renderResult, ['message', 'msg'])
180
+ || getFirstString(submitResult, ['message', 'msg'])
181
+ || 'ok';
182
+ }
183
+ function getFirstString(source, keys) {
184
+ const value = getFirstDefined(source, keys);
185
+ return typeof value === 'string' && value !== '' ? value : undefined;
186
+ }
187
+ function getFirstDefined(source, keys) {
188
+ if (!isRecord(source))
189
+ return undefined;
190
+ for (const key of keys) {
191
+ if (source[key] !== undefined && source[key] !== null) {
192
+ return source[key];
193
+ }
194
+ }
195
+ return undefined;
196
+ }
197
+ function isRecord(value) {
198
+ return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
199
+ }
200
+ function sleep(ms) {
201
+ return new Promise((resolve) => setTimeout(resolve, Math.max(0, ms)));
202
+ }
101
203
  //# sourceMappingURL=render-draft.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"render-draft.js","sourceRoot":"","sources":["../../../src/api/cloud/render-draft.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-draft.js","sourceRoot":"","sources":["../../../src/api/cloud/render-draft.ts"],"names":[],"mappings":"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"}
@@ -19,8 +19,8 @@ async function submitVideoRenderTask(params) {
19
19
  details: { acceptedEnv: ['CUT_API_TOKEN'] },
20
20
  });
21
21
  }
22
- const apiBase = (params.apiBase || config_1.config.api.baseUrl).replace(/\/+$/, '');
23
- const response = await fetch(`${apiBase}/api/submit_video_render_task`, {
22
+ const backendBase = config_1.config.api.baseUrl.replace(/\/+$/, '');
23
+ const response = await fetch(`${backendBase}/api/submit_video_render_task`, {
24
24
  method: 'POST',
25
25
  headers: {
26
26
  accept: 'application/json',
@@ -1 +1 @@
1
- {"version":3,"file":"submit-video-render-task.js","sourceRoot":"","sources":["../../../src/api/cloud/submit-video-render-task.ts"],"names":[],"mappings":";;AAOA,0DAEC;AAED,sDA8CC;AAzDD,yCAAsC;AACtC,gDAAkD;AAGlD,MAAM,gBAAgB,GAAG,gDAAgD,CAAC;AAC1E,MAAM,kBAAkB,GAAG,+DAA+D,CAAC;AAE3F,SAAgB,uBAAuB,CAAC,QAAgB;IACtD,OAAO,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAChD,CAAC;AAEM,KAAK,UAAU,qBAAqB,CACzC,MAAkC;IAElC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC9D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,oBAAW,CAAC;YACpB,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,wDAAwD;YACjE,SAAS,EAAE,uBAAuB;YAClC,OAAO,EAAE,EAAE,WAAW,EAAE,CAAC,eAAe,CAAC,EAAE;SAC5C,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,eAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,+BAA+B,EAAE;QACtE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,UAAU,QAAQ,EAAE;SACpC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,SAAS,EAAE,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC;SACpD,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,oBAAW,CAAC;YACpB,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,gCAAgC,QAAQ,CAAC,MAAM,EAAE;YAC1D,SAAS,EAAE,uBAAuB;YAClC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,OAAO,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,QAAQ,EAAE,MAAM,EAAE;SACrE,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,GAAG,GAAG,kBAAkB,CAAC;IAChC,OAAO,MAAqC,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"submit-video-render-task.js","sourceRoot":"","sources":["../../../src/api/cloud/submit-video-render-task.ts"],"names":[],"mappings":";;AAOA,0DAEC;AAED,sDA8CC;AAzDD,yCAAsC;AACtC,gDAAkD;AAGlD,MAAM,gBAAgB,GAAG,gDAAgD,CAAC;AAC1E,MAAM,kBAAkB,GAAG,+DAA+D,CAAC;AAE3F,SAAgB,uBAAuB,CAAC,QAAgB;IACtD,OAAO,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAChD,CAAC;AAEM,KAAK,UAAU,qBAAqB,CACzC,MAAkC;IAElC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC9D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,oBAAW,CAAC;YACpB,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,wDAAwD;YACjE,SAAS,EAAE,uBAAuB;YAClC,OAAO,EAAE,EAAE,WAAW,EAAE,CAAC,eAAe,CAAC,EAAE;SAC5C,CAAC,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG,eAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,+BAA+B,EAAE;QAC1E,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,UAAU,QAAQ,EAAE;SACpC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,SAAS,EAAE,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC;SACpD,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,oBAAW,CAAC;YACpB,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,gCAAgC,QAAQ,CAAC,MAAM,EAAE;YAC1D,SAAS,EAAE,uBAAuB;YAClC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,OAAO,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,QAAQ,EAAE,MAAM,EAAE;SACrE,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,GAAG,GAAG,kBAAkB,CAAC;IAChC,OAAO,MAAqC,CAAC;AAC/C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"upload-draft.d.ts","sourceRoot":"","sources":["../../../src/api/cloud/upload-draft.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAOvE,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA8CrF;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBrF"}
1
+ {"version":3,"file":"upload-draft.d.ts","sourceRoot":"","sources":["../../../src/api/cloud/upload-draft.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAOvE,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA4CrF;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBrF"}
@@ -30,13 +30,11 @@ async function uploadDraft(input) {
30
30
  filename,
31
31
  metadata: { source: 'cutcli' },
32
32
  }, {
33
- apiBase: input.apiBase,
34
33
  apiToken: input.apiToken,
35
34
  });
36
35
  const fileBuffer = fs_1.default.readFileSync(zipPath);
37
36
  await (0, cloud_client_1.uploadDraftZip)(presign.uploadUrl, fileBuffer, presign.contentType || 'application/zip');
38
37
  const confirmed = await (0, cloud_client_1.confirmDraftUpload)(presign.draftUploadId, size, {
39
- apiBase: input.apiBase,
40
38
  apiToken: input.apiToken,
41
39
  });
42
40
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"upload-draft.js","sourceRoot":"","sources":["../../../src/api/cloud/upload-draft.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload-draft.js","sourceRoot":"","sources":["../../../src/api/cloud/upload-draft.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-and-render-draft.d.ts","sourceRoot":"","sources":["../../../src/api/draft-spec/create-and-render-draft.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,yBAAyB,EAAE,0BAA0B,EAAwB,MAAM,aAAa,CAAC;AAG/G,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAmChH"}
1
+ {"version":3,"file":"create-and-render-draft.d.ts","sourceRoot":"","sources":["../../../src/api/draft-spec/create-and-render-draft.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,yBAAyB,EAAE,0BAA0B,EAAwB,MAAM,aAAa,CAAC;AAG/G,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAkChH"}
@@ -31,7 +31,6 @@ async function createAndRenderDraft(input) {
31
31
  const render = await (0, render_draft_1.renderDraft)({
32
32
  draftId: draft.draftId,
33
33
  draftPath: resolveActualDraftPath(draft.filePath, input.output?.name),
34
- apiBase: renderOptions.apiBase,
35
34
  apiToken: renderOptions.apiToken,
36
35
  keepZip: renderOptions.keepZip,
37
36
  wait: renderOptions.wait,
@@ -1 +1 @@
1
- {"version":3,"file":"create-and-render-draft.js","sourceRoot":"","sources":["../../../src/api/draft-spec/create-and-render-draft.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-and-render-draft.js","sourceRoot":"","sources":["../../../src/api/draft-spec/create-and-render-draft.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { GetTextEffectInput, GetTextEffectOutput, GetTextEffectsInput, GetTextEffectsOutput } from '../../types';
2
+ export declare function getTextEffects(params?: GetTextEffectsInput): Promise<GetTextEffectsOutput>;
3
+ export declare function getTextEffect(params: GetTextEffectInput): Promise<GetTextEffectOutput>;
4
+ //# sourceMappingURL=get-text-effects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-text-effects.d.ts","sourceRoot":"","sources":["../../../src/api/query/get-text-effects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EAErB,MAAM,aAAa,CAAC;AAerB,wBAAsB,cAAc,CAAC,MAAM,GAAE,mBAAwB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAUpG;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAS5F"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTextEffects = getTextEffects;
4
+ exports.getTextEffect = getTextEffect;
5
+ const { fetch_all_huazi, fetch_huazi_by_title, search_huazi_by_keyword } = require('../../draft/drafts/data/huazi/online_huazi');
6
+ function toTextEffectInfo(item) {
7
+ const attr = item?.common_attr || {};
8
+ return {
9
+ title: attr.title || '',
10
+ effectId: attr.effect_id,
11
+ description: attr.description,
12
+ isVip: attr.is_vip,
13
+ raw: item,
14
+ };
15
+ }
16
+ async function getTextEffects(params = {}) {
17
+ const limit = params.limit && params.limit > 0 ? params.limit : 20;
18
+ const keyword = params.keyword || '';
19
+ const items = keyword
20
+ ? await search_huazi_by_keyword(keyword, limit)
21
+ : (await fetch_all_huazi(false)).slice(0, limit);
22
+ return {
23
+ effects: items.map(toTextEffectInfo).filter((item) => item.title),
24
+ };
25
+ }
26
+ async function getTextEffect(params) {
27
+ const effect = await fetch_huazi_by_title(params.name);
28
+ if (!effect)
29
+ return { effect: null, exact: false };
30
+ const info = toTextEffectInfo(effect);
31
+ return {
32
+ effect: info,
33
+ exact: info.title === params.name,
34
+ };
35
+ }
36
+ //# sourceMappingURL=get-text-effects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-text-effects.js","sourceRoot":"","sources":["../../../src/api/query/get-text-effects.ts"],"names":[],"mappings":";;AAqBA,wCAUC;AAED,sCASC;AAlCD,MAAM,EAAE,eAAe,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAAC,4CAA4C,CAAC,CAAC;AAEjI,SAAS,gBAAgB,CAAC,IAAS;IACjC,MAAM,IAAI,GAAG,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC;IACrC,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QACvB,QAAQ,EAAE,IAAI,CAAC,SAAS;QACxB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,KAAK,EAAE,IAAI,CAAC,MAAM;QAClB,GAAG,EAAE,IAAI;KACV,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,SAA8B,EAAE;IACnE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,OAAO;QACnB,CAAC,CAAC,MAAM,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC;QAC/C,CAAC,CAAC,CAAC,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAEnD,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;KAClF,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,MAA0B;IAC5D,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAEnD,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,IAAI;KAClC,CAAC;AACJ,CAAC"}
@@ -2,76 +2,91 @@
2
2
  name: cut-draft
3
3
  description: >-
4
4
  使用 cutsdk 创建和操作剪映/CapCut 草稿工程。用户想创建剪映草稿、添加字幕/图片/视频/音频/特效/贴纸/关键帧/遮罩、
5
- 提交渲染,或提到 cut_sdkcut、draft spec、剪映、草稿、字幕、CapCut draft 时使用此 skill。
5
+ 提交渲染,或提到 cutsdkcutcli、draft spec、剪映、草稿、字幕、CapCut draft 时使用此 skill。
6
6
  ---
7
7
 
8
- # cut_sdk 项目级 Skill
8
+ # cutcli 项目级 Skill
9
9
 
10
- `cutsdk` 是用于创建剪映/CapCut 桌面端草稿文件夹的 Node.js SDK CLI。生成后的草稿可直接在剪映桌面端打开。
10
+ `cutsdk` 是用于创建剪映/CapCut 桌面端草稿文件夹的 Node.js SDK。`cutcli` 是给 AI 实时调用的命令行工具。生成后的草稿可直接在剪映桌面端打开。
11
11
 
12
12
  ## 先读这些
13
13
 
14
14
  写代码前,先阅读本项目内的文档:
15
15
 
16
- 1. `cut-sdk/README.md`
17
- 2. `cut-sdk/quickstart.md`
18
- 3. `cut-sdk/api-cheatsheet.md`
16
+ 1. `cutcli-docs/README.md`
17
+ 2. `cutcli-docs/quickstart.md`
18
+ 3. `cutcli-docs/api-cheatsheet.md`
19
19
 
20
- 实现时优先从 `cut-sdk/examples/` 里选择最接近的示例改起。
20
+ 实现时优先从 `cutcli-docs/examples/` 里选择最接近的示例改起。
21
21
 
22
22
  ## 推荐使用路径
23
23
 
24
- - AI 生成完整时间线时,优先使用 `createDraftFromSpec(spec)`。
25
- - 用户希望“一次创建草稿并提交云渲染”时,使用 `createAndRenderDraft(input)`。
24
+ - AI 生成完整时间线时,优先使用 `cutcli spec create --file draft.json`,或在代码中使用 `createDraftFromSpec(spec)`。
25
+ - 用户希望“一次创建草稿并提交云渲染”时,优先使用 `cutcli spec render --file draft.json --cloud --wait`,或在代码中使用 `createAndRenderDraft(input)`。
26
26
  - 用户要逐步编辑草稿,或 Draft Spec 尚未覆盖某个能力时,再使用低层 API,例如 `createDraft`、`addCaptions`、`addImages`、`addVideos`、`addAudios`、`addMasks`、`addKeyframes`。
27
- - 只有在用户明确需要命令行,或只是做快速手动操作时,才使用 CLI。
27
+ - 需要实时命令行操作时,优先使用便捷命令,例如 `cutcli image add ...`、`cutcli text add ...`、`cutcli audio add ...`。
28
28
 
29
29
  ## 关键规则
30
30
 
31
31
  - 包导入名是 `cutsdk`。
32
- - 低层 SDK 和 CLI 的所有时间数值都是微秒:`1s = 1000000`。
33
- - AI Draft Spec 的时间字符串可写为 `1.5s`、`500ms`、`300000us`。
32
+ - 低层 SDK 的数字时间单位是微秒:`1s = 1000000`。
33
+ - `cutcli` 便捷命令和 AI Draft Spec 的时间字符串可写为 `1.5s`、`500ms`、`300000us`。
34
34
  - 默认草稿目录是 `~/Movies/JianyingPro Drafts/{draftId}/`;可通过 `CUT_DRAFTS_DIR` 覆盖。
35
- - 媒体 URL 和本地媒体路径会由 SDK 复制/下载到草稿的 `resources/` 文件夹。
35
+ - 媒体本地路径和 URL 都可用:本地路径会复制到草稿 `resources/`,URL 会下载到 `resources/`。
36
36
  - 图片必须提供 `width` 和 `height`。
37
37
  - 使用低层 API 添加视频或音频时,要提供素材原始时长。
38
38
  - 同一轨道内的片段不要重叠,除非目标 API 明确会创建独立轨道。
39
39
  - CLI 参数使用 kebab-case,例如 `--font-size`,不要写成 `--fontSize`。
40
+ - 云渲染只有 `status = 7` 才算成功并写入 `video_url`;`0/1/2` 表示等待或处理中,`3/5/6` 表示失败终态。
41
+ - AI 调用 CLI 时,如需结构化错误,使用 `--json-errors` 或 `CUTCLI_JSON_ERRORS=1`。
40
42
 
41
43
  ## 最小 Draft Spec 示例
42
44
 
43
- ```ts
44
- import { createDraftFromSpec } from 'cutsdk';
45
+ 保存为 `draft.json`:
45
46
 
46
- await createDraftFromSpec({
47
- version: '1.0',
48
- canvas: { width: 1080, height: 1920 },
49
- tracks: [
47
+ ```json
48
+ {
49
+ "version": "1.0",
50
+ "canvas": { "width": 1080, "height": 1920 },
51
+ "tracks": [
50
52
  {
51
- type: 'text',
52
- clips: [
53
- { type: 'caption', text: '你好剪映', start: '0s', duration: '3s' },
54
- ],
55
- },
56
- ],
57
- });
53
+ "type": "text",
54
+ "clips": [
55
+ { "type": "caption", "text": "你好剪映", "start": "0s", "duration": "3s" }
56
+ ]
57
+ }
58
+ ]
59
+ }
60
+ ```
61
+
62
+ 然后执行:
63
+
64
+ ```bash
65
+ cutcli spec validate --file draft.json --pretty
66
+ cutcli spec create --file draft.json --pretty
58
67
  ```
59
68
 
60
69
  ## 云渲染环境变量
61
70
 
62
- 云渲染需要:
71
+ 云渲染需要 API Token。优先让用户运行:
72
+
73
+ ```bash
74
+ cutcli login <apiToken>
75
+ ```
76
+
77
+ 也可以使用环境变量:
63
78
 
64
79
  ```env
65
80
  CUT_API_TOKEN=your_token
66
- CUT_UPLOAD_API_BASE=http://your-render-backend:8080
67
81
  ```
68
82
 
69
- 在调用方项目中使用 `.env`,或在调用 SDK 前自行加载环境变量。
83
+ `cutcli login` 会把 Token 保存到本机 `~/.cutcli/config.json`;`cutcli config show` 只显示 `<set>`,不会打印 Token 明文。
70
84
 
71
85
  ## 常见坑
72
86
 
73
87
  1. 不要混用包名。除非项目明确覆盖,否则始终使用 `cutsdk`。
74
- 2. 不要把“秒”直接作为低层 API 的数字传入。数字 `3` 表示 3 微秒,不是 3 秒。
75
- 3. 对动画/特效名有精确要求时,不要凭空编造。先用 CLI 查询可用资源,或使用项目里已有示例。
76
- 4. 除非 SDK 无法表达目标操作,否则不要手动改剪映草稿 JSON。
77
- 5. 生成复杂时间线时,先用 `validateDraftSpec(spec)` 校验 Draft Spec
88
+ 2. 本地拼接优先用 `cutcli image/video/audio/text add`;批量 JSON 命令只在需要一次添加多段素材时使用。
89
+ 3. 不要把“秒”直接作为低层 API 的数字传入。数字 `3` 表示 3 微秒,不是 3 秒。
90
+ 4. 对动画/特效名有精确要求时,不要凭空编造。先用 CLI 查询可用资源,或使用项目里已有示例。
91
+ 5. 除非 SDK 无法表达目标操作,否则不要手动改剪映草稿 JSON
92
+ 6. 生成复杂时间线时,先用 `cutcli spec validate --file draft.json` 或 `validateDraftSpec(spec)` 校验 Draft Spec。
@@ -4,4 +4,3 @@ CUT_DRAFTS_DIR=/absolute/path/to/JianyingPro Drafts
4
4
 
5
5
  # 仅云渲染需要。
6
6
  CUT_API_TOKEN=your_render_api_token
7
- CUT_UPLOAD_API_BASE=http://your-render-backend:8080