多平台去水印
把任意平台的分享文案 / 链接转成无水印媒体直链并下载,支持批量、按平台归档、JSON 输出。
前置:拿到 API Key(首次使用必读)
解析依赖远端聚合接口(https://qsy.doon.top/api/v1/parse),没有 Key 什么都做不了。
用户没有 Key 时,把下面这段直接告诉他(脚本也会自动打印同样的引导):
解析需要先领一个 API Key,1 分钟:
1. 打开 https://qsy.doon.top
2. 手机扫码 进入「肥喵去水印」小程序
3. 底部「我的」 复制 API Key(形如 mp-xxxxxxxx)
4. 发给我,或自己执行:
python scripts/delogo.py set-key mp-xxxxxxxx
拿到 Key 后,用 set-key 保存即可,不要手动改 skill 里的模板 templates/config.json:
python scripts/delogo.py set-key mp-xxxxxxxx # 写入用户级配置
python scripts/delogo.py check # 自检:应显示 "KEY 有效"
配置优先级:--config 路径 > 环境变量 DELOGO_CONFIG > 用户级
~/.workbuddy/multi-platform-delogo.json > skill 内置模板 templates/config.json。
用户级配置做深合并,因此 skill 目录始终保持无 Key 状态,可以整个打包给别人用。
用户只是问"怎么用/没反应"时,先跑 check,再按它的结论回答;需要重新展示引导用
python scripts/delogo.py guide。不要让用户把 Key 贴到公开渠道或提交进仓库。
若 python 不在 PATH,按平台自己找一个可用解释器即可,不要照抄别人的绝对路径:
where python # Windows
command -v python3 # macOS / Linux
WorkBuddy 自带的托管 Python 一般在 ~/.workbuddy/binaries/python/versions/<版本>/ 下
(Windows 是 python.exe,macOS / Linux 是 bin/python3),展开 ~ 再拼上即可。
常用操作
整段分享文案直接粘进来即可,脚本会自己抽链接、去重、识别平台:
# 解析并下载(默认命令)
python scripts/delogo.py fetch "7.68 复制打开抖音,看看【某某】... https://v.douyin.com/xxxx/"
# 只要直链不要文件
python scripts/delogo.py parse "https://xhslink.com/a/xxxx"
# 多条 / 整份文案文件
python scripts/delogo.py fetch -f links.txt -o D:/delogo_out --by-platform
# 顺手带上封面和背景音乐
python scripts/delogo.py fetch --extras all "https://v.douyin.com/xxxx/"
# 给上层程序消费(stdout 只有 JSON,日志走 stderr)
python scripts/delogo.py fetch --json "https://v.douyin.com/xxxx/"
# 查看平台覆盖 / provider 状态
python scripts/delogo.py platforms
关键参数:
| 参数 | 作用 |
|------|------|
| -o/--out | 输出目录,默认 ./delogo_out |
| --by-platform | 按平台建子目录 |
| --extras cover,audio,all | 额外下载封面 / 音频 |
| --provider <name> | 强制走某个 provider(如 ytdlp) |
| --key / --token | 一次性覆盖 API Key(不落盘) |
| --min-interval | API 调用最小间隔秒数,被限流时调大 |
| --force | 重下已存在文件(默认跳过,天然支持断点续跑) |
| --json | 机器可读输出 |
| --dry-run | 等价于 parse,不落盘 |
子命令:fetch(默认)、parse、check、platforms、guide、set-key。
输出规则
- 文件名:
<平台key>_<标题>.mp4;图集追加-01/-02;封面-cover、音频-audio。 标题里的#话题、非法字符会被清理,长度截断到 48 字。 - 同名已存在则跳过(
--force时自动加-1后缀,不覆盖)。 - 每次运行追加
_manifest.jsonl(含 src、平台、标题、文件路径、状态、错误), 可用于去重与事后审计。 - 下载按平台自动附带
Referer与 UA,规避常见 403 防盗链。
失败处置顺序
- 先看报错里的
error_code:API_KEY_REQUIRED→ 没有 Key 或没被读到:跑一次set-key重存,再check确认。INVALID_API_KEY/API_KEY_DISABLED→ Key 抄错 / 被删 / 被停用,回小程序「我的」重新复制。INSUFFICIENT_CREDITS/ACCOUNT_EXPIRED→ 去后台充值 / 续期,别反复重试。COOKIE_REQUIRED→ 去后台「系统设置-Cookie管理」配小红书/拼多多/视频号 Cookie, 这是"链接明明正确却失败"的首要原因。MEDIA_DELETED_OR_PRIVATE/NO_MEDIA_IN_CONTENT→ 内容本身不可用,换链接。RATE_LIMITED→ 加大--min-interval后重跑,脚本对 429 已有 3 次指数退避。
- 下载阶段 403 / 0 字节 → 直链已过期,重新
fetch,不要复用旧直链。 - 平台不在
supports列表 → 改templates/config.json的supports,或换--provider。 - 详细的平台链接形态、Cookie 依赖、排错表见
references/platforms.md; 接新服务商 / 加 provider 见references/providers.md。
能力边界
- 只做"解析分享链接拿无水印源",不做本地
delogo/ 裁剪 / 图像修复。用户要抹掉 画面里已有的水印时,说明这不属于本 skill 范围,改用 ffmpeg 或图像修复方案。 - 单次请求
url上限 2000 字符;脚本已先抽链接,正常不会触顶。 - 结果仅用于个人备份与已获授权的场景,不要用于搬运或二次分发他人作品。
文件结构
multi-platform-delogo/
├── SKILL.md
├── templates/config.json # 内置配置模板(token 恒为空,可整包分享)
├── scripts/delogo.py # 主程序,纯标准库,无第三方依赖
└── references/
├── platforms.md # 平台链接形态、Cookie 依赖、排错表
└── providers.md # provider 配置规范、错误码、如何接新服务商
用户自己的 Key 存在 ~/.workbuddy/multi-platform-delogo.json,不在上面这棵树里。
Scan to join WeChat group