
1. mediakit-cli 是什么把远程 AI 能力封装成命令行代理如果你平时用 ffmpeg 处理音视频又想在脚本里顺手调用云端 AI 能力画质增强、字幕擦除、人声分离、高光提取mediakit-cli 就是为这个场景设计的。它本质是一个命令行代理本地能干的活裁剪、拼接、调速、加字幕直接调 ffmpeg 完成本地干不了的活超分、抠图、ASR、剧情分析转成 HTTP 请求发给云端再把结果拉回来。你不需要写 SDK不需要拼 multipart 上传一条命令加几个 flag 就能跑通。它适合三类人一是做 AIGC 流水线的工程师想把视频处理塞进 shell 脚本或 CI二是用 Claude Code、Cursor 这类 AI Agent 做自动化的人mediakit-cli 自带 skills 目录Agent 读了 SKILL.md 就知道怎么调三是单纯想少写 ffmpeg 长命令的剪辑开发者--local模式下它帮你把滤镜链、atempo 链、路径沙箱都处理好。我试过把它和 chatcut 放在同一条工作流里mediakit-cli 负责批量预处理裁剪、调速、提取音频chatcut 负责在浏览器里做时间线级的精修和 MG 动画两边通过文件系统交接。下面从环境检查开始一步步给出可复制的配置。先明确一个关键设计mediakit-cli 的云端能力全部是远程 API 调用CLI 本地没有任何 AI 推理逻辑。所谓导演技能比如短剧高光智剪实际流程是 CLI 组装参数 → POST 到云端 → 返回 task_id → 轮询 query-task 拿结果。CLI 只做三件事参数拼装、文件上传、轮询。真正的算法在云端服务器上。理解这一点后面排查问题会轻松很多。2. 环境准备与 TaoToken 统一 Key 接入在装 mediakit-cli 之前先把基础依赖对齐。官方要求 Node.js ≥ 18、npm 正常、ffmpeg 5.1.x 以上、ffprobe 可用。Go 只有从源码构建才需要且必须 ≥ 1.22。如果你的 Go 是 1.20 这种低版本别折腾源码构建直接用 npm 一键安装。node -v npm -v ffmpeg -version | head -n 1 ffprobe -version | head -n 1版本对不上就先升级。ffmpeg 8.0.1 这种新版本是兼容的不用降级。确认无误后执行安装npx volcengine/mediakit-cli install -y这条命令会自动下载对应平台的预编译二进制并配好环境。装完跑一次自检mediakit-cli doctordoctor 会检查 ffmpeg/ffprobe 版本、配置目录、API Key 是否就位结果缓存在~/.mediakit/env_cache.json。接下来是鉴权。mediakit-cli 的设计是单 API Key不需要 OAuth/STS/IAM 那套。但如果你像我一样手里同时有好几个模型/媒体服务的 Key管理起来很烦可以用 TaoToken 做统一通道。TaoToken 提供统一的 Key 和 API 入口官网是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 端点是 https://taotoken.net/api 。它的作用是让你用一套凭证去对接多个后端省得每个服务单独配。初始化配置有两种方式。交互式适合第一次mediakit-cli init非交互式适合脚本和 Agent直接给参数mediakit-cli init --mode cloud-first --api-key 你的API-Key --yes配置优先级是命令行 Flag 环境变量 config.json 默认值。临时注入可以用环境变量export MEDIAKIT_API_KEY你的API-Key配置文件落在~/.mediakit/config.json结构大致是这样你可以直接编辑{ mode: cloud-first, api_key: your-api-key-here, endpoint: https://taotoken.net/api, output_path: ./output }这里 endpoint 指向 TaoToken 的 API 地址api_key 填你在 TaoToken 控制台生成的 Key。如果你要单独管理 Key可以到 https://taotoken.net/api-keys 生成想先验证模型通道是否通可以到 https://taotoken.net/models 用对话界面测一下。凭证存储支持 config / shell / env 三种方式--credential-store config表示写进配置文件。3. 可复制配置mediakit-cli 与 chatcut 协同配置好 Key 之后先跑本地能力确认 ffmpeg 链路没问题。本地模式不需要 API Key纯 ffmpeg 封装mediakit-cli --local editing trim-video \ --video-url ./in.mp4 \ --start-time 3 \ --end-time 8输出文件按{原文件名}_{工具名}.{ext}命名重名会追加随机数。输出路径有沙箱限制必须在工作目录之下防止路径穿越。本地能力来自internal/local/generated/local_plans.go里面有约 1000 行真实的 ffmpeg 命令构建逻辑比如调速用的 atempo 链// FFmpeg 单次 atempo 范围 0.5-2.0超出需链式拼接 func atempoChain(speed float64) string { // 构造多个 atempo 滤镜串联 }安全方面本地执行走 FFmpegPolicy 白名单只允许-i、-ss、-vf、-c这类安全 flag阻止注入所有输入路径和参数都过 ValidateSafeText 校验os/exec直接调用不经过 shell。云端能力走异步。以画质增强为例mediakit-cli --cloud video enhance-video \ --video-url url \ --resolution 1080p返回 task_id 后轮询mediakit-cli shared query-task \ --task-id task_id \ --poll-complete--poll-interval-seconds默认 10 秒--max-poll-attempts为 0 表示不自动轮询。所有云端能力支持client_token≤64 字符做幂等重试复用同一个 token强跑就换一个。现在把 chatcut 接进来。chatcut 是浏览器里的 AI 剪辑工具官网编辑器入口在 https://app.chatcut.io/zh/editor/ 。它的定位和 mediakit-cli 互补mediakit-cli 做命令行批处理和云端 AI 调用chatcut 做时间线级精修、字幕校对、MG 动画。协同方式很简单——mediakit-cli 把预处理结果写到./output你在 chatcut 里导入这些文件继续编辑。chatcut 能做的事分三大类。视频剪辑导入素材、整理时间线、剪停顿和口癖、人声清理、生成和校对字幕、加转场、加 B-roll、节奏调整、配乐、音量平衡、导出成片。MG 动画可编辑的标题、字幕强调、数据卡片、流程图、产品卖点动画、下三分之一、片头片尾、图标动效放到时间线上后还能改文字、位置、时长、样式。素材生成视频片段、旁白、背景音乐、音效以及图片、视觉参考、分镜和脚本。一个实用的分工是用 mediakit-cli 的extract-audio把视频音轨抽出来用separate-voice做人声分离把干净人声丢给 chatcut 做字幕同时用trim-video批量裁掉片头片尾再导入 chatcut 精剪。这样命令行负责重复劳动chatcut 负责创意部分。4. 验证请求与成功结果配置完必须验证不然出了问题不知道卡在哪一层。第一步验证本地 ffmpeg 链路mediakit-cli --local editing extract-audio \ --video-url ./test.mp4 \ --format mp3成功的话 output 目录会出现test_extract-audio.mp3用 ffprobe 确认ffprobe -v error -show_entries formatduration,bit_rate -of json ./output/test_extract-audio.mp3返回 JSON 里有 duration 和 bit_rate 就说明本地链路通了。第二步验证云端通道。用一个短音频跑人声分离mediakit-cli --cloud audio separate-voice \ --audio-url 你的音频URL \ --client-token verify-001拿到 task_id 后mediakit-cli shared query-task \ --task-id task_id \ --poll-complete \ --poll-interval-seconds 5终态返回{status: completed, result: {...}}result 里含输出文件 URL。如果一直停在 processing先检查--max-poll-attempts是不是设成了 0。第三步验证同步域。image 域是唯一同步的走/api/v1/tools-sync/*即时返回不用轮询mediakit-cli --cloud image image-ocr \ --image-url 图片URL成功直接返回含 image_url、image_size、image_format 的 JSON。第四步验证 chatcut 侧。打开 https://app.chatcut.io/zh/editor/ 新建项目命名导入 mediakit-cli 输出的文件。能正常播放、时间线可拖动、字幕能生成就说明两边交接没问题。chatcut 的编辑界面和传统剪辑软件操作逻辑一致时间线、字幕、MG 动画都能手动调。5. 本篇常见错排查401 Unauthorized。最常见的原因是 API Key 没生效或 endpoint 配错。先确认环境变量有没有覆盖配置文件echo $MEDIAKIT_API_KEY mediakit-cli config get api_key如果环境变量是空的但 config.json 里有值检查优先级——Flag 环境变量 config.json。endpoint 如果指向了 TaoToken确认地址是 https://taotoken.net/api 而不是带 UTM 的官网地址。Key 失效就去 https://taotoken.net/api-keys 重新生成。local proxy failed。这个报错通常出现在云端请求阶段说明 CLI 到 endpoint 的网络链路有问题。先确认 endpoint 可达curl -I https://taotoken.net/api如果 curl 通但 CLI 报错检查 config.json 里 endpoint 有没有多余斜杠或拼写错误。另外确认没有在环境里设了冲突的代理变量。reading choices 相关报错。这类错误一般出现在解析云端响应时说明返回体不是预期的 JSON 结构。可能是 endpoint 返回了 HTML 错误页比如 404 页面而不是 API 响应。用--verbose或抓包看原始返回。常见原因是 endpoint 路径拼错或者 Key 没有对应模型的权限。OAuth 相关报错。mediakit-cli 本身不需要 OAuth如果你看到 OAuth 报错多半是误配了别的鉴权方式。确认--credential-store用的是 config 而不是 oauth鉴权只走 API Key。Go 版本过低。如果你非要源码构建Go 1.20 会直接失败必须升到 1.22。但更省事的做法是用 npm 安装跳过 Go 依赖。ffmpeg 找不到。doctor 会报 ffmpeg 版本为空。确认 ffmpeg 在 PATH 里which ffmpeg没有就装一个或者把 ffmpeg 所在目录加进 PATH。输出路径被拒。路径沙箱要求输出必须在工作目录之下。如果你写了绝对路径指向别处会被拦。改成相对路径或者把工作目录切到目标位置。任务一直 processing。异步任务有超时长视频处理可能超过默认轮询次数。调大--max-poll-attempts或者先不轮询拿到 task_id 后过一会儿再手动 query。6. 继续往下走mediakit-cli 和 chatcut 的组合核心思路是让命令行处理可批量化、可脚本化的部分让浏览器编辑器处理需要人眼判断和创意调整的部分。mediakit-cli 的 skills 目录是给 AI Agent 用的 prompt 说明书SKILL.md 告诉 Agent 有哪些工具reference/*.md 告诉 Agent 每个参数怎么填。Agent 读了之后知道怎么调命令、怎么轮询但多步骤编排需要上层系统自己做——mediakit-cli 每条命令都是独立原子操作没有编排能力。如果你要把这套接进 Claude Code 或 Cursor建议先读skills/byted-mediakit-shared/SKILL.md它是所有其他 skill 的前置依赖定义了鉴权、模式、轮询的公共规则。然后按域读对应的 SKILL.md。editing 域是唯一双模态的17 个能力全部支持--local和--cloudvideo、audio、image 域都是 cloud onlyimage 域是唯一同步的。想验证模型通道可以到 https://taotoken.net/models 用对话界面测要管理 Key 去 https://taotoken.net/api-keys 接入文档在 https://taotoken.net/doc 。如果你打算长期跑编码和 Agent 工作流Coding Plan 在 https://taotoken.net/coding-plan 。Claude Code 相关的接入配置参考 https://taotoken.net/ClaudeCodeAnthropic 。最后给个实操建议先用--local模式把 ffmpeg 链路跑通确认输出文件正常再切--cloud测云端。这样出问题时能快速定位是本地环境还是网络鉴权。云端任务记得带client_token重试时复用避免重复计费。