@blitzreels/sdk

中文文档
0.2.25发布于 2026/10/30SEE LICENSE IN LICENSETypeScriptES Module近 30 天下载 5.7万

TypeScript SDK供AI代理和开发者在BlitzReels内部编辑视频.

中文使用文档
文档目录13 节
  1. 安装
  2. 使用量
  3. 排定的网络员额
  4. 本地 API
  5. 来源、释放和许可证
  6. 生成分辨率
  7. 无脸投入和迅速改进
  8. 变异恢复
  9. 统一出版
  10. 网络研究(当地来源)
  11. 创造性支出
  12. 保存的食谱版本
  13. 出口估计数

@ blitzreels/ sdk (英语)

为 BlitzReels 公共 API 输入了 TypeScript 客户端 .

使用 client.clipBatches.getForAsset({ assetId }) 恢复最新趋势 包含尚未创建剪辑的批次. 反应是 { batch: null } 当工作空间没有批次的该资产.

官方网站(简体中文) https://blitzreels.com/ 互联网档案馆的存檔,存档日期2013-12-21

SDK是 BlitzReels CLI 和外部使用的共享 API 层 类型脚本集成. 它有意不进口Next.js/仅进口服务器.

安装

npm install @blitzreels/sdk

使用量

import { BlitzReelsClient } from "@blitzreels/sdk";

const client = new BlitzReelsClient({
  apiKey: process.env.BLITZREELS_API_KEY ?? "",
  baseUrl: "https://blitzreels.com/api/v1",
});

const auth = await client.auth.validate();
const projects = await client.projects.list({
  limit: 20,
  cursor: undefined,
  offset: undefined,
  search: undefined,
  status: "active",
});

API 密钥授权一个工作空间 。 使用已安装的 TypeScript 声明进行精确的方法输入 . 通过 能力, (中文(简体) ), 读取 生成的 API 合同。 。 。 . SDK拥有运输;消费者加入应用同意/认证和UI映射.

上传的视频出版接受工作空间媒体资产,而不存在 Blitz Reels项目. MP4, MOV, 和 WebM 输入被对照每个选中 在预定目标之前提供. 媒体资产必须具备期限和尺寸. 待决元数据返回可重试 conflict 与 error_details.reason: media_asset_processing 财务报告和审定财务报表 error_details.media_asset_id在复制媒体或创建出版来源/文章之前. 票价 client.media.get({ assetId }),然后用同样的ID重试调度. 没有元数据处理失败或完成的资产返回不可重试 validation_error。 。 。 .

TikTok直接员额需要明确 privacyLevel; TikTok 草稿没有. 使用 containsSyntheticMedia 每个请求一次, 如此 BlitzReels 映射声明 到每个供应商的原地.

API 请求失败, 可重试 timeout 默认在30秒后出错 . 设定 requestTimeoutMs 在客户端配置中,当集成需要不同的截止日期时.

排定的网络员额

此来源增加了 X 文本帖和 LinkedIn/ Threads 文本或导出媒体帖. 可用性取决于部署的服务器配置和连接账户的权限. X在验证免费API访问之前仍然被禁用;这些方法无法允许付费API通话. 链接 在目标个人简介中,不是组织网页.

const receipt = await client.publishing.scheduleNetworkPost({
  platform: "linkedin",
  connectionId,
  projectId: null,
  exportId: null,
  caption: "Testing scheduled publishing from BlitzReels.",
  scheduledFor,
  timezone: "Europe/Paris",
  idempotencyKey,
});

const status = await client.publishing.getPost({ postId: receipt.post_id });

都通过 projectId 财务报告和审定财务报表 exportId 用于完成媒体导出,或两者兼而有之 null 用于文本. 使用 listConnections() 在预定日期之前解决预定目的地. 超时后再取出相同的一能键并请求机体来取回原收发. 预定的收据是排队验收;检查每个目标的状况和提供者的ID以便公布. 不确定的出版物需要在提交新职位之前先检查提供者.

本地 API

const client = new BlitzReelsClient({
  apiKey: process.env.BLITZREELS_API_KEY ?? "",
  baseUrl: "http://localhost:3100/api/v1",
});

本地/ 开发 API 密钥使用 br_test_...; 生产密钥使用 br_live_...。 。 。 .

来源、释放和许可证

Npm包可公开安装,但其犬形来源为私有和专有. 发布的行为取决于已安装的软件包版本. 大型上传使用多段传输; BLITZREELS_REQUEST_TIMEOUT_MS 控制 SDK API 请求 .

行政事业单位回收和其他内部经营资源不出口或者列入公共文物.

见 LICENSE 包条款.

生成分辨率

generation.images 财务报告和审定财务报表 generation.videos 接受 resolution 并转发给REST. 放弃或通过无效 使用模型默认. generation.options({ kind: "image" }) 财务报告和审定财务报表 generation.options({ kind: "video" }) 返回每个模型 parameters.resolution (单位:千美元)supported, (中文(简体) ), values, (中文(简体) ), default, (中文(简体) ), reason) (中文(简体) ). 不支持的显式设置失败验证; 它们永远不会被默默地丢弃 . 图像选项包括 credit_cost_by_resolution没有单独的质量等级, 报告 parameters.quality图像任务结果包括所要求的分辨率, 可计量的宽度/高,以及使用的入计量.

生成投入与REST和MCP共享模型认知验证. generation.videos() 接受 endFrameAssetId, (中文(简体) ), referenceVideoAssetIds,以及 referenceAudioAssetIds。 。 。 . 不需要只参考种子模型 sourceAssetId;提供源成为第一个参考. endFrameAssetId 需要源首帧,不能与引用数组相混合. 发现每个模型的计数、持续时间限制、音频行为、种子/负瞬间支持以及提供者 与 generation.options({ kind: "video" })。不支持的明确设置被拒绝. generateAudio: null (或省略)使用模型行为. enhancePrompt: true 使用共享的 BlitzReels 大脑 带有模型语法,边框参考预览,帧角色,和音频意图. catalog.voices() 读取内置 /voices 目录和返回 { voices: [...] }。 。 。 . voices.list/get/clone/archive 在下面管理被克隆的声音 /workspace/voices; 列表返回 { items: [...] }。 。 。 .

语音ID被验证对 generation.options({ kind: "voiceover" }).voices,包括提供者和预览 URL.

为源视频编辑, generation.planBrief({ prompt, model, durationSeconds, aspectRatio }) 返回一个 execution 合同。 过 model: null 用于基于意图的选择. generation.videos 接受 transformation 字符对源角色绑定 keepOriginalAudio。 。 。 . 原声道开关与 generateAudio;来源决定了编辑持续时间. 见 源视频编辑 用于工作流程和当前核查边界.

无脸投入和迅速改进

generation.faceless 接受 inputMode: "topic" | "script" 财务报告和审定财务报表 improvePrompt: boolean。 。 。 . 在制定可审查的生产计划之前,将题目写入叙述中. 对于编剧剧本, improvePrompt: false 保留准确的描述. Oconduct 值保留脚本输入,但对现有客户端的改进已禁用 .

变异恢复

client.contentReview.submit({ projectId, expectedProjectRevision, caption, reason, language, idempotencyKey }) 在工作空间审查队列中添加一个非空保存的视频或旋转木马. 它回来了 draftId,提交 项目修订、初步审查版本和 mutationReceipt没有进行渲染、收费或公布. 重复相同的输入和密钥,以在网络,MCP和SDK客户端中为同一个工作空间用户回收收据. 修改了投入,进行了僵化的修订并重复了项目提交;现有审查决定仍然得到保存.

client.mutations.lookup({ operation, idempotencyKey }) 读取当前 API 密钥和工作空间的收据. 使用 project.create 或者说 generation.image.create 在提交前保存密钥. 结果是 { receipt: null } 当读取时找不到记录时; 尚未解决的请求仍然可以接受. 已完成的收据显示资源标识,不显示提示,租赁令牌或内部出错. 其地位是指提交情况,而不是背景工作完成情况.

media.finalizeUpload 接受可选选项 idempotencyKey。 。 。 . 重用相同的定稿输入来回收丢失的响应,而不读取已删除的重复对象 . 失败的尝试可以重试同样的密钥;进行中的尝试只能在5分后恢复.

统一出版

client.publishing.createPost({ post, idempotencyKey }) 使用共享 PublishingPostInput 合同. 打电话 validatePost(post) 现场飞行前和 capabilities() 用于支持的格式和平台限制. 这个 CLI 生命周期指南 包含相同的 JSON 输入和默认值.

const post = {
  source: { type: "media_asset" as const, media_asset_id: assetId },
  caption: "My caption",
  mode: "now" as const,
  targets: [
    { platform: "instagram" as const, connection_id: instagramId, share_to_story: true },
    { platform: "facebook" as const, connection_id: facebookId, video_format: "reel" as const },
  ],
};
const validation = await client.publishing.validatePost(post);
if (!validation.valid) throw new Error(JSON.stringify(validation.issues));
const receipt = await client.publishing.createPost({ post, idempotencyKey: "launch-post-1" });
const current = await client.publishing.getPost({ postId: receipt.post_id });

成功的创建确认接受;读取目标收据确认出版. getPublishingPostSchema() 财务报告和审定财务报表 publishingPostInputSchema 曝光合同没有认证. listPosts({ status, limit, offset }) 绑定; 默认值为 20和 0, 最大页面大小为 100. cancelTarget, (中文(简体) ), retryTarget 财务报告和审定财务报表 rescheduleTarget 需求 targetId, (中文(简体) ), expectedRevision 财务报告和审定财务报表 idempotencyKey。 。 。 . 额外调整时间表 scheduledFor。在丢失的响应后重新使用相同输入的密钥.

创建草稿与 post.mode: draft 没有时间表. updateDraft({ postId, expectedRevision, post, idempotencyKey }) 替换未排定的草稿. scheduleDraft({ postId, expectedRevision, mode: "now", idempotencyKey }) 验证并推广同样的身份证. 以后出版,使用 mode: "schedule" 与 scheduledFor。 。 。 . deleteDraft({ postId, expectedRevision, idempotencyKey }) 软删除只包含不定期的草稿.

REST 用途 POST /publishing/posts, (中文(简体) ), POST /publishing/posts/validate, (中文(简体) ), GET /publishing/posts, (中文(简体) ), GET /publishing/posts/{postId},以及 GET /publishing/capabilities。 。 。 . 编辑草稿使用 PATCH /publishing/posts/{postId}/draft; 推广用途 POST /publishing/posts/{postId}/schedule。 。 。 . 删除用途草案 DELETE /publishing/posts/{postId}/draft?expected_revision=...。 。 。 . 目标行动使用情况 POST /publishing/targets/{targetId}/{cancel|retry|reschedule}。 。 。 . 所有新出版的书写需要 Idempotency-Key。使用REST的修订字段 expected_revision。 。 。 .

Meta原生Reel-to-Story共享在收件中仍然是明确的人工跟踪. share_to_story 从不默默地上传单独的"故事". 独立的故事,重复的队列,第一次评论, 提供音频/协作器和发布网络呼声者不属于这一发布的一部分. 部署匹配的 API 和 0194_publishing_drafts 在使用这些新软件包方法之前迁移.

网络研究(当地来源)

client.knowledge.research 曝光情况 list, (中文(简体) ), quote, (中文(简体) ), start, (中文(简体) ), get, (中文(简体) ), cancel 财务报告和审定财务报表 resume。 。 。 . 使用 list({ status: "all", limit: 10, offset: 0 }) 以找到保存的工作空间工作,包括另一个代理开始的工作. 页数上限为20个摘要; status: "active" 选择已排队/正在运行的任务. 服务器的推出需要配置研究定价和经过验证的运行时间. 明确传出 prompt, (中文(简体) ), productUrl (或无), seriesId (或无), language, (中文(简体) ), maxSources 财务报告和审定财务报表 maxCredits 改为 quote。 。 。 . 从不变的请求开始加上返回的请求 quoteId 和召唤者 idempotencyKey。 。 。 . 中断后重复启动输入/ 键以恢复已接受的工作 . 读取 { jobId } 检查信用、诊断、记录和保存的简短参考. delivery.dispatched 报告队列确认,而不是完成. 取消未来工作;恢复工作可以按原费率使用所接受的剩余预算.

创造性支出

client.creativeSource.usage({ before: null, limit: 25 }) 读取工作空间支出上限和工作收据. 使用 nextCursor 作为 before 下页. coveredOperations 列出受保护的工作家庭; 目前的食谱、研究、截图和孤立的源构建. 未知的提供商成本保留其预订. costBasis 将报告的费用与分配的上限区分开来. Repipe引文保留了现有的信用估计;工作空间/全球货币接纳在一开始就得到解剖检查.

保存的食谱版本

client.recipes.listVersions({ projectId, offset: 0, limit: 20 }) 列出不可移动的模板版本, 包括当前项目修订和最新保存的版本. client.recipes.inspectVersion 接受 projectId, (中文(简体) ), version, (中文(简体) ), section, (中文(简体) ), sourceRevisionId, (中文(简体) ), path, (中文(简体) ), offset 财务报告和审定财务报表 limit。 。 。 . 节是 overview, (中文(简体) ), variables, (中文(简体) ), artifacts, (中文(简体) ), dependencies, (中文(简体) ), assets 财务报告和审定财务报表 source。 。 。 . 用于源区域外的源选择 。 源头检查需要保存源头修订ID; 2; 一个无效路径列表文件,一个路径读取一个精确保存的文件,包括软件包清单和锁文件. 每个收藏默认为20行并最多100个许可. 文本预览在 4,096 个字符后报告截图 . 这些读取了保留快照和当前模板权限 。 公共模板的能见度不授予 跨工作空间版本访问。 通过公共工作终点进行保存/复制是单独的未完成的工作.

食谱写作使用 client.recipes.quote({ request, limits }),然后是 client.recipes.start({ request, limits, quoteId, maxCredits, idempotencyKey })。 。 。 . 请求是 { kind: "capture", value: { projectId, expectedProjectRevision, expectedVersion } } 或者说 { kind: "copy", value: { templateProjectId, version, projectId, expectedProjectRevision } }。 。 。 . 复制一个已存在的空项目的目标; 可选源/ 已取消的映射选择额外的目标项目 . 限制绑定的传输字节,存储字节,操作和存储请求;其最大值在共享的图中. 票价 client.recipes.get({ jobId })· ; cancel({ jobId }) 在不删除已完成产出的情况下停止新工作. 重试相同的起始输入/键来恢复录入和排队交付. SDK发送 Idempotency-Key 当作头相. 开始返回录取收据和当前工作,而不是完成的渲染。 需要定价配置.

可通过 source quote --spec-file FILE --json 财务报告和审定财务报表 client.creativeSource.quote({ projectId, revision, compositionId, frame, output })。 。 。 . 传回 id 作为建筑物 quoteId 拒绝更改价格或设置. 无效的引号接受当前配置的边框;所有边框都以相同的工作空间/全球美元上限构建保留地.

出口估计数

const quote = await client.exports.quote({
  projectId,
  expectedRevision: null,
  resolution: "1080p",
  renderMode: "auto",
  frameRate: null,
});

此处为返回资格、估计入计量和未开始工作的最多工作空间的美元预留. 无法获得的费率有无效数额和理由。 允许重新检查当前限制; 引号保留什么 .

音频引文只读,与生成和被保存的音频恢复共用相同的预算保障:

const audioQuote = await client.generation.quoteAudio({
  kind: "music", characters: null, seconds: 30, preview: true, recovery: false, narrationTake: false,
});

maximumUsd 包括限定范围的工人复试、供应商请求、转移和初步保留. 未知的费率返回一个无效的上限和拒绝理由。 回收引用使用 recovery: true 并且排除了新的供应商购买. 再次检查当前限制 。 现有未知的调度员保留了他们的预留位置,再也没有自动发送其他工作.

图像、视频和单独的即时引用使用相同的只读预算界面:

const visualQuote = await client.generation.quote({
  kind: "video", model: "kling-2.1", seconds: 5, resolution: null,
  sourceImageModel: "fal-ai/nano-banana-2", enhancePrompt: true,
});

sourceImageModel 包括一个图像到视频生成的起始图像; 对现有源无效使用 . enhancePrompt 包括一个增强。 合并上限使用最早的政策到期和当前信贷/预算限额. 用于独立的增强用途 kind: "prompt" 带有无效模型、秒、分辨率和源图像模型. 返回的限制描述了所配置的信封;实际生成仍然验证其全部输入并重新检查录入. 无报价准备金、购买供应商工作或锁定价格。 无法获得的综合价格返回一个无效的上限.

设定 narrationTake: true 直接描述和语音预览. 字符封适用于已准备好的语音,包括指令;最终生成检查已准备好的实际文本. 回收引用保留处理/IO而不购买替换语. 现有的音频工作说明使用其父母津贴.

读取帧成本 projects.quotePreview({ projectId, expectedRevision: null, frameCount: 3, targetWidth: 768, mode: "analyze" })。 。 。 . 接受快照和旋转木马预览选项 idempotencyKey;成功的再试再利用保留了输出并刷新了 URL. 改变的重试输入冲突,不确定的工作在更换之前需要调节.

版本与发布记录

@blitzreels/sdk 共发布 34 个版本,首次发布于 2026/05/06;过去 12 个月发布了 34 个版本。

版本发布日期距今
0.2.25latest2026/10/309 天前
0.2.242026/10/2415 天前
0.2.232026/10/1029 天前
0.2.222026/10/071 个月前
0.2.212026/09/261 个月前
0.2.202026/09/211 个月前

关于 @blitzreels/sdk 的常见问题

@blitzreels/sdk 是什么?

TypeScript SDK供AI代理和开发者在BlitzReels内部编辑视频.

如何安装 @blitzreels/sdk?

在项目目录运行 npm install @blitzreels/sdk,或使用 pnpm add / yarn add / bun add。

@blitzreels/sdk 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@blitzreels/sdk 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@blitzreels/sdk 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@blitzreels/sdk 可以商用吗?

@blitzreels/sdk 使用 SEE LICENSE IN LICENSE 许可。许可条款写在包内的独立文件中,请阅读该文件确认可否商用。以上为概括,不构成法律意见,请以许可原文为准。

@blitzreels/sdk 的下载量有多少?

根据 npm 官方下载统计,@blitzreels/sdk 在 2026/10/09 – 2026/11/07 这 30 天内被下载 57,182 次,日均约 1,906 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@blitzreels/sdk 还在维护吗?

最新版本 0.2.25 发布于 2026/10/30(9 天前);至今共发布 34 个版本,其中过去 12 个月发布了 34 个;首次发布于 2026/05/06。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。