API RapidVideoMaker
REST API 允许从任何 HTTP 客户端处理视频文件——Python 脚本、n8n 工作流、第三方工具。五种模式:合并视频(多个 MP4/MOV)、编辑音频(1 MP4/MOV + 1 MP3)、创建视频(1 JPG/PNG + 1 MP3)、视频叠加(2 MP4/MOV 画中画)。处理为异步:提交文件后轮询结果。
完整工作流程
每个集成都遵循相同的4步序列:
POST /api/v1/render.phpmultipart/form-data发送。1张JPG/PNG图像 + 1个MP3 + mode=image_to_video → 视频生成。1个MP4/MOV + 1个MP3 → 音频编辑。多个MP4/MOV → 合并。服务器返回唯一的job_id。或 1 张图片 + options.text + options.voice:语音由文字生成,无需 MP3。GET /api/v1/jobs.php?job_id=…queued → processing → ready(或error)。ready时,响应包含可用的download_url字段。GET /api/download.php?job_id=…认证
每个请求必须包含您的API令牌。接受两种格式:
您的令牌可在会员区获取 — 每个账户一个令牌,注册时自动创建。
配额
每个会员账户有每天20个请求,在网页界面和API之间共享。失败的任务不消耗配额。计数器在UTC午夜重置。
POST响应包含quota_used和quota_remaining。超过限制时,服务器响应429。
队列
一次处理一个任务。如果同时提交多个任务,它们会排队按顺序处理。等待时,状态响应包含:
queue_position— 任务在队列中的位置(1 = 下一个处理)queue_total— 等待中的任务总数eta_minutes— 处理开始前的预估时间
/api/v1/jobs.php端点每个令牌最多接受每分钟12次调用。建议:调用间隔10秒。 可用转场效果
直接合并传入transition_type=none(默认),或使用以下类型之一在剪辑间淡入淡出:
时长(transition_duration)在0.2到2.0秒之间。
端点
五种模式,通过 mode 字段指定(多个 MP4 省略 mode 自动检测 fusion):
| 用法 | API模式 | 所需文件 | 描述 |
|---|---|---|---|
| 合并视频 | fusion |
2-20个MP4/MOV文件 | 剪辑按提供的顺序首尾相连组装。剪辑之间可选择性添加转场效果。 |
| 编辑音频 | add_audio 或 mix_audio |
1个MP4/MOV + 1个MP3 | 替换或丰富视频的音轨。视频轨道永不重新编码。add_audio — 原始音频被删除并完全替换为MP3。mix_audio — 原始音频被保留,MP3被叠加。 |
| 创建视频 | image_to_video |
1 张 JPG/PNG + 1 个 MP3 —— 或 1 张 JPG/PNG + 一段文字(options.text + options.voice):生成语音 |
由一张静态图片和您的 MP3 —— 或仅由一段文字(options.text,语音由 options.voice 生成)—— 生成视频。文字叠加(固定、逐词或卡拉 OK)、淡入淡出、分辨率和 fps 可通过 options 字段配置。 |
| 视频叠加 | overlay_video |
2 MP4/MOV | 将第二个视频叠加在主视频上方。位置、大小、透明度和音频可通过 options 字段配置。 |
| 添加文字 | add_text |
1 个 MP4/MOV | 在现有视频上叠加文字(保持分辨率、帧率和音频)。文字设置与 image_to_video 相同,另外可指定文字出现的时间。options.text 为必填项。 |
| 文字转MP3 | text_to_mp3 |
(仅文本) | 将文本转换为语音并返回MP3文件。无需上传文件 — 将 mode=text_to_mp3、text 和 lang 作为表单字段发送。支持网站的全部20种语言。 |
add_audio和mix_audio只接受1个MP4/MOV + 1个MP3。image_to_video只接受1张JPG/PNG + 1个MP3。例外:使用 options.text + options.voice 时,image_to_video 只接受 1 张图片——语音由文字生成(无需 MP3)。options.voice 时,image_to_video 的时长等于由文字生成的语音时长(+0.6 秒)。公共参数(multipart/form-data)
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
| videos[] | File[] | 是 | 要处理的文件。根据模式不同:2-20个MP4/MOV,或1个MP4/MOV + 1个MP3,或1张图像(JPG/PNG)+ 1个MP3。每个文件最大500 MB。 |
| mode | string | * | image_to_video | add_audio | mix_audio | overlay_video | text_to_mp3。这些非fusion模式必填。仅上传MP4/MOV文件且省略mode时始终触发fusion(流复制拼接)——即使正好上传2个MP4/MOV,也绝不会触发overlay_video。音频编辑:add_audio删除原始音频,mix_audio保留原始音频并叠加。如果提供了mode字段,上传的文件必须完全匹配——否则请求将被拒绝。 也接受 add_text:它是唯一只接收单个 MP4/MOV 文件的模式,并且需要 options.text。 |
| order | JSON | 仅限fusion模式 — 定义剪辑顺序的索引JSON数组。 | |
| transition_type | string | 仅限fusion模式。默认:none。 | |
| transition_duration | float | 仅限fusion模式。时长0.2-2.0秒。默认:0.5。 | |
| options | JSON | image_to_video, add_text, mix_audio 和 overlay_video 的渲染参数 JSON 对象(见下方表格)。 | |
| timings | File / string | image_to_video / add_text:卡拉OK时间轴文件(SRT 或 LRC,最大 200 KB)——文件字段或纯文本。显示的文字取自文件;强制 text_mode=karaoke;不能与 voice 同时使用。 | |
| callback_url | string | 任务完成时调用的公共URL(http/https)。响应包含webhook_secret。 |
options参数 — image_to_video模式
全部可选。未提供的值 → 由工作进程应用默认值。
| 键 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| text | string | "" | 作为叠加显示的文本。空 = 无文本。最多500个字符。 |
| font | string | "default" | 文字字体,按标识符指定。可用值:default, dejavu-sans-bold, dejavu-serif, liberation-serif, dejavu-mono, amiri, noto-sans-sc (简体中文), noto-sans-tc (繁體中文), noto-sans-jp (日本語), noto-sans-kr (한국어), noto-sans-hebrew (עברית), noto-sans-thai (ไทย)。default = 标准字体(支持表情符号);amiri = Naskh 字体,适合阿拉伯语文字。其他任何值都会返回 invalid_option 错误。表情符号仅在 default 下显示。 |
| font_size | int | 60 | 字体大小(像素)。范围:10-300。 |
| text_color | string | "white" | 文本颜色(例如:white、yellow、#ffffff)。 |
| text_position | string | "center" | 文本位置:center、top、bottom。 |
| box | bool | true | 文本后面的半透明背景。 |
| box_color | string | "black@0.4" | FFmpeg格式的颜色 + 不透明度:color@opacity。 |
| fade_duration | float | 0.5 | 淡入/淡出时长(秒),0-2。0 = 无效果。 |
| width | int | 1080 | 视频宽度(像素),64-3840,强制为偶数。 |
| height | int | 1920 | 视频高度(像素),64-3840,强制为偶数。 |
| fps | int | 24 | 帧率(1-60)。 |
| image_fit | string | "contain" | contain: 完整显示图片或视频,并用所选背景填充空白区域。 solid(默认)或blur。模糊背景要求image_fit=contain。文字保持清晰。 cover: 图片缩放填充框架,居中 — 边缘被裁剪。 |
| bg_color | string | "black" | background_mode=solid: 图像未填满目标分辨率时的背景颜色。 |
| background_mode | string | "solid" | solid(默认)或blur。模糊背景要求image_fit=contain。文字保持清晰。 |
| blur_strength | number | 20 | 1至50的数值,默认20。仅对背景应用高斯模糊。 |
| enable_image_motion | bool | false | 启用照片动画。false时图像保持静态。 |
| image_motion_effect | string | "ken_burns" | 动画效果。接受的值:zoom_in、zoom_out、pan_left_to_right、ken_burns等。 |
| motion_intensity | float | 1.0 | 照片动画强度(0.25-2.0)。乘以缩放幅度和平移速度。 |
| text_effect | string | "none" | 文本叠加动画。接受的值:none、fade_in、slide_up、bounce。 |
| text_effect_intensity | float | 1.0 | 文本动画强度(0.25-2.0)。text_effect为none时忽略。 |
| text_border_width | int | 0 | 字符周围黑色轮廓的厚度(像素),0 = 禁用。 |
| text_border_color | string | "black" | 文字描边的颜色(格式同 text_color,默认 "black")。当 text_border_width > 0 时生效。 |
| text_mode | string | "static" | 文字显示模式。static(默认):从第一帧起显示全文。word_by_word:按 word_reveal_speed 的速率逐词显示。与 text_effect 互斥:若 text_mode=word_by_word,则 text_effect 将被忽略。 "karaoke":文字随音频节奏逐页变色(最多 1000 个字符)。配合 voice 时逐词同步,否则按词的长度分配到整段音频。 |
| word_reveal_speed | float | 1.5 | 逐词显示速度,单位为词/秒(0.3–5.0,默认 1.5)。仅在 text_mode=word_by_word 时使用。与 OpenAI TTS 同步的推荐值:2.0。 |
| word_anim | string | "none" | 每个单词出现的动画。none(默认):即时显示。fade:每个新单词以0.2秒淡入并与前一块交叉淡化。仅在 text_mode=word_by_word 时有效。 |
| karaoke_style | string | "fill" | 卡拉OK样式:fill(已读的词变为高亮颜色)、sweep(每个词逐渐填充;从右向左书写的文字按整词)或 highlight(仅当前词变色)。 |
| highlight_color | string | "#FFD200" | 卡拉OK模式下已读词 / 当前词的颜色(格式同 text_color)。 |
| karaoke_lines | int | 2 | 卡拉OK模式下每页显示的行数(1–4)。 |
| voice | string | "" | 语音 ID(与 text_to_mp3 相同的列表,例如 zh-CN-XiaoxiaoNeural):在同一任务中由 text 生成语音。此时 image_to_video 只需要图片(同时上传的 MP3 会被拒绝)。卡拉OK模式下每个词都与语音同步。 |
| voice_rate | int | 0 | 生成语音的语速,以 % 表示(−50 至 +50)。 |
使用您自己的时间轴制作卡拉OK(SRT / LRC)
在 timings 字段中发送 SRT 或 LRC 文件:每一行在各自的时间出现,并构成卡拉OK的一页(最多 500 行、5000 个字符)。SRT:行在结束时间消失。LRC:行一直显示到下一行(空行会结束它);支持 [offset:] 和增强型 LRC 的逐词时间 <mm:ss.xx>,否则每行按其时长分配。在 add_text 中,时间以视频开头为准,并按 text_start 偏移。
options 参数 — overlay_video 模式
均为可选。上传顺序很重要:第一个文件是主视频(背景),第二个文件是叠加视频(前景)。使用 chroma_key 可去除叠加视频的绿幕背景。
| 键 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| position | string | "bottom-right" | 叠加视频的放置位置:top-left、top-right、bottom-left、bottom-right 或 center。 |
| scale | float | 0.30 | 叠加视频宽度占主视频宽度的比例。0.25 = 25%。范围:0.05–1.0。 |
| opacity | float | 1.0 | 叠加视频的透明度。1.0 = 完全不透明,0.0 = 不可见。 |
| margin | int | 10 | 叠加视频与画面边缘的像素距离。当 position=center 时忽略。范围:0–200。 |
| audio | string | "main" | 保留哪条音轨。main:仅主视频音频。overlay:仅叠加视频音频。mix:两者混合。 |
| chroma_key | bool | false | 设为 true 可去除叠加视频的纯绿色(#00FF00)背景 — 适用于绿幕前拍摄的摄像头或动画。 |
| chroma_similarity | float | 0.20 | 绿幕容差。低 = 严格匹配(保留主体边缘)。高 = 更宽泛的去除(适应光线不均)。推荐:数字绿 0.10–0.20,物理屏幕 0.25–0.45。范围:0.01–0.60。 |
options 参数 — add_text 模式
文字为必填项。默认保留视频原始格式、帧率和音频。output_format可配合image_fit、bg_color和background_mode调整画布。width、height、fps及照片运动选项仍被忽略。视频最长15分钟。
{"text":"Hello","output_format":"portrait","image_fit":"contain","background_mode":"blur","blur_strength":20}
| 键 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| text | string | 是 | 要叠加的文字。必填,1–200 个字符。 |
| text_start | float | 0 | 文字出现的秒数(≥ 0)。必须早于视频结束时间。 |
| text_duration | float | 0 | 文字保持可见的时长,单位为秒(0.1–3600)。0 = 直到视频结束。 |
| font | string | "default" | 文字字体,按标识符指定。可用值:default, dejavu-sans-bold, dejavu-serif, liberation-serif, dejavu-mono, amiri, noto-sans-sc (简体中文), noto-sans-tc (繁體中文), noto-sans-jp (日本語), noto-sans-kr (한국어), noto-sans-hebrew (עברית), noto-sans-thai (ไทย)。default = 标准字体(支持表情符号);amiri = Naskh 字体,适合阿拉伯语文字。其他任何值都会返回 invalid_option 错误。表情符号仅在 default 下显示。 |
| font_size | int | 60 | 字号按短边为 1080 px 的视频给出,并会自动缩放到实际分辨率——同一数值在 720p 和 4K 下的视觉效果一致。范围:10–300。 |
| fade_duration | float | 0.5 | 文字(而非视频)的淡入/淡出时长,单位为秒。范围:0–2。 |
| text_color, box, box_color, text_position, text_border_width, text_border_color, text_effect, text_effect_intensity, text_mode, word_reveal_speed, word_anim, karaoke_style, highlight_color, karaoke_lines, voice, voice_rate | — | — | 与 image_to_video 相同(见上表)。 |
| original_volume | float | 0.3 | 使用 voice 时:语音下方视频原声的音量(0–2,默认 0.3;0 = 替换)。语音从 text_start 开始;文字一直显示到语音结束,如果超出视频结尾,将定格最后一帧。 |
| background_mode | string | "solid" | solid(默认)或blur。模糊背景要求image_fit=contain。文字保持清晰。 |
| blur_strength | number | 20 | 1至50的数值,默认20。仅对背景应用高斯模糊。 |
| output_format | string | "original" | 仅限add_text:original(默认)、portrait(1080×1920)、square(1080×1080)、landscape(1920×1080)。模糊背景要求使用original以外的格式。 |
| image_fit | string | "contain" | contain: 完整显示图片或视频,并用所选背景填充空白区域。 solid(默认)或blur。模糊背景要求image_fit=contain。文字保持清晰。 cover: 图片缩放填充框架,居中 — 边缘被裁剪。 |
| bg_color | string | "black" | background_mode=solid: 图像未填满目标分辨率时的背景颜色。 |
options参数 — 音频编辑(mix_audio)
仅在mode=mix_audio时可用。add_audio时忽略。
| 键 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| mp3_volume | float | 1.0 | 叠加MP3的音量(0.0 = 静音,1.0 = 原始音量,2.0 = 双倍)。 |
text_to_mp3 模式 — 直接参数(无 options JSON)
与其他模式不同,这些字段直接作为表单字段发送,而不是在 options JSON 对象内。只有 text 是必需的。
| 键 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| text | string | — | 要转换为语音的文本。必需。最多 5,000 个字符。 |
| lang | string | "en" | 当 voice 缺失或无效时用于选择默认语音的语言代码。网站 20 种语言之一(见下表)。未知时回退到 en。 |
| voice | string | 自动 | edge-tts 语音 ID(见下表)。若缺失或无效,将自动使用 lang 的第一个语音。 |
| slow | bool | false | 设置为 true(或 1)可将语速降低 25%。其他任何值都视为 false。 |
text_to_mp3 不需要 videos[]。将 mode=text_to_mp3 与 text / lang / voice / slow 作为普通表单字段一起发送。可用语音(edge-tts, Microsoft Neural),按语言代码分组:
| 语言 | 可用语音 |
|---|---|
en |
en-US-AvaNeural, en-US-AndrewNeural, en-GB-LibbyNeural, en-AU-NatashaNeural, en-AU-WilliamMultilingualNeural |
fr |
fr-FR-DeniseNeural, fr-FR-HenriNeural, fr-FR-EloiseNeural, fr-CA-SylvieNeural, fr-CA-ThierryNeural |
es |
es-ES-ElviraNeural, es-ES-AlvaroNeural, es-MX-DaliaNeural, es-AR-ElenaNeural, es-AR-TomasNeural |
ar |
ar-SA-ZariyahNeural, ar-SA-HamedNeural, ar-EG-SalmaNeural, ar-MA-MounaNeural, ar-MA-JamalNeural |
pt |
pt-BR-FranciscaNeural, pt-BR-AntonioNeural, pt-PT-RaquelNeural |
de |
de-DE-KatjaNeural, de-DE-ConradNeural, de-DE-AmalaNeural, de-AT-IngridNeural, de-AT-JonasNeural |
it |
it-IT-ElsaNeural, it-IT-DiegoNeural, it-IT-IsabellaNeural |
nl |
nl-NL-ColetteNeural, nl-NL-MaartenNeural, nl-BE-DenaNeural, nl-BE-ArnaudNeural |
ru |
ru-RU-SvetlanaNeural, ru-RU-DmitryNeural |
tr |
tr-TR-EmelNeural, tr-TR-AhmetNeural |
hi |
hi-IN-SwaraNeural, hi-IN-MadhurNeural |
bn |
bn-IN-TanishaaNeural, bn-IN-BashkarNeural, bn-BD-NabanitaNeural, bn-BD-PradeepNeural |
ur |
ur-PK-UzmaNeural, ur-PK-AsadNeural, ur-IN-GulNeural, ur-IN-SalmanNeural |
id |
id-ID-GadisNeural, id-ID-ArdiNeural |
ja |
ja-JP-NanamiNeural, ja-JP-KeitaNeural |
ko |
ko-KR-SunHiNeural, ko-KR-InJoonNeural |
zh-CN |
zh-CN-XiaoxiaoNeural, zh-CN-YunxiNeural, zh-CN-XiaoyiNeural |
zh-TW |
zh-TW-HsiaoChenNeural, zh-TW-YunJheNeural |
vi |
vi-VN-HoaiMyNeural, vi-VN-NamMinhNeural |
pl |
pl-PL-ZofiaNeural, pl-PL-MarekNeural |
成功响应(HTTP 200)
text_to_mp3,响应中没有 file_count 或 transition 字段(未上传任何文件)——其余部分相同:job_id、quota_used、quota_remaining、status_url、webhook_secret。curl示例 — image_to_video模式
带生成语音的卡拉OK文字(image_to_video,无需 MP3)
使用 SRT 文件的卡拉OK(image_to_video + 您的 MP3)
curl示例 — 音频编辑
curl 示例 — overlay_video 模式
curl 示例 — add_text 模式
curl示例 — 视频合并
curl 示例 — text_to_mp3 模式
状态包含实际阶段和已用时间。估计仅供参考;客户端超时不代表任务失败。请继续查询同一任务ID。文件在完成两小时后到期。
可能的状态
| 状态 | 含义 | 额外字段 |
|---|---|---|
| queued | 在队列中,尚未处理 | queue_position, queue_total, eta_minutes |
| processing | FFmpeg处理中 | processing_stage, processing_elapsed_seconds, stage_elapsed_seconds, last_activity_at, processed_media_seconds, eta_overrun |
| ready | 已完成 — 文件可用 | download_url, media_available, created_at, expires_at |
| error | 处理失败 | error (message), quota_refund_status: pending | confirmed | not_required |
| cancelled | 已取消 | quota_refund_status: pending | confirmed | not_required |
按状态的响应
curl示例
公共参数(multipart/form-data)
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
page | integer | 1 | 页码(从 1 开始) |
limit | integer | 20 | 每页结果数(最多 50,默认 20) |
按状态的响应
以流的形式传输最终文件。视频模式的Content-Type为video/mp4,text_to_mp3为audio/mpeg。不需要令牌。仅在状态为ready时可用。
文件在任务完成后保留2小时,然后删除。状态变为ready后请立即下载。
可选参数
| 参数 | 描述 |
|---|---|
| filename | 下载文件的建议名称(例如:my-video.mp4) |
| preview | 设置为1可内联播放(省略Content-Disposition: attachment)而不是触发下载——用于浏览器内预览。 |
curl示例
Webhooks
Webhook是轮询的替代方案:不是每隔X秒检查状态,而是提供URL,服务器在任务完成时自动通知您。
工作原理
- 在POST到
/api/v1/render.php时传入callback_url - 响应包含
webhook_secret— 保存它以验证签名 - 当任务达到
ready或error时,服务器向您的URL发送签名的JSONPOST - 使用
HMAC-SHA256(webhook_secret, raw_body)验证签名
callback_url必须是可公开访问的URL(http或https)。私有、回环和保留IP地址在服务器端被阻止。超时:10秒。 接收到的有效载荷
服务器发送的标头
| 标头 | 值 |
|---|---|
| Content-Type | application/json |
| X-RVM-Signature | sha256=<hmac_hex> — 原始主体的HMAC-SHA256签名 |
| X-RVM-Job-Id | 相关的job_id |
签名验证
错误代码
| HTTP | JSON代码 | 原因 |
|---|---|---|
| 401 | unauthorized | 令牌缺失、无效或已撤销 |
| 400 | missing_files | 未收到文件 |
| 400 | too_few_files | 发送的文件少于2个 |
| 400 | too_many_files | 发送的文件超过20个 |
| 400 | invalid_mime | 不支持的文件 — 仅接受MP4、MP3和JPG/PNG |
| 400 | wrong_file_count | 文件数量与所选模式不匹配 |
| 400 | wrong_file_types | 文件类型与所选模式不匹配 |
| 400 | invalid_file_combination | 没有指定模式的文件组合不匹配任何支持的模式 |
| 400 | invalid_options | options字段不是有效的JSON |
| 400 | invalid_option | options中的某个值无效 |
| 400 | file_too_large | 文件超过500 MB |
| 400 | text_required | 缺少 options.text 字段或其为空(add_text 模式) |
| 400 | video_too_long | 视频超过 15 分钟(add_text 模式) |
| 400 | text_start_out_of_range | text_start 超出视频结尾 |
| 400 | invalid_voice | 未知的 voice ID。 |
| 400 | invalid_timings | 无法读取时间轴文件(格式无法识别、没有带时间的行、结束早于开始、过长等)。 |
| 400 | invalid_order | order数组不是有效的排列 |
| 400 | invalid_job_id | job_id格式不正确(必须是32个字符的十六进制) |
| 404 | job_not_found | 未找到任务 — job_id未知或从未存在 |
| 410 | job_expired | 任务已过期 — 曾经存在但2小时恢复窗口已过 |
| 429 | quota_exceeded | 已达到每天20个成功任务的限制 |
| 429 | rate_limited | /api/v1/jobs.php每分钟超过12次调用 |
| 500 | server_error | 内部服务器错误 |
集成示例
各模式示例 — 使用pip install requests安装requests。
公共配置
image_to_video模式 — 图像 + 音频 → 视频
音频编辑
overlay_video 模式 — 画中画
add_text 模式 — 在视频上添加文字
视频合并
text_to_mp3 模式 — 文本转语音
轮询 + 下载(所有模式通用)
n8n中的两种方法:轮询(状态循环)或Webhook(服务器调用n8n)。推荐Webhook。
方法A — Webhook(推荐)
仅3个节点,无循环。
节点1 — Webhook触发器
添加Webhook节点作为工作流输入(方法POST)。
节点2 — 创建任务(HTTP请求)
| 方法 | POST |
| URL | https://rapidvideomaker.com/api/v1/render.php |
| 认证 | Header Auth — Authorization: Bearer rvm_… |
| 请求体内容类型 | Form-Data Multipart |
| Body params | 每个剪辑的二进制字段videos[] + 文本字段callback_url |
将响应中的webhook_secret保存在工作流变量中以验证签名。
节点3 — 处理结果(在Webhook触发的工作流中)
当n8n收到服务器的POST时,$json.status为ready或error。
{{ $headers['x-rvm-signature'] }}与您的webhook_secret的HMAC-SHA256进行比较。方法B — 轮询(无Webhook)
5个节点,每10秒状态循环。
节点1 — 创建任务 — 同上配置,无callback_url。
节点2 — 等待 — 10秒。
节点3 — 轮询状态(HTTP请求GET)
| URL | https://rapidvideomaker.com/api/v1/jobs.php |
| 查询参数 | job_id = {{ $('节点1').item.json.job_id }} |
| 认证 | 标头认证 — 相同令牌 |
节点4 — If:{{ $json.status }} === 'ready' → true:节点5 / false:返回节点2。
节点5 — 下载:在{{ $json.download_url }}上发起HTTP请求GET。
步骤1 — 创建任务(选择模式)
步骤2 — 轮询
步骤3 — 下载
最佳实践
- 每隔5至10秒查询同一任务。处理时间取决于模式和输入大小。
- 状态包含实际阶段和已用时间。估计仅供参考;客户端超时不代表任务失败。请继续查询同一任务ID。文件在完成两小时后到期。
- 快速下载:状态变为
ready时立即下载。任务完成后2小时删除。 - 配额管理:检查POST响应中的
quota_remaining。 - 网络错误:轮询过程中出现网络错误时,等待并重试。