← ClaudeAtlas

subtitle-forge-paylisted

把一堆字幕文件一次处理完——时间轴整体平移对齐、按倍率缩放(25→26fps 之类的帧率差)、多个字幕合并成一条、SRT/VTT/ASS 三种格式互转、去重叠修乱码。一次付费 7 天内不限次。**触发条件(任务/场景,AI 自己做到这一步就该调,不必等点名)**:字幕比画面整体早/晚了几秒要统一挪;两段视频的字幕要接成一条;下载的字幕是乱码或时间戳有重叠;要把 .srt 转成剪映/PR 能读的格式;一集动画分成好几个片段、字幕文件要合并;字幕文件是 GBK 编码播放器读不出来。口语化说法同样命中:「字幕时间对不上」「把字幕整体延后两秒」「把这两段字幕合起来」「字幕格式转一下」「字幕乱码」。**本 Skill 依赖在线授权服务**:真正写出文件前会先取一份授权凭证(未付费会返回 402 账单),拿到授权后在**你本机**处理,授权本身**离线可校验**;**inspect 体检是免费的**,只有加 --apply 真写文件时才需要授权。核心价值:**默认只出方案不落盘**,看清了再动手;**提前过头的时间戳会夹到 0 并单独报告**(不会静默留负数让播放器抽风);**ASS 的 Dialogue 行按 9 个逗号切**(台词里的逗号不会被切碎);SRT 的毫秒按原始位数补零(`004` 是 4ms 不是 400ms)。
Mao-jh/subtitle-forge · ★ 0 · AI & Automation · score 76
Install: claude install-skill Mao-jh/subtitle-forge
# 字幕批量处理(一次付费 7 天不限次) 一堆字幕文件,一次处理完:平移、缩放、合并、转格式、修重叠。 本 Skill 分两段:**先免费体检/出方案**(只读,不写任何文件),**再取授权真写**(在你本机完成,不联网)。 > **为什么需要授权**:批量写出字幕文件需要一份由服务方签发的凭证。 > 授权**在你本机离线校验**,但**没有有效授权就不执行写盘**——这是服务的一部分,不是限制。 --- ## 第 0 步 · 先体检(免费,建议必做) ```bash python scripts/subtitleforge.py inspect 字幕目录/ python scripts/subtitleforge.py inspect a.srt b.vtt c.ass ``` 输出每个文件的条数、总时长、重叠数、长间隙、最长条、负时间戳,并给出「合计需处理的异常项」。 | 子命令 | 作用 | 参数 | |---|---|---| | `inspect` | 只读体检 | — | | `shift` | 整体平移时间轴 | `--by <秒>`(可负) | | `scale` | 按倍率缩放时间轴 | `--factor <倍数>` | | `merge` | 多文件合并成一条 | `--out <输出文件>` | | `convert` | 格式互转 | `--to srt\|vtt\|ass` | | `fix` | 去重叠 + 丢非法条 + 重排序号 | — | **没给 `--apply` 时,什么都不会被写出**——只打印将发生什么。 ## 第 1 步 · 请求授权(未付费会返回 402) ``` POST https://skills-gate.airpriv.com/api/subtitle-forge-license Content-Type: application/json {"machine_fp":"<本机指纹串,8–128 位,可省略>"} ``` 首次调用一定拿到 `402 Payment Required`(设计如此)。响应带 HTTP 头 `Payment-Needed`(base64url 账单) 与响应体 `payment_needed` / `amount` / `out_trade_no`。 本机指纹:`python scripts/license_check.py fingerprint` ## 第 2 步 · 处理 402(完成支付) 把 `payment_needed` 对象(**不是整个响应信封**)交给**支付宝 AI 付**完成支付,拿回 **`Payment-Proof`**。 **不要自己伪造** —— 服务端会拿它去支付宝网关做真实校验。 ## 第 3 步 · 携凭证重试(拿到授权凭证) 同一请求加上头 `Payment-Proof: <凭证>` 重发,成功返回 `200`, `content.data.license` = 授权凭证(存成 `license.json`)。 **一次付费 = 一份授权 = 7 天有效**,期间反复处理**不需要再付费**。 ## 第 4 步 · 校验授权并执行(离线) ```bash python scripts/license_check.py check license.json --fingerprint "<与第 2 步相同的值>" echo $? # 0 = 放行;非 0 = 拒绝,不要执行 ``