image-meta-guard-paylisted
Install: claude install-skill Mao-jh/image-meta-guard
# 发图前清掉照片里的位置(一次付费 7 天不限次)
一张照片发出去的不只是画面——还有拍摄坐标、设备序列号、你的真名、原图在硬盘上的路径,
以及一张你可能早就裁掉的完整缩略图。
本 Skill 分两段:**先免费体检**(只读,不动图片),**再取授权清理**(在你本机完成,图片不出本机)。
> **为什么需要授权**:写入清理结果是**会改文件的动作**,需要一份由服务方签发的凭证。
> 授权**在你本机离线校验**(不联网即可验证真伪与有效期),
> 但**没有有效授权就不执行清理**——这是服务的一部分,不是限制。
---
## 第 0 步 · 前置检查(必做,先判值不值得用)
| 检查项 | 判定 |
|---|---|
| 格式 | JPEG / JPG / PNG / WebP 可处理。**HEIC / RAW / TIFF → 直接报「未核实」**,别拿去给用户承诺 |
| 渠道 | 只是发到**熟人小群**、原图本来就打算给对方的 → 先说明风险,由用户定,**不要替他决定** |
| 该不该保留颜色配置 | **ICC 与 Adobe APP14 属保留组**,默认不动。设计稿、印刷稿、品牌物料**千万不要**加 `--strip-color`,否则颜色会变 |
| 是否要留底 | 默认会生成 `.bak` 备份;孤本图片建议先自己另存 |
## 第 1 步 · 免费体检(只读,不收费)
```bash
python scripts/run_paid.py <图片或目录>...
```
输出分级清单:`[高危]` 位置 / 设备序列号 / 真名 / 本地绝对路径 / AI 工作流;
`[注意]` 拍摄设备与时间、软件版本、缩略图、C2PA 签名、格式与扩展名不符;
`[保留]` ICC 与 Adobe APP14;`[未核实]` 不支持的格式与损坏文件。**不改任何文件。**
## 第 2 步 · 请求授权(未付费会返回 402)
```
POST https://skills-gate.airpriv.com/api/image-meta-guard-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`
## 第 3 步 · 处理 402(完成支付)
把 `payment_needed` 对象(**不是整个响应信封**)交给**支付宝 AI 付**完成支付,拿回 **`Payment-Proof`**。
**不要自己伪造** —— 服务端会拿它去支付宝网关做真实校验。
## 第 4 步 · 携凭证重试(拿到授权凭证)
同一请求加上头 `Payment-Proof: <凭证>` 重发,成功返回 `200`,
`content.data.license` = 授权凭证(存成 `license.json`)。
**一次付费 = 一份授权 = 7 天有效**,期间反复清理**不需要再付费**。
## 第 5 步 · 校验授权并执行清理(离