{"id":"53b67cc3-71b4-4b17-a87c-c077f15c42e6","entityType":"agent","slug":"clawhub-kangleizhui-duanshipinjiexi","name":"Duanshipinjiexi","canonicalUrl":"https://www.xpersona.co/agent/clawhub-kangleizhui-duanshipinjiexi","canonicalPath":"/agent/clawhub-kangleizhui-duanshipinjiexi","generatedAt":"2026-10-09T23:56:55.307Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T12:01:35.201Z","emptyReason":null},"description":"一站式视频解析去水印工具，全面覆盖抖音、快手、小红书、皮皮虾4大主流内容平台，仅针对平台自带水印解析下载剪辑，一键智能去除视频平台标识水印，全程无损解析素材画质， 去水印后画面清晰无模糊、无痕迹、无压缩，完整保快速提取无水印原版视频，适配日常收藏优质内容与二次创作素材整理。 Skill: Duanshipinjiexi Owner: kangleizhui Summary: 一站式视频解析去水印工具，全面覆盖抖音、快手、小红书、皮皮虾4大主流内容平台，仅针对平台自带水印解析下载剪辑，一键智能去除视频平台标识水印，全程无损解析素材画质， 去水印后画面清晰无模糊、无痕迹、无压缩，完整保快速提取无水印原版视频，适配日常收藏优质内容与二次创作素材整理。 Tags: douyin:1.1.2, latest:1.7.6, tools:1.1.2, video:1.1.2 Version history: v1.7.6 | 2026-07-13T10:14:50.726Z | user 优化: 大视频(>10MB)发视频时同时附直链; ≤10MB仅反馈未收到时给直链 v1.7.5 | 2026-07-13T01:45:43.067Z | user v1.7.5: live类型素材处理明确「下载并发送」动图+静图","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2.7K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s178spgct6hv4a3ekfxrbtepnd87x5wr:duanshipinjiexi","sourceUrl":"https://clawhub.ai/kangleizhui/duanshipinjiexi","homepage":"https://clawhub.ai/kangleizhui/skills/duanshipinjiexi","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/kangleizhui/duanshipinjiexi","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/kangleizhui/skills/duanshipinjiexi","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":69,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"一站式视频解析去水印工具，全面覆盖抖音、快手、小红书、皮皮虾4大主流内容平台，仅针对平台自带水印解析下载剪辑，一键智能去除视频平台标识水印，全程无损解析素材画质， 去水印后画面清晰无模糊、无痕迹、无压缩，完整保快速提取无水印原版视频，适配日常收藏优质内容与二次创作素材整理。 Skill: Duanshipinjiexi"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T12:01:35.201Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T12:01:35.201Z","emptyReason":null},"stars":null,"forks":null,"downloads":2711,"packageName":null,"latestVersion":"1.7.6","tractionLabel":"2.7K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T12:01:35.201Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T12:01:35.201Z","lastCrawledAt":"2026-10-09T12:01:35.201Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T12:01:35.201Z","lastVerifiedAt":null,"highlights":[{"version":"1.7.6","createdAt":"2026-07-13T10:14:50.726Z","changelog":"优化: 大视频(>10MB)发视频时同时附直链; ≤10MB仅反馈未收到时给直链","fileCount":8,"zipByteSize":11198},{"version":"1.7.5","createdAt":"2026-07-13T01:45:43.067Z","changelog":"v1.7.5: live类型素材处理明确「下载并发送」动图+静图","fileCount":8,"zipByteSize":11308},{"version":"1.7.4","createdAt":"2026-07-13T01:35:22.378Z","changelog":"v1.7.4: 发送指南调整：文字先发一条，视频/图片/动图/配乐全部单独发送","fileCount":8,"zipByteSize":11260},{"version":"1.7.3","createdAt":"2026-07-13T01:21:16.350Z","changelog":"v1.7.3: 电脑端链接提示覆盖所有解析失败场景（含超时/404等）","fileCount":8,"zipByteSize":11105},{"version":"1.7.2","createdAt":"2026-07-13T01:03:29.250Z","changelog":"v1.7.2: 更新技能描述文案","fileCount":8,"zipByteSize":11206},{"version":"1.7.1","createdAt":"2026-07-13T00:58:29.491Z","changelog":"v1.7.1: 大视频兜底补充：用户反馈没收到视频同样发直链","fileCount":8,"zipByteSize":10912},{"version":"1.7.0","createdAt":"2026-07-13T00:55:09.171Z","changelog":"v1.7.0: 电脑端链接解析失败后提示用户去手机APP复制分享链接","fileCount":8,"zipByteSize":10905},{"version":"1.6.9","createdAt":"2026-07-13T00:53:53.440Z","changelog":"v1.6.9: 新增电脑端链接识别提示；大视频超时发直链兜底","fileCount":8,"zipByteSize":10947}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s178spgct6hv4a3ekfxrbtepnd87x5wr:duanshipinjiexi","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kangleizhui-duanshipinjiexi/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kangleizhui-duanshipinjiexi/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kangleizhui-duanshipinjiexi/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-kangleizhui-duanshipinjiexi/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-kangleizhui-duanshipinjiexi/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-kangleizhui-duanshipinjiexi/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-09T23:56:55.305Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kangleizhui-duanshipinjiexi/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kangleizhui-duanshipinjiexi/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kangleizhui-duanshipinjiexi/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kangleizhui-duanshipinjiexi/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-09T12:01:35.201Z","emptyReason":null},"readme":"Skill: Duanshipinjiexi\n\nOwner: kangleizhui\n\nSummary: 一站式视频解析去水印工具，全面覆盖抖音、快手、小红书、皮皮虾4大主流内容平台，仅针对平台自带水印解析下载剪辑，一键智能去除视频平台标识水印，全程无损解析素材画质， 去水印后画面清晰无模糊、无痕迹、无压缩，完整保快速提取无水印原版视频，适配日常收藏优质内容与二次创作素材整理。\n\nTags: douyin:1.1.2, latest:1.7.6, tools:1.1.2, video:1.1.2\n\nVersion history:\n\nv1.7.6 | 2026-07-13T10:14:50.726Z | user\n\n优化: 大视频(>10MB)发视频时同时附直链; ≤10MB仅反馈未收到时给直链\n\nv1.7.5 | 2026-07-13T01:45:43.067Z | user\n\nv1.7.5: live类型素材处理明确「下载并发送」动图+静图\n\nv1.7.4 | 2026-07-13T01:35:22.378Z | user\n\nv1.7.4: 发送指南调整：文字先发一条，视频/图片/动图/配乐全部单独发送\n\nv1.7.3 | 2026-07-13T01:21:16.350Z | user\n\nv1.7.3: 电脑端链接提示覆盖所有解析失败场景（含超时/404等）\n\nv1.7.2 | 2026-07-13T01:03:29.250Z | user\n\nv1.7.2: 更新技能描述文案\n\nv1.7.1 | 2026-07-13T00:58:29.491Z | user\n\nv1.7.1: 大视频兜底补充：用户反馈没收到视频同样发直链\n\nv1.7.0 | 2026-07-13T00:55:09.171Z | user\n\nv1.7.0: 电脑端链接解析失败后提示用户去手机APP复制分享链接\n\nv1.6.9 | 2026-07-13T00:53:53.440Z | user\n\nv1.6.9: 新增电脑端链接识别提示；大视频超时发直链兜底\n\nv1.6.8 | 2026-07-13T00:38:23.520Z | user\n\nv1.6.8: field-map.md/troubleshooting.md 替换旧参考文件；清理示例码占位符\n\nv1.6.7 | 2026-07-13T00:14:33.782Z | user\n\n移除废弃的动图合成功能(synthesize_live.py + synthesize-guide.md)\n\nv1.6.6 | 2026-07-12T23:55:31.445Z | user\n\n修复ClawHub平台显示名称\n\nv1.6.5 | 2026-07-12T23:49:14.079Z | user\n\n技能文档全面精简重构：拆分平台字段表到references/field-map.md，连接失败兜底到references/url-fallback.md；新增边界条件、原因说明、错误处理指引；按各平台实际返回字段校准（快手data.like、小红书collected_count、皮皮虾platform为api）；description触发条件更精准；主文档从215行精简到141行\n\nv1.6.4 | 2026-07-12T23:32:39.852Z | user\n\n去掉微博字段说明，互动数据仅抖音完整返回\n\nv1.6.3 | 2026-07-12T23:31:24.467Z | user\n\n细化必发字段：区分抖音(data.stats)、微博(data.extra)和其他平台（无互动数据），AI按platform判断不编造\n\nv1.6.2 | 2026-07-12T23:28:10.863Z | user\n\nDouyinParser新增collect_count收藏数统计，字段表标注必发收藏\n\nv1.6.1 | 2026-07-12T23:25:53.472Z | user\n\nAPI响应新增platform字段（来源平台），字段说明表标注必发信息\n\nv1.6.0 | 2026-07-12T23:23:48.862Z | user\n\n新增响应字段说明，标注必发信息（标题/作者/互动数据），发送前先发文字消息\n\nv1.5.9 | 2026-07-12T23:14:00.653Z | user\n\n修复: 视频CDN防盗链需带UA+Referer下载，更新synthesize-guide\n\nv1.5.8 | 2026-07-12T23:08:34.372Z | user\n\n修正动图发送方式：live 类型 data.url 为空，实际发动图段+静图+配乐\n\nv1.5.7 | 2026-07-12T22:44:04.722Z | user\n\n新增视频链接兜底：文件太大或用户反馈没收到时，直接发解析链接给用户下载\n\nv1.5.6 | 2026-07-12T22:26:15.398Z | user\n\n安全修复：移除 pay/identity.php 的 ?code= 自定义创建功能，改码统一走 modify_identity.php\n\nv1.5.5 | 2026-07-12T22:19:57.844Z | user\n\n新增修改身份码功能：用户可自定义好记的身份码，权益套餐不变\n\nv1.5.4 | 2026-07-12T22:12:43.979Z | user\n\n移除创建身份码（AI 用）段落\n\nv1.5.3 | 2026-07-12T22:10:41.690Z | user\n\n移除 /pay/identity.php 创建身份码段落，保留 /api/create_identity.php 自动创建\n\nv1.5.2 | 2026-07-12T22:09:39.114Z | user\n\n移除 AI 自动创建身份码功能及 AI 行为规则中的自动创建指引\n\nv1.5.1 | 2026-07-12T22:07:37.170Z | user\n\n移除 AI 自动创建身份码功能，AI 仅使用用户提供的身份码\n\nv1.5.0 | 2026-07-12T21:28:47.326Z | user\n\n移除所有后端服务器信息，仅保留API用户文档；新增 identity.php API 支持自定义码\n\nv1.1.2 | 2026-07-12T18:01:58.497Z | user\n\n更新 Base URL 为 HTTPS (https://spqsy.kcucu.com)\n\nv1.1.1 | 2026-07-12T09:16:03.728Z | user\n\nv1.1.1: 修复 missing synthesize-guide.md 引用文件\n\nv1.1.0 | 2026-07-12T09:12:41.605Z | user\n\nv1.1.0: 新增连接失败自动兜底机制 — 域名失效时自动从 SkillHub/ClawHub 拉取最新技能包获取新地址重试\n\nv1.0.60 | 2026-07-12T08:59:42.996Z | user\n\nv1.0.60: 彻底移除旧密钥所有引用，全线切换身份码系统；删除key_manager字段\n\nv1.0.59 | 2026-07-12T08:58:40.728Z | user\n\nv1.0.59: 彻底清理所有服务端/内部引用（publishing-guide.md、svproxy、后台管理员、本机等）\n\nv1.0.58 | 2026-07-12T08:56:48.395Z | user\n\nv1.0.58: 修复troubleshooting合成残留文案；新增多平台处理说明；明确video不发音乐、image/live发音乐规则\n\nv1.0.57 | 2026-07-12T08:41:01.504Z | user\n\nv1.0.57: 彻底移除服务端合成逻辑和服务端实现文档，改为AI直接下载动图段发送；动图+图片+音乐一次性发出\n\nv1.0.55 | 2026-07-11T21:58:25.808Z | user\n\nv1.0.55: 清理注释中 svproxy 等后端痕迹，纯用户端\n\nv1.0.54 | 2026-07-11T21:57:19.326Z | user\n\nv1.0.54: 脚本参数名 key→code, 清理后端残留\n\nv1.0.53 | 2026-07-11T21:55:02.782Z | user\n\n移除 references/key-rules.md 中硬编码的测试身份码\n\nv1.0.52 | 2026-07-11T21:16:59.852Z | user\n\n身份码规则重构：用户给码→直接用+覆盖记忆，三场景分流，支持多AI共用不冲突\n\nv1.0.50 | 2026-07-11T19:35:54.584Z | user\n\ndescription补句号\n\nv1.0.49 | 2026-07-11T19:25:27.446Z | user\n\n检测→解析 措辞优化\n\nv1.0.48 | 2026-07-11T19:24:28.490Z | user\n\n统一资源较大提醒：动图必提醒 + 超10MB通用提醒，一处涵盖\n\nv1.0.47 | 2026-07-11T19:19:18.596Z | user\n\nClawHub 显示名修复\n\nv1.0.46 | 2026-07-11T19:17:17.268Z | user\n\n显示名称改为：一键短视频去水印\n\nv1.0.45 | 2026-07-11T19:15:21.455Z | user\n\n动图提示表述调整：检测到包含动图的作品时100%告知等待\n\nv1.0.44 | 2026-07-11T19:09:57.337Z | user\n\n动图100%提示等待; 超10MB通用提示\n\nv1.0.43 | 2026-07-11T19:08:04.373Z | user\n\n10MB以上所有类型（视频/图片/动图）统一提示等待\n\nv1.0.42 | 2026-07-11T19:05:10.896Z | user\n\n动图画质升级; 新增10MB以上素材超时提示\n\nv1.0.41 | 2026-07-11T18:58:15.118Z | user\n\n动图画质全面升级：CRF 28→18 视觉无损，合并改用 -c copy 零重编码，preset 从 ultrafast→medium\n\nv1.0.40 | 2026-07-11T18:55:45.845Z | user\n\n画质全面升级：CRF 28→18 视觉无损，合并改用 -c copy 零重编码，preset 从 ultrafast→medium；dashboard free_daily 次数显示封顶；async_job_handler IP 传递修复\n\nv1.0.39 | 2026-07-11T18:22:33.693Z | user\n\n更新技能描述文案\n\nArchive index:\n\nArchive v1.7.6: 8 files, 11198 bytes\n\nFiles: _meta.json (134b), references/api-docs.md (3948b), references/field-map.md (1672b), references/key-rules.md (3378b), references/troubleshooting.md (897b), references/url-fallback.md (1344b), skill-card.md (2283b), SKILL.md (5705b)\n\nFile v1.7.6:SKILL.md\n\n---\nname: duanshipinjiexi\nslug: duanshipinjiexi\ndisplayName: 一键短视频去水印\ndescription: 一站式视频解析去水印工具，全面覆盖抖音、快手、小红书、皮皮虾4大主流内容平台，仅针对平台自带水印解析下载剪辑，一键智能去除视频平台标识水印，全程无损解析素材画质， 去水印后画面清晰无模糊、无痕迹、无压缩，完整保快速提取无水印原版视频，适配日常收藏优质内容与二次创作素材整理。\nversion: 1.7.6\nsummary: 抖音/快手/小红书/皮皮虾去水印解析。免费每日用完自动扣按量计次，包月到期回退免费。\nlicense: MIT\nwhen_to_use:\n  - 用户发来抖音/快手/小红书/皮皮虾链接 → 自动解析\n  - 用户给了身份码 → 直接用不创建\n  - 用户询问套餐、购买、改码、查状态\n  - 用户告知已支付 → 查状态并交付身份码\n---\n\n# 短视频去水印解析\n\n> Base URL: `https://spqsy.kcucu.com`\n\n## 🆔 身份码\n\n5位大写字母数字，**永久不变**，大小写不敏感。多设备多AI共用，不存在占用概念。\n\n按以下三个场景区分处理：\n\n### 场景一：用户给了码 → 直接用\n\n**不创建、不修改、不替换**。保存到记忆，之后都用这个码。\n\n```bash\nGET /api/parse.php?code={用户给的码}&url=链接\n```\n\n> 用户给的码覆盖AI自建码（旧码仍在服务端，AI不再用）。多个AI用同一个码各自调即可，不要试图\"占有\"。\n\n### 场景二：用户没给码 → AI自动创建\n\n首次调用不传code，自动生成新码并保存到记忆。\n\n```bash\n# 专用接口\nGET /api/create_identity.php\n\n# 一步到位（自动创建+解析）\nGET /api/parse.php?url=视频链接\n```\n\n> 从响应提取身份码保存，后续所有调用都用它。系统按IP+UA指纹防重，同一工具只会返回同一个码。\n\n### 场景三：用户主动要求改码\n\n**只有**用户明确说\"改码/换码/修改身份码\"时才走：\n\n```bash\nPOST /api/modify_identity.php\nContent-Type: application/x-www-form-urlencoded\n\nold_code=原码&new_code=新码\n```\n\n规则：5位数字+字母、不能重复、60秒防抖。\n\n### 查状态（零消耗）\n\n```bash\nGET /api/identity_info.php?code={身份码}\n```\n\n> 权益优先级详见 `references/key-rules.md`\n\n## ⚡ 解析\n\n收到链接直接调 API，不要用浏览器打开。\n\n```bash\ncurl -s --max-time 30 \"https://spqsy.kcucu.com/api/parse.php?code={CODE}&url=链接\"\n```\n\n> **连接失败兜底**：上述请求因 DNS/连接/超时错误失败时，跑 `references/url-fallback.md` 的脚本自动获取新地址。\n\n### 处理不同 type\n\n响应中的 `data.type` 决定素材和配乐处理方式：\n\n| type | 素材处理 | 配乐处理 | 原因 |\n|------|---------|---------|------|\n| **video** | 下载 `data.url`/`video_backup[0]` 发视频 | **不发** | 视频自带音轨 |\n| **image** | 下载 `data.images[]` 发图片 | 发 `data.music.url` | 图文是静默的，需要音乐 |\n| **live** | 下载并发送 `live_photo[].video`(动图)+`data.images[]`(静图) | 发 `data.music.url` | 动图也无声音 |\n\n> **大视频兜底**：素材总量超 **10MB** 时，**发视频的同时直接把 `data.url` / `video_backup[0]` 的直链也发给用户**，这样即使收不到视频，用户也能点链接下载。同时告知「资源较大，已同时附上直链备用」。\n>\n> 素材总量≤**10MB** 时正常发视频，仅当用户反馈「没收到视频」或发送失败时，再发直链兜底。\n\n### 多平台链路\n\n4个平台都调同一个 `parse.php`，AI 不需要区分平台，用户发什么链接就传什么：\n\n```bash\nGET /api/parse.php?code={CODE}&url=用户发的链接\n```\n\n> 快手链接返回404/500时，先 `curl -sL -o /dev/null -w '%{url_effective}'` 解短链再传。\n\n### 发送给用户\n\n**发送顺序：先把文字信息（标题、作者、互动数据、剩余次数）发一条，再逐条单独发素材（视频/图片/动图），配乐也单独发一条。**\n\n视频、图片、动图全部单独发送，不要跟文字一起发。\n\n响应含 `platform` 字段标识来源。**各平台字段结构不同**，按 `references/field-map.md` 提取。\n\n核心原则：\n- 有的字段就发，**没有的不要编造**\n- 配乐单独发一条（仅抖音/快手有）\n- 每日剩余次数告知用户\n\n### 边界条件\n\n以下情况**不处理**，直接告知用户：\n- 解析返回 403 → 身份码无效或次数用完\n- 解析返回 429 → 每日限额用完，明天再试\n- 平台不在抖音/快手/小红书/皮皮虾范围内 → 暂不支持\n- 链接打不开或解析超时 → 建议用户重新分享链接\n\n### 错误码\n\n| 码 | 含义 | 处理 |\n|----|------|------|\n| 403 | 身份码无效/次数用完 | 引导用户购买套餐 |\n| 429 | 每日限额用完 | 告知明天恢复或购买 |\n| 500 | 解析异常 | 重试一次，再失败报错 |\n\n> **电脑端链接提示**：解析失败（任何原因：超时、HTTP 错误、返回码不在列表中）时，检查用户发的链接是否是电脑端页面链接（如 `www.xiaohongshu.com/explore/`、`www.douyin.com/video/`），如果是则额外告知「暂不支持电脑端链接，请在手机APP对应平台上复制作品分享链接」。\n\n## 💰 购买\n\n```bash\nGET  /pay/plans.php              # 展示套餐\nPOST /pay/create.php              # 下单\n{\"identity_code\":\"{码}\",\"id\":\"count_10\"}\nGET  /pay/query.php?order_id={ID} # 查支付\n```\n\n返回 `qr_code` 生成二维码发用户扫码。支付成功后用 `identity_info.php` 确认到账。\n\n> **API 详情** `references/api-docs.md`\n> **异常处理** `references/troubleshooting.md`\n\nFile v1.7.6:_meta.json\n\n{\n  \"ownerId\": \"kn7bdg1vvrjevs20ka8hbvkshh87xc7g\",\n  \"slug\": \"duanshipinjiexi\",\n  \"version\": \"1.7.6\",\n  \"publishedAt\": 1783937690726\n}\n\nFile v1.7.6:references/api-docs.md\n\n# API 文档\n\n> Base URL: `https://spqsy.kcucu.com`\n> 所有身份码参数大小写不敏感，大小写完全等价\n\n## 🆔 身份码系统\n\n身份码是5位字母数字，永久不变。所有操作绑定同一个身份码：\n- 首次调用自动生成，每天免费10次\n- 购买套餐后同一身份码叠加权益\n- 可以随时修改身份码（换好记的码）\n\n## 1. 创建身份码（无需视频链接）\n\n```bash\nGET /api/create_identity.php\n```\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"identity_code\": \"{CODE}\",\n    \"daily_limit\": 10,\n    \"is_new\": false\n  }\n}\n```\n\n也可指定自定义码：\n\n```bash\nGET /pay/identity.php?code={CODE}\n```\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"identity_code\": \"{CODE}\",\n    \"is_new\": true\n  }\n}\n\n## 2. 解析视频\n\n```bash\nGET /api/parse.php?code={身份码}&url={链接}\n# 首次调用可不传 code，自动生成身份码\nGET /api/parse.php?url={链接}\n```\n\n### 响应 JSON\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"type\": \"\",\n    \"title\": \"\",\n    \"author\": {},\n    \"url\": \"\",\n    \"video_backup\": [],\n    \"images\": [],\n    \"live_photo\": [],\n    \"music\": {},\n    \"stats\": {}\n  },\n  \"identity_info\": {\n    \"is_new\": false,\n    \"daily_remaining\": 0,\n    \"remaining\": null,\n    \"plans\": []\n  }\n}\n```\n\n### 关键字段\n\n| 字段 | 说明 |\n|------|------|\n| data.type | video=视频, image=图片, live=动图 |\n| data.url | 视频直链（video 类型） |\n| data.images[] | 所有静图 URL，可直接 `curl` 下载 |\n| data.live_photo[] | 动图素材：每段有 video(MP4) + image(静图)。**下载 video 需带 User-Agent 和 Referer** |\n| data.music.url | 配乐链接（可直接下载） |\n| data.stats | 互动数据：liked/comment/share/collect |\n| identity_info.daily_remaining | 今日剩余次数 |\n| identity_info.remaining | 计次剩余次数 |\n\n### 错误码\n\n| HTTP | msg | 说明 |\n|------|-----|------|\n| 400 | 缺少参数: url | 未传视频链接 |\n| 403 | 身份码无效 | 身份码不存在或已停用 |\n| 429 | 今日调用次数已达上限 | 免费每日10次用完，或所有权益耗尽 |\n| 500 | 解析服务异常 | 服务器异常，重试一次 |\n\n## 3. 修改身份码\n\n```bash\nPOST /api/modify_identity.php\nContent-Type: application/x-www-form-urlencoded\n\nold_code=原身份码&new_code=新身份码\n```\n\n规则：5位数字+字母，大小写不敏感，60秒防抖。权益全部保留。\n\n| HTTP | 含义 |\n|------|------|\n| 200 | 修改成功 |\n| 400 | 参数缺失 / 格式错误 |\n| 404 | 旧身份码不存在 |\n| 403 | 旧身份码已停用 |\n| 409 | 新码已被占用 |\n| 429 | 操作太频繁 |\n\n## 4. 查身份码状态\n\n```bash\nGET /api/identity_info.php?code={身份码}\n```\n\n零消耗，返回完整权益信息：\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"is_active\": true,\n    \"plans\": [],\n    \"remaining\": null,\n    \"daily_remaining\": 0,\n    \"daily_used_today\": 0,\n    \"expires_at\": null\n  }\n}\n```\n\n## 5. 下单\n\n```bash\nPOST /pay/create.php\nContent-Type: application/json\n\n{\"identity_code\": \"{身份码}\", \"id\": \"count_10\", \"name\": \"体验套餐\", \"type\": \"count\", \"count\": 10, \"price\": 0.50}\n```\n\n```json\n{\"success\": true, \"order_id\": \"SV20260707XXXX\", \"qr_code\": \"https://qr.alipay.com/xxx\", \"amount\": 0.50}\n```\n\n⚠️ 收到 `qr_code` 后必须 `qrencode -o /tmp/qr.png \"URL\"` 生成二维码图片发 MEDIA。禁止直接发链接。\n\n### 套餐列表\n\n```bash\nGET /pay/plans.php\n```\n\n动态获取，以实时返回为准。\n\n## 6. 查支付状态\n\n```bash\nGET /pay/query.php?order_id=SV20260707XXXX\n```\n\n| status | 含义 |\n|--------|------|\n| `paid` | ✅ 已支付，权益已绑定到身份码 |\n| `pending` | ⏳ 等待支付 |\n| `closed` | ❌ 已关闭 |\n\n支付成功后用 `identity_info.php` 确认权益到账。\n\n## 7. 购买时生成身份码\n\n用户购买后可能要一个新的身份码来接收套餐：\n\n```bash\nGET /pay/identity.php?code=用户自定义码\n# 或自动生成\nGET /pay/identity.php\n```\n\nFile v1.7.6:references/field-map.md\n\n# 平台字段映射表\n\n解析响应含 `platform` 字段标识来源。各平台字段结构不同，按表提取，没有的不要编造。\n\n| 发送 | 抖音 | 快手 | 小红书 | 皮皮虾 |\n|------|:---:|:---:|:-----:|:-----:|\n| 标题 | `data.title` ✅ | `data.title` ✅ | `data.title` ✅ | `data.title` ✅ |\n| 作者 | `data.author.name` ✅ | `data.author`(字符串) ✅ | `data.author.name` ✅ | `data.author`(字符串) ✅ |\n| 点赞 | `data.stats.liked_count` ✅ | `data.like` ✅ | `data.stats.liked_count` ✅ | ❌ |\n| 评论 | `data.stats.comment_count` ✅ | ❌ | `data.stats.comment_count` ✅ | ❌ |\n| 分享 | `data.stats.share_count` ✅ | ❌ | `data.stats.share_count` ✅ | ❌ |\n| 收藏 | `data.stats.collect_count` ✅ | ❌ | `data.stats.collected_count` ✅ | ❌ |\n| 配乐 | `data.music.*` ✅ | `data.music.*` ✅ | ❌ | ❌ |\n| 类型 | `data.type` ✅ | `data.type` ✅ | `data.type` ✅ | ❌(默认video) |\n\n## 注意事项\n\n1. **皮皮虾**的 `platform` 返回 `\"api\"`（不是 `\"pipix\"`）\n2. **快手**的 `data.author` 是字符串（抖音/小红书是 `{name: xxx}` 对象）\n3. **小红书**的收藏字段是 `data.stats.collected_count`（不是 `collect_count`）\n4. **皮皮虾**无互动数据、无配乐、无 `data.type` → 只发标题和作者\n\n## 发送格式\n\n**文字先发一条**，然后视频/图片/动图逐条单独发。配乐也单独发一条。\n\n文字消息格式：\n```\n📹 {平台名}\n标题：xxx\n作者：xxx\n👍 1.2万  💬 345  ⭐ 567  🔗 89\n📊 今日剩余：8次\n```\n\n没有的字段不显示。素材和配乐全部单独发送：\n\n```\n🎵 配乐：标题 - 作者名\n```\n\nFile v1.7.6:references/key-rules.md\n\n# 身份码使用规则\n\n## 身份码提示（按 `identity_info` 显示）\n\n| identity_info | 显示 |\n|----------|------|\n| `daily_remaining: 8` | `📊 今日免费剩余：8次（每身份码每天10次）` |\n| `remaining: 42` | `📊 剩余：42次` |\n| `remaining: null, expires_at: 有值` | 不显示剩余（时长/永久套餐） |\n| `daily_remaining: 0, remaining: null` | `📊 今日免费次数已用完。可以购买套餐继续使用（发送\"套餐\"查看）` |\n\n## 📌 身份码规则\n\n- 身份码是5位字母数字，**大小写不敏感**\n- **永久不变**，购买套餐后同一码叠加权益\n- 可以随时修改成更好记的码（见 modify_identity.php）\n- 同 IP + 同设备指纹只会返回同一个身份码，防刷\n\n## AI 行为规则\n\n1. **永远只有一个「当前使用的身份码」** — 首次调用自动生成后保存\n2. **开始对话** → 不传 code 调 `/api/parse.php?url=链接` → 自动生成身份码 → 从响应中提取并保存\n3. **用户买了套餐** → 查支付结果 → 权益自动绑定到当前身份码 → 告知用户\n4. **调用失败（403 / 429）** → 按 HTTP 码区分处理：\n\n| HTTP | 含义 | 操作 |\n|------|------|------|\n| 403 | 身份码无效/已停用 / 该身份码无可用权益 | 检查身份码是否正确传入，或查 `identity_info.php` 确认权益状态 |\n| 429 | 今日免费次数已用完 | 引导购买套餐 |\n| 429 | 按量次数已用完 | 引导购买套餐 |\n| 500 | 解析服务异常 | 重试一次，仍失败告知用户 |\n\n**错误消息说明：**\n\n| 错误消息 | 含义 |\n|---------|------|\n| `今日免费次数已用完（X次/天），请购买套餐获取更多次数` | 免费每日额度耗尽，用户需要购买套餐 |\n| `按量次数已用完，请购买套餐` | 按量付费额度耗尽（且无免费每日可用） |\n| `该身份码无可用权益` | 身份码存在但没有任何有效权益（异常状态） |\n| `身份码无效` | 身份码不存在/被禁用，或完全未匹配任何身份码/权益 |\n\n## 📊 权益优先级\n\n**包月/包天/永久(不限量) → 免费每日(10次/天) → 按量付费(计次)**\n\n\n\n| 用户有什么 | 实际消耗顺序 |\n|-----------|------------|\n| 只有免费每日 | → 直接用免费每日 |\n| 免费 + 按量 | → 先用免费10次/天 → 用完了扣按量 |\n| 包月 + 免费 + 按量 | → 先用包月不限量 → 包月到期 → 回退免费10次/天 → 免费用完 → 扣按量 |\n| 已过期套餐 | → 冻结次数自动转成按量，同上逻辑 |\n\n如果用户问\"到期了会怎样\"，答案永远是：先回退免费每日，免费用完了才扣按量，不会直接废掉。\n\n## 🔍 last_ip 说明\n\n`last_ip` 记录的是**谁调了 API**，不是最终用户的IP。通过 AI/API 网关调用时通常显示为本机地址（`127.0.0.1`）。真实用户直接调 API 时才会记录用户公网 IP。\n\n## 常见翻车\n\n| 错误 | 纠正 |\n|------|------|\n| 不保存身份码直接调下一次 | **必须从首次响应的 `identity_info` 中提取身份码并保存** |\n| 手动新建多个身份码 | **一个就够了**，所有权益叠加到同一个码 |\n| 传小写身份码以为不行 | ✅ 大小写都支持，系统自动转大写 |\n| 猜权益优先级搞反了 | ⚠️ **不限量 → 免费每日 → 按量计次**，忘了回来查 |\n\nFile v1.7.6:references/troubleshooting.md\n\n# 异常处理指南\n\n## API 解析失败\n\n| 现象 | 原因 | 处理 |\n|------|------|------|\n| HTTP 500 | 抖音 WAF 拦截 / 服务异常 | 重试1次，仍失败则告知用户「解析服务暂不可用，稍后再试」 |\n| HTTP 403 | 身份码无效/已停用 | 检查身份码是否正确传入 |\n| HTTP 429 | 每日/总次数用完 | 引导购买套餐续费 |\n| 超时（>30s无响应） | 抖音图文笔记解析慢 | 重试1次，设置 60s 超时 |\n\n## 素材下载失败\n\n| 现象 | 原因 | 处理 |\n|------|------|------|\n| 视频URL下载返回403 | CDN 防盗链/URL过期 | 直接用 `data.url` |\n| 动图段下载失败 | 抖音 CDN geo-block / 过期 | 跳过这段，只发成功下载的动图段 + 静图 + 配乐 |\n| 图片下载失败 | 代理临时故障 | 重试1次，跳过该张图片 |\n| 配乐下载失败 | CDN 问题 | 跳过配乐，只发视频段/图片 |\n\nFile v1.7.6:references/url-fallback.md\n\n# 连接失败兜底流程\n\n当 `parse.php` 请求因 **DNS 解析失败、连接被拒绝、超时**等连接错误失败时，说明解析服务器地址可能已变更。按以下流程自动获取新地址：\n\n```bash\nTEMP_DIR=$(mktemp -d)\n# 1️⃣ 从 SkillHub 下载最新技能包提取 Base URL\ncurl -sL \"https://api.skillhub.cn/api/v1/download?slug=duanshipinjiexi\" -o \"$TEMP_DIR/skill.zip\"\nunzip -o \"$TEMP_DIR/skill.zip\" SKILL.md -d \"$TEMP_DIR\" 2>/dev/null\nNEW_URL=$(grep 'Base URL:' \"$TEMP_DIR/SKILL.md\" | sed 's/.*`\\(.*\\)`.*/\\1/')\nrm -rf \"$TEMP_DIR\"\n\nif [ -n \"$NEW_URL\" ]; then\n  curl -s --max-time 30 \"$NEW_URL/api/parse.php?code={CODE}&url=视频链接\"\n  echo \"【提示】解析服务地址已更新，后续使用新地址 $NEW_URL\"\nelse\n  # 2️⃣ 兜底：从 ClawHub 查\n  JSON=$(curl -s \"https://clawhub.ai/api/v1/skills/duanshipinjiexi\")\n  NEW_URL=$(echo \"$JSON\" | python3 -c \"import sys,json; d=json.load(sys.stdin).get('description',''); import re; m=re.search(r'Base URL: `(.+)`', d); print(m.group(1) if m else '')\" 2>/dev/null)\n  if [ -n \"$NEW_URL\" ]; then\n    curl -s --max-time 30 \"$NEW_URL/api/parse.php?code={CODE}&url=视频链接\"\n    echo \"【提示】解析服务地址已更新，后续使用新地址 $NEW_URL\"\n  else\n    echo \"【错误】无法获取新解析地址，请手动更新技能\"\n  fi\nfi\n```\n\nFile v1.7.6:skill-card.md\n\n## Description:\n\nDuanshipinjiexi helps an agent parse supported Douyin, Kuaishou, Xiaohongshu, and Pipixia links, retrieve watermark-free media where available, manage identity-code usage, and guide status or payment flows.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[kangleizhui](https://clawhub.ai/user/kangleizhui)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and agents use this skill to process shared short-video links from supported Chinese content platforms, return downloadable media or fallback links, and track remaining quota tied to an identity code.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Automatic fallback can send user video links and identity codes to an unverified replacement service.\n\nMitigation: Disable fallback or require administrator approval before switching endpoints; use the skill only with links and identity codes acceptable for third-party processing.\n\nRisk: The identity code may be saved and reused for quota and purchases.\n\nMitigation: Treat the identity code like an account token and avoid exposing it in shared logs, public chats, or unrelated workflows.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/kangleizhui/skills/duanshipinjiexi)\n- [API Docs](artifact/references/api-docs.md)\n- [Field Map](artifact/references/field-map.md)\n- [Key Rules](artifact/references/key-rules.md)\n- [Troubleshooting](artifact/references/troubleshooting.md)\n- [URL Fallback](artifact/references/url-fallback.md)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Shell commands, Guidance]\n\n**Output Format:** [Markdown or plain text with command snippets, media links, status details, and user-facing guidance.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include direct media URLs, remaining quota information, payment-status guidance, and fallback instructions.]\n\n## Skill Version(s):\n\n1.7.6 (source: server release evidence and SKILL.md frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.7.5: 8 files, 11308 bytes\n\nFiles: _meta.json (134b), references/api-docs.md (3948b), references/field-map.md (1672b), references/key-rules.md (3378b), references/troubleshooting.md (897b), references/url-fallback.md (1344b), skill-card.md (2732b), SKILL.md (5641b)\n\nFile v1.7.5:SKILL.md\n\n---\nname: duanshipinjiexi\nslug: duanshipinjiexi\ndisplayName: 一键短视频去水印\ndescription: 一站式视频解析去水印工具，全面覆盖抖音、快手、小红书、皮皮虾4大主流内容平台，仅针对平台自带水印解析下载剪辑，一键智能去除视频平台标识水印，全程无损解析素材画质， 去水印后画面清晰无模糊、无痕迹、无压缩，完整保快速提取无水印原版视频，适配日常收藏优质内容与二次创作素材整理。\nversion: 1.7.5\nsummary: 抖音/快手/小红书/皮皮虾去水印解析。免费每日用完自动扣按量计次，包月到期回退免费。\nlicense: MIT\nwhen_to_use:\n  - 用户发来抖音/快手/小红书/皮皮虾链接 → 自动解析\n  - 用户给了身份码 → 直接用不创建\n  - 用户询问套餐、购买、改码、查状态\n  - 用户告知已支付 → 查状态并交付身份码\n---\n\n# 短视频去水印解析\n\n> Base URL: `https://spqsy.kcucu.com`\n\n## 🆔 身份码\n\n5位大写字母数字，**永久不变**，大小写不敏感。多设备多AI共用，不存在占用概念。\n\n按以下三个场景区分处理：\n\n### 场景一：用户给了码 → 直接用\n\n**不创建、不修改、不替换**。保存到记忆，之后都用这个码。\n\n```bash\nGET /api/parse.php?code={用户给的码}&url=链接\n```\n\n> 用户给的码覆盖AI自建码（旧码仍在服务端，AI不再用）。多个AI用同一个码各自调即可，不要试图\"占有\"。\n\n### 场景二：用户没给码 → AI自动创建\n\n首次调用不传code，自动生成新码并保存到记忆。\n\n```bash\n# 专用接口\nGET /api/create_identity.php\n\n# 一步到位（自动创建+解析）\nGET /api/parse.php?url=视频链接\n```\n\n> 从响应提取身份码保存，后续所有调用都用它。系统按IP+UA指纹防重，同一工具只会返回同一个码。\n\n### 场景三：用户主动要求改码\n\n**只有**用户明确说\"改码/换码/修改身份码\"时才走：\n\n```bash\nPOST /api/modify_identity.php\nContent-Type: application/x-www-form-urlencoded\n\nold_code=原码&new_code=新码\n```\n\n规则：5位数字+字母、不能重复、60秒防抖。\n\n### 查状态（零消耗）\n\n```bash\nGET /api/identity_info.php?code={身份码}\n```\n\n> 权益优先级详见 `references/key-rules.md`\n\n## ⚡ 解析\n\n收到链接直接调 API，不要用浏览器打开。\n\n```bash\ncurl -s --max-time 30 \"https://spqsy.kcucu.com/api/parse.php?code={CODE}&url=链接\"\n```\n\n> **连接失败兜底**：上述请求因 DNS/连接/超时错误失败时，跑 `references/url-fallback.md` 的脚本自动获取新地址。\n\n### 处理不同 type\n\n响应中的 `data.type` 决定素材和配乐处理方式：\n\n| type | 素材处理 | 配乐处理 | 原因 |\n|------|---------|---------|------|\n| **video** | 下载 `data.url`/`video_backup[0]` 发视频 | **不发** | 视频自带音轨 |\n| **image** | 下载 `data.images[]` 发图片 | 发 `data.music.url` | 图文是静默的，需要音乐 |\n| **live** | 下载并发送 `live_photo[].video`(动图)+`data.images[]`(静图) | 发 `data.music.url` | 动图也无声音 |\n\n> **大视频兜底**：素材总量超 **10MB** 时，先告知用户「资源较大，下载发送大约需要3-5分钟，请稍等」。若下载耗时超过60秒或失败，直接发 `data.url` / `video_backup[0]` 的直链给用户，让用户自行下载。如果用户反馈「没收到视频」，同样直接发直链兜底。\n\n### 多平台链路\n\n4个平台都调同一个 `parse.php`，AI 不需要区分平台，用户发什么链接就传什么：\n\n```bash\nGET /api/parse.php?code={CODE}&url=用户发的链接\n```\n\n> 快手链接返回404/500时，先 `curl -sL -o /dev/null -w '%{url_effective}'` 解短链再传。\n\n### 发送给用户\n\n**发送顺序：先把文字信息（标题、作者、互动数据、剩余次数）发一条，再逐条单独发素材（视频/图片/动图），配乐也单独发一条。**\n\n视频、图片、动图全部单独发送，不要跟文字一起发。\n\n响应含 `platform` 字段标识来源。**各平台字段结构不同**，按 `references/field-map.md` 提取。\n\n核心原则：\n- 有的字段就发，**没有的不要编造**\n- 配乐单独发一条（仅抖音/快手有）\n- 每日剩余次数告知用户\n\n### 边界条件\n\n以下情况**不处理**，直接告知用户：\n- 解析返回 403 → 身份码无效或次数用完\n- 解析返回 429 → 每日限额用完，明天再试\n- 平台不在抖音/快手/小红书/皮皮虾范围内 → 暂不支持\n- 链接打不开或解析超时 → 建议用户重新分享链接\n\n### 错误码\n\n| 码 | 含义 | 处理 |\n|----|------|------|\n| 403 | 身份码无效/次数用完 | 引导用户购买套餐 |\n| 429 | 每日限额用完 | 告知明天恢复或购买 |\n| 500 | 解析异常 | 重试一次，再失败报错 |\n\n> **电脑端链接提示**：解析失败（任何原因：超时、HTTP 错误、返回码不在列表中）时，检查用户发的链接是否是电脑端页面链接（如 `www.xiaohongshu.com/explore/`、`www.douyin.com/video/`），如果是则额外告知「暂不支持电脑端链接，请在手机APP对应平台上复制作品分享链接」。\n\n## 💰 购买\n\n```bash\nGET  /pay/plans.php              # 展示套餐\nPOST /pay/create.php              # 下单\n{\"identity_code\":\"{码}\",\"id\":\"count_10\"}\nGET  /pay/query.php?order_id={ID} # 查支付\n```\n\n返回 `qr_code` 生成二维码发用户扫码。支付成功后用 `identity_info.php` 确认到账。\n\n> **API 详情** `references/api-docs.md`\n> **异常处理** `references/troubleshooting.md`\n\nFile v1.7.5:_meta.json\n\n{\n  \"ownerId\": \"kn7bdg1vvrjevs20ka8hbvkshh87xc7g\",\n  \"slug\": \"duanshipinjiexi\",\n  \"version\": \"1.7.5\",\n  \"publishedAt\": 1783907143067\n}\n\nFile v1.7.5:references/api-docs.md\n\n# API 文档\n\n> Base URL: `https://spqsy.kcucu.com`\n> 所有身份码参数大小写不敏感，大小写完全等价\n\n## 🆔 身份码系统\n\n身份码是5位字母数字，永久不变。所有操作绑定同一个身份码：\n- 首次调用自动生成，每天免费10次\n- 购买套餐后同一身份码叠加权益\n- 可以随时修改身份码（换好记的码）\n\n## 1. 创建身份码（无需视频链接）\n\n```bash\nGET /api/create_identity.php\n```\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"identity_code\": \"{CODE}\",\n    \"daily_limit\": 10,\n    \"is_new\": false\n  }\n}\n```\n\n也可指定自定义码：\n\n```bash\nGET /pay/identity.php?code={CODE}\n```\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"identity_code\": \"{CODE}\",\n    \"is_new\": true\n  }\n}\n\n## 2. 解析视频\n\n```bash\nGET /api/parse.php?code={身份码}&url={链接}\n# 首次调用可不传 code，自动生成身份码\nGET /api/parse.php?url={链接}\n```\n\n### 响应 JSON\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"type\": \"\",\n    \"title\": \"\",\n    \"author\": {},\n    \"url\": \"\",\n    \"video_backup\": [],\n    \"images\": [],\n    \"live_photo\": [],\n    \"music\": {},\n    \"stats\": {}\n  },\n  \"identity_info\": {\n    \"is_new\": false,\n    \"daily_remaining\": 0,\n    \"remaining\": null,\n    \"plans\": []\n  }\n}\n```\n\n### 关键字段\n\n| 字段 | 说明 |\n|------|------|\n| data.type | video=视频, image=图片, live=动图 |\n| data.url | 视频直链（video 类型） |\n| data.images[] | 所有静图 URL，可直接 `curl` 下载 |\n| data.live_photo[] | 动图素材：每段有 video(MP4) + image(静图)。**下载 video 需带 User-Agent 和 Referer** |\n| data.music.url | 配乐链接（可直接下载） |\n| data.stats | 互动数据：liked/comment/share/collect |\n| identity_info.daily_remaining | 今日剩余次数 |\n| identity_info.remaining | 计次剩余次数 |\n\n### 错误码\n\n| HTTP | msg | 说明 |\n|------|-----|------|\n| 400 | 缺少参数: url | 未传视频链接 |\n| 403 | 身份码无效 | 身份码不存在或已停用 |\n| 429 | 今日调用次数已达上限 | 免费每日10次用完，或所有权益耗尽 |\n| 500 | 解析服务异常 | 服务器异常，重试一次 |\n\n## 3. 修改身份码\n\n```bash\nPOST /api/modify_identity.php\nContent-Type: application/x-www-form-urlencoded\n\nold_code=原身份码&new_code=新身份码\n```\n\n规则：5位数字+字母，大小写不敏感，60秒防抖。权益全部保留。\n\n| HTTP | 含义 |\n|------|------|\n| 200 | 修改成功 |\n| 400 | 参数缺失 / 格式错误 |\n| 404 | 旧身份码不存在 |\n| 403 | 旧身份码已停用 |\n| 409 | 新码已被占用 |\n| 429 | 操作太频繁 |\n\n## 4. 查身份码状态\n\n```bash\nGET /api/identity_info.php?code={身份码}\n```\n\n零消耗，返回完整权益信息：\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"is_active\": true,\n    \"plans\": [],\n    \"remaining\": null,\n    \"daily_remaining\": 0,\n    \"daily_used_today\": 0,\n    \"expires_at\": null\n  }\n}\n```\n\n## 5. 下单\n\n```bash\nPOST /pay/create.php\nContent-Type: application/json\n\n{\"identity_code\": \"{身份码}\", \"id\": \"count_10\", \"name\": \"体验套餐\", \"type\": \"count\", \"count\": 10, \"price\": 0.50}\n```\n\n```json\n{\"success\": true, \"order_id\": \"SV20260707XXXX\", \"qr_code\": \"https://qr.alipay.com/xxx\", \"amount\": 0.50}\n```\n\n⚠️ 收到 `qr_code` 后必须 `qrencode -o /tmp/qr.png \"URL\"` 生成二维码图片发 MEDIA。禁止直接发链接。\n\n### 套餐列表\n\n```bash\nGET /pay/plans.php\n```\n\n动态获取，以实时返回为准。\n\n## 6. 查支付状态\n\n```bash\nGET /pay/query.php?order_id=SV20260707XXXX\n```\n\n| status | 含义 |\n|--------|------|\n| `paid` | ✅ 已支付，权益已绑定到身份码 |\n| `pending` | ⏳ 等待支付 |\n| `closed` | ❌ 已关闭 |\n\n支付成功后用 `identity_info.php` 确认权益到账。\n\n## 7. 购买时生成身份码\n\n用户购买后可能要一个新的身份码来接收套餐：\n\n```bash\nGET /pay/identity.php?code=用户自定义码\n# 或自动生成\nGET /pay/identity.php\n```\n\nFile v1.7.5:references/field-map.md\n\n# 平台字段映射表\n\n解析响应含 `platform` 字段标识来源。各平台字段结构不同，按表提取，没有的不要编造。\n\n| 发送 | 抖音 | 快手 | 小红书 | 皮皮虾 |\n|------|:---:|:---:|:-----:|:-----:|\n| 标题 | `data.title` ✅ | `data.title` ✅ | `data.title` ✅ | `data.title` ✅ |\n| 作者 | `data.author.name` ✅ | `data.author`(字符串) ✅ | `data.author.name` ✅ | `data.author`(字符串) ✅ |\n| 点赞 | `data.stats.liked_count` ✅ | `data.like` ✅ | `data.stats.liked_count` ✅ | ❌ |\n| 评论 | `data.stats.comment_count` ✅ | ❌ | `data.stats.comment_count` ✅ | ❌ |\n| 分享 | `data.stats.share_count` ✅ | ❌ | `data.stats.share_count` ✅ | ❌ |\n| 收藏 | `data.stats.collect_count` ✅ | ❌ | `data.stats.collected_count` ✅ | ❌ |\n| 配乐 | `data.music.*` ✅ | `data.music.*` ✅ | ❌ | ❌ |\n| 类型 | `data.type` ✅ | `data.type` ✅ | `data.type` ✅ | ❌(默认video) |\n\n## 注意事项\n\n1. **皮皮虾**的 `platform` 返回 `\"api\"`（不是 `\"pipix\"`）\n2. **快手**的 `data.author` 是字符串（抖音/小红书是 `{name: xxx}` 对象）\n3. **小红书**的收藏字段是 `data.stats.collected_count`（不是 `collect_count`）\n4. **皮皮虾**无互动数据、无配乐、无 `data.type` → 只发标题和作者\n\n## 发送格式\n\n**文字先发一条**，然后视频/图片/动图逐条单独发。配乐也单独发一条。\n\n文字消息格式：\n```\n📹 {平台名}\n标题：xxx\n作者：xxx\n👍 1.2万  💬 345  ⭐ 567  🔗 89\n📊 今日剩余：8次\n```\n\n没有的字段不显示。素材和配乐全部单独发送：\n\n```\n🎵 配乐：标题 - 作者名\n```\n\nFile v1.7.5:references/key-rules.md\n\n# 身份码使用规则\n\n## 身份码提示（按 `identity_info` 显示）\n\n| identity_info | 显示 |\n|----------|------|\n| `daily_remaining: 8` | `📊 今日免费剩余：8次（每身份码每天10次）` |\n| `remaining: 42` | `📊 剩余：42次` |\n| `remaining: null, expires_at: 有值` | 不显示剩余（时长/永久套餐） |\n| `daily_remaining: 0, remaining: null` | `📊 今日免费次数已用完。可以购买套餐继续使用（发送\"套餐\"查看）` |\n\n## 📌 身份码规则\n\n- 身份码是5位字母数字，**大小写不敏感**\n- **永久不变**，购买套餐后同一码叠加权益\n- 可以随时修改成更好记的码（见 modify_identity.php）\n- 同 IP + 同设备指纹只会返回同一个身份码，防刷\n\n## AI 行为规则\n\n1. **永远只有一个「当前使用的身份码」** — 首次调用自动生成后保存\n2. **开始对话** → 不传 code 调 `/api/parse.php?url=链接` → 自动生成身份码 → 从响应中提取并保存\n3. **用户买了套餐** → 查支付结果 → 权益自动绑定到当前身份码 → 告知用户\n4. **调用失败（403 / 429）** → 按 HTTP 码区分处理：\n\n| HTTP | 含义 | 操作 |\n|------|------|------|\n| 403 | 身份码无效/已停用 / 该身份码无可用权益 | 检查身份码是否正确传入，或查 `identity_info.php` 确认权益状态 |\n| 429 | 今日免费次数已用完 | 引导购买套餐 |\n| 429 | 按量次数已用完 | 引导购买套餐 |\n| 500 | 解析服务异常 | 重试一次，仍失败告知用户 |\n\n**错误消息说明：**\n\n| 错误消息 | 含义 |\n|---------|------|\n| `今日免费次数已用完（X次/天），请购买套餐获取更多次数` | 免费每日额度耗尽，用户需要购买套餐 |\n| `按量次数已用完，请购买套餐` | 按量付费额度耗尽（且无免费每日可用） |\n| `该身份码无可用权益` | 身份码存在但没有任何有效权益（异常状态） |\n| `身份码无效` | 身份码不存在/被禁用，或完全未匹配任何身份码/权益 |\n\n## 📊 权益优先级\n\n**包月/包天/永久(不限量) → 免费每日(10次/天) → 按量付费(计次)**\n\n\n\n| 用户有什么 | 实际消耗顺序 |\n|-----------|------------|\n| 只有免费每日 | → 直接用免费每日 |\n| 免费 + 按量 | → 先用免费10次/天 → 用完了扣按量 |\n| 包月 + 免费 + 按量 | → 先用包月不限量 → 包月到期 → 回退免费10次/天 → 免费用完 → 扣按量 |\n| 已过期套餐 | → 冻结次数自动转成按量，同上逻辑 |\n\n如果用户问\"到期了会怎样\"，答案永远是：先回退免费每日，免费用完了才扣按量，不会直接废掉。\n\n## 🔍 last_ip 说明\n\n`last_ip` 记录的是**谁调了 API**，不是最终用户的IP。通过 AI/API 网关调用时通常显示为本机地址（`127.0.0.1`）。真实用户直接调 API 时才会记录用户公网 IP。\n\n## 常见翻车\n\n| 错误 | 纠正 |\n|------|------|\n| 不保存身份码直接调下一次 | **必须从首次响应的 `identity_info` 中提取身份码并保存** |\n| 手动新建多个身份码 | **一个就够了**，所有权益叠加到同一个码 |\n| 传小写身份码以为不行 | ✅ 大小写都支持，系统自动转大写 |\n| 猜权益优先级搞反了 | ⚠️ **不限量 → 免费每日 → 按量计次**，忘了回来查 |\n\nFile v1.7.5:references/troubleshooting.md\n\n# 异常处理指南\n\n## API 解析失败\n\n| 现象 | 原因 | 处理 |\n|------|------|------|\n| HTTP 500 | 抖音 WAF 拦截 / 服务异常 | 重试1次，仍失败则告知用户「解析服务暂不可用，稍后再试」 |\n| HTTP 403 | 身份码无效/已停用 | 检查身份码是否正确传入 |\n| HTTP 429 | 每日/总次数用完 | 引导购买套餐续费 |\n| 超时（>30s无响应） | 抖音图文笔记解析慢 | 重试1次，设置 60s 超时 |\n\n## 素材下载失败\n\n| 现象 | 原因 | 处理 |\n|------|------|------|\n| 视频URL下载返回403 | CDN 防盗链/URL过期 | 直接用 `data.url` |\n| 动图段下载失败 | 抖音 CDN geo-block / 过期 | 跳过这段，只发成功下载的动图段 + 静图 + 配乐 |\n| 图片下载失败 | 代理临时故障 | 重试1次，跳过该张图片 |\n| 配乐下载失败 | CDN 问题 | 跳过配乐，只发视频段/图片 |\n\nFile v1.7.5:references/url-fallback.md\n\n# 连接失败兜底流程\n\n当 `parse.php` 请求因 **DNS 解析失败、连接被拒绝、超时**等连接错误失败时，说明解析服务器地址可能已变更。按以下流程自动获取新地址：\n\n```bash\nTEMP_DIR=$(mktemp -d)\n# 1️⃣ 从 SkillHub 下载最新技能包提取 Base URL\ncurl -sL \"https://api.skillhub.cn/api/v1/download?slug=duanshipinjiexi\" -o \"$TEMP_DIR/skill.zip\"\nunzip -o \"$TEMP_DIR/skill.zip\" SKILL.md -d \"$TEMP_DIR\" 2>/dev/null\nNEW_URL=$(grep 'Base URL:' \"$TEMP_DIR/SKILL.md\" | sed 's/.*`\\(.*\\)`.*/\\1/')\nrm -rf \"$TEMP_DIR\"\n\nif [ -n \"$NEW_URL\" ]; then\n  curl -s --max-time 30 \"$NEW_URL/api/parse.php?code={CODE}&url=视频链接\"\n  echo \"【提示】解析服务地址已更新，后续使用新地址 $NEW_URL\"\nelse\n  # 2️⃣ 兜底：从 ClawHub 查\n  JSON=$(curl -s \"https://clawhub.ai/api/v1/skills/duanshipinjiexi\")\n  NEW_URL=$(echo \"$JSON\" | python3 -c \"import sys,json; d=json.load(sys.stdin).get('description',''); import re; m=re.search(r'Base URL: `(.+)`', d); print(m.group(1) if m else '')\" 2>/dev/null)\n  if [ -n \"$NEW_URL\" ]; then\n    curl -s --max-time 30 \"$NEW_URL/api/parse.php?code={CODE}&url=视频链接\"\n    echo \"【提示】解析服务地址已更新，后续使用新地址 $NEW_URL\"\n  else\n    echo \"【错误】无法获取新解析地址，请手动更新技能\"\n  fi\nfi\n```\n\nFile v1.7.5:skill-card.md\n\n## Description: <br>\nParses Douyin, Kuaishou, Xiaohongshu, and Pipixia links through a third-party service so an agent can return supported watermark-free video, image, live-photo, music, metadata, and quota information. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[kangleizhui](https://clawhub.ai/user/kangleizhui) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and agents use this skill to parse supported short-video links, return extracted titles, author fields, interaction metadata, remaining quota, and downloaded media or fallback direct links. The same workflow can check or modify the persistent identity code and handle package purchase status when a user asks. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: User video links and a persistent identity code are sent to a third-party parsing service. <br>\nMitigation: Install only if that data sharing is acceptable, avoid private or sensitive links, and make identity-code use explicit to users when relevant. <br>\nRisk: The automatic connection fallback can send links and identity codes to a dynamically discovered replacement Base URL without allowlisting. <br>\nMitigation: Disable the fallback or manually verify the replacement Base URL before making requests through it. <br>\nRisk: The purchase flow returns payment QR codes and package details that users may act on. <br>\nMitigation: Confirm package, price, order, and payment details before presenting or scanning any QR code. <br>\n\n\n## Reference(s): <br>\n- [API documentation](references/api-docs.md) <br>\n- [Platform field map](references/field-map.md) <br>\n- [Identity-code rules](references/key-rules.md) <br>\n- [Troubleshooting guide](references/troubleshooting.md) <br>\n- [Connection fallback flow](references/url-fallback.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, files, guidance] <br>\n**Output Format:** [User-facing text with separate downloaded media files, music files, payment QR images, direct links, and inline shell/API command guidance.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Uses a persistent 5-character identity code and may return platform-specific metadata only when present in the API response.] <br>\n\n## Skill Version(s): <br>\n1.7.5 (source: server release metadata and SKILL.md frontmatter) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.7.4: 8 files, 11260 bytes\n\nFiles: _meta.json (134b), references/api-docs.md (3948b), references/field-map.md (1672b), references/key-rules.md (3378b), references/troubleshooting.md (897b), references/url-fallback.md (1344b), skill-card.md (2545b), SKILL.md (5632b)\n\nFile v1.7.4:SKILL.md\n\n---\nname: duanshipinjiexi\nslug: duanshipinjiexi\ndisplayName: 一键短视频去水印\ndescription: 一站式视频解析去水印工具，全面覆盖抖音、快手、小红书、皮皮虾4大主流内容平台，仅针对平台自带水印解析下载剪辑，一键智能去除视频平台标识水印，全程无损解析素材画质， 去水印后画面清晰无模糊、无痕迹、无压缩，完整保快速提取无水印原版视频，适配日常收藏优质内容与二次创作素材整理。\nversion: 1.7.4\nsummary: 抖音/快手/小红书/皮皮虾去水印解析。免费每日用完自动扣按量计次，包月到期回退免费。\nlicense: MIT\nwhen_to_use:\n  - 用户发来抖音/快手/小红书/皮皮虾链接 → 自动解析\n  - 用户给了身份码 → 直接用不创建\n  - 用户询问套餐、购买、改码、查状态\n  - 用户告知已支付 → 查状态并交付身份码\n---\n\n# 短视频去水印解析\n\n> Base URL: `https://spqsy.kcucu.com`\n\n## 🆔 身份码\n\n5位大写字母数字，**永久不变**，大小写不敏感。多设备多AI共用，不存在占用概念。\n\n按以下三个场景区分处理：\n\n### 场景一：用户给了码 → 直接用\n\n**不创建、不修改、不替换**。保存到记忆，之后都用这个码。\n\n```bash\nGET /api/parse.php?code={用户给的码}&url=链接\n```\n\n> 用户给的码覆盖AI自建码（旧码仍在服务端，AI不再用）。多个AI用同一个码各自调即可，不要试图\"占有\"。\n\n### 场景二：用户没给码 → AI自动创建\n\n首次调用不传code，自动生成新码并保存到记忆。\n\n```bash\n# 专用接口\nGET /api/create_identity.php\n\n# 一步到位（自动创建+解析）\nGET /api/parse.php?url=视频链接\n```\n\n> 从响应提取身份码保存，后续所有调用都用它。系统按IP+UA指纹防重，同一工具只会返回同一个码。\n\n### 场景三：用户主动要求改码\n\n**只有**用户明确说\"改码/换码/修改身份码\"时才走：\n\n```bash\nPOST /api/modify_identity.php\nContent-Type: application/x-www-form-urlencoded\n\nold_code=原码&new_code=新码\n```\n\n规则：5位数字+字母、不能重复、60秒防抖。\n\n### 查状态（零消耗）\n\n```bash\nGET /api/identity_info.php?code={身份码}\n```\n\n> 权益优先级详见 `references/key-rules.md`\n\n## ⚡ 解析\n\n收到链接直接调 API，不要用浏览器打开。\n\n```bash\ncurl -s --max-time 30 \"https://spqsy.kcucu.com/api/parse.php?code={CODE}&url=链接\"\n```\n\n> **连接失败兜底**：上述请求因 DNS/连接/超时错误失败时，跑 `references/url-fallback.md` 的脚本自动获取新地址。\n\n### 处理不同 type\n\n响应中的 `data.type` 决定素材和配乐处理方式：\n\n| type | 素材处理 | 配乐处理 | 原因 |\n|------|---------|---------|------|\n| **video** | 下载 `data.url`/`video_backup[0]` 发视频 | **不发** | 视频自带音轨 |\n| **image** | 下载 `data.images[]` 发图片 | 发 `data.music.url` | 图文是静默的，需要音乐 |\n| **live** | 下载 `live_photo[].video`(动图)+`data.images[]`(静图) | 发 `data.music.url` | 动图也无声音 |\n\n> **大视频兜底**：素材总量超 **10MB** 时，先告知用户「资源较大，下载发送大约需要3-5分钟，请稍等」。若下载耗时超过60秒或失败，直接发 `data.url` / `video_backup[0]` 的直链给用户，让用户自行下载。如果用户反馈「没收到视频」，同样直接发直链兜底。\n\n### 多平台链路\n\n4个平台都调同一个 `parse.php`，AI 不需要区分平台，用户发什么链接就传什么：\n\n```bash\nGET /api/parse.php?code={CODE}&url=用户发的链接\n```\n\n> 快手链接返回404/500时，先 `curl -sL -o /dev/null -w '%{url_effective}'` 解短链再传。\n\n### 发送给用户\n\n**发送顺序：先把文字信息（标题、作者、互动数据、剩余次数）发一条，再逐条单独发素材（视频/图片/动图），配乐也单独发一条。**\n\n视频、图片、动图全部单独发送，不要跟文字一起发。\n\n响应含 `platform` 字段标识来源。**各平台字段结构不同**，按 `references/field-map.md` 提取。\n\n核心原则：\n- 有的字段就发，**没有的不要编造**\n- 配乐单独发一条（仅抖音/快手有）\n- 每日剩余次数告知用户\n\n### 边界条件\n\n以下情况**不处理**，直接告知用户：\n- 解析返回 403 → 身份码无效或次数用完\n- 解析返回 429 → 每日限额用完，明天再试\n- 平台不在抖音/快手/小红书/皮皮虾范围内 → 暂不支持\n- 链接打不开或解析超时 → 建议用户重新分享链接\n\n### 错误码\n\n| 码 | 含义 | 处理 |\n|----|------|------|\n| 403 | 身份码无效/次数用完 | 引导用户购买套餐 |\n| 429 | 每日限额用完 | 告知明天恢复或购买 |\n| 500 | 解析异常 | 重试一次，再失败报错 |\n\n> **电脑端链接提示**：解析失败（任何原因：超时、HTTP 错误、返回码不在列表中）时，检查用户发的链接是否是电脑端页面链接（如 `www.xiaohongshu.com/explore/`、`www.douyin.com/video/`），如果是则额外告知「暂不支持电脑端链接，请在手机APP对应平台上复制作品分享链接」。\n\n## 💰 购买\n\n```bash\nGET  /pay/plans.php              # 展示套餐\nPOST /pay/create.php              # 下单\n{\"identity_code\":\"{码}\",\"id\":\"count_10\"}\nGET  /pay/query.php?order_id={ID} # 查支付\n```\n\n返回 `qr_code` 生成二维码发用户扫码。支付成功后用 `identity_info.php` 确认到账。\n\n> **API 详情** `references/api-docs.md`\n> **异常处理** `references/troubleshooting.md`\n\nFile v1.7.4:_meta.json\n\n{\n  \"ownerId\": \"kn7bdg1vvrjevs20ka8hbvkshh87xc7g\",\n  \"slug\": \"duanshipinjiexi\",\n  \"version\": \"1.7.4\",\n  \"publishedAt\": 1783906522378\n}\n\nFile v1.7.4:references/api-docs.md\n\n# API 文档\n\n> Base URL: `https://spqsy.kcucu.com`\n> 所有身份码参数大小写不敏感，大小写完全等价\n\n## 🆔 身份码系统\n\n身份码是5位字母数字，永久不变。所有操作绑定同一个身份码：\n- 首次调用自动生成，每天免费10次\n- 购买套餐后同一身份码叠加权益\n- 可以随时修改身份码（换好记的码）\n\n## 1. 创建身份码（无需视频链接）\n\n```bash\nGET /api/create_identity.php\n```\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"identity_code\": \"{CODE}\",\n    \"daily_limit\": 10,\n    \"is_new\": false\n  }\n}\n```\n\n也可指定自定义码：\n\n```bash\nGET /pay/identity.php?code={CODE}\n```\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"identity_code\": \"{CODE}\",\n    \"is_new\": true\n  }\n}\n\n## 2. 解析视频\n\n```bash\nGET /api/parse.php?code={身份码}&url={链接}\n# 首次调用可不传 code，自动生成身份码\nGET /api/parse.php?url={链接}\n```\n\n### 响应 JSON\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"type\": \"\",\n    \"title\": \"\",\n    \"author\": {},\n    \"url\": \"\",\n    \"video_backup\": [],\n    \"images\": [],\n    \"live_photo\": [],\n    \"music\": {},\n    \"stats\": {}\n  },\n  \"identity_info\": {\n    \"is_new\": false,\n    \"daily_remaining\": 0,\n    \"remaining\": null,\n    \"plans\": []\n  }\n}\n```\n\n### 关键字段\n\n| 字段 | 说明 |\n|------|------|\n| data.type | video=视频, image=图片, live=动图 |\n| data.url | 视频直链（video 类型） |\n| data.images[] | 所有静图 URL，可直接 `curl` 下载 |\n| data.live_photo[] | 动图素材：每段有 video(MP4) + image(静图)。**下载 video 需带 User-Agent 和 Referer** |\n| data.music.url | 配乐链接（可直接下载） |\n| data.stats | 互动数据：liked/comment/share/collect |\n| identity_info.daily_remaining | 今日剩余次数 |\n| identity_info.remaining | 计次剩余次数 |\n\n### 错误码\n\n| HTTP | msg | 说明 |\n|------|-----|------|\n| 400 | 缺少参数: url | 未传视频链接 |\n| 403 | 身份码无效 | 身份码不存在或已停用 |\n| 429 | 今日调用次数已达上限 | 免费每日10次用完，或所有权益耗尽 |\n| 500 | 解析服务异常 | 服务器异常，重试一次 |\n\n## 3. 修改身份码\n\n```bash\nPOST /api/modify_identity.php\nContent-Type: application/x-www-form-urlencoded\n\nold_code=原身份码&new_code=新身份码\n```\n\n规则：5位数字+字母，大小写不敏感，60秒防抖。权益全部保留。\n\n| HTTP | 含义 |\n|------|------|\n| 200 | 修改成功 |\n| 400 | 参数缺失 / 格式错误 |\n| 404 | 旧身份码不存在 |\n| 403 | 旧身份码已停用 |\n| 409 | 新码已被占用 |\n| 429 | 操作太频繁 |\n\n## 4. 查身份码状态\n\n```bash\nGET /api/identity_info.php?code={身份码}\n```\n\n零消耗，返回完整权益信息：\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"is_active\": true,\n    \"plans\": [],\n    \"remaining\": null,\n    \"daily_remaining\": 0,\n    \"daily_used_today\": 0,\n    \"expires_at\": null\n  }\n}\n```\n\n## 5. 下单\n\n```bash\nPOST /pay/create.php\nContent-Type: application/json\n\n{\"identity_code\": \"{身份码}\", \"id\": \"count_10\", \"name\": \"体验套餐\", \"type\": \"count\", \"count\": 10, \"price\": 0.50}\n```\n\n```json\n{\"success\": true, \"order_id\": \"SV20260707XXXX\", \"qr_code\": \"https://qr.alipay.com/xxx\", \"amount\": 0.50}\n```\n\n⚠️ 收到 `qr_code` 后必须 `qrencode -o /tmp/qr.png \"URL\"` 生成二维码图片发 MEDIA。禁止直接发链接。\n\n### 套餐列表\n\n```bash\nGET /pay/plans.php\n```\n\n动态获取，以实时返回为准。\n\n## 6. 查支付状态\n\n```bash\nGET /pay/query.php?order_id=SV20260707XXXX\n```\n\n| status | 含义 |\n|--------|------|\n| `paid` | ✅ 已支付，权益已绑定到身份码 |\n| `pending` | ⏳ 等待支付 |\n| `closed` | ❌ 已关闭 |\n\n支付成功后用 `identity_info.php` 确认权益到账。\n\n## 7. 购买时生成身份码\n\n用户购买后可能要一个新的身份码来接收套餐：\n\n```bash\nGET /pay/identity.php?code=用户自定义码\n# 或自动生成\nGET /pay/identity.php\n```\n\nFile v1.7.4:references/field-map.md\n\n# 平台字段映射表\n\n解析响应含 `platform` 字段标识来源。各平台字段结构不同，按表提取，没有的不要编造。\n\n| 发送 | 抖音 | 快手 | 小红书 | 皮皮虾 |\n|------|:---:|:---:|:-----:|:-----:|\n| 标题 | `data.title` ✅ | `data.title` ✅ | `data.title` ✅ | `data.title` ✅ |\n| 作者 | `data.author.name` ✅ | `data.author`(字符串) ✅ | `data.author.name` ✅ | `data.author`(字符串) ✅ |\n| 点赞 | `data.stats.liked_count` ✅ | `data.like` ✅ | `data.stats.liked_count` ✅ | ❌ |\n| 评论 | `data.stats.comment_count` ✅ | ❌ | `data.stats.comment_count` ✅ | ❌ |\n| 分享 | `data.stats.share_count` ✅ | ❌ | `data.stats.share_count` ✅ | ❌ |\n| 收藏 | `data.stats.collect_count` ✅ | ❌ | `data.stats.collected_count` ✅ | ❌ |\n| 配乐 | `data.music.*` ✅ | `data.music.*` ✅ | ❌ | ❌ |\n| 类型 | `data.type` ✅ | `data.type` ✅ | `data.type` ✅ | ❌(默认video) |\n\n## 注意事项\n\n1. **皮皮虾**的 `platform` 返回 `\"api\"`（不是 `\"pipix\"`）\n2. **快手**的 `data.author` 是字符串（抖音/小红书是 `{name: xxx}` 对象）\n3. **小红书**的收藏字段是 `data.stats.collected_count`（不是 `collect_count`）\n4. **皮皮虾**无互动数据、无配乐、无 `data.type` → 只发标题和作者\n\n## 发送格式\n\n**文字先发一条**，然后视频/图片/动图逐条单独发。配乐也单独发一条。\n\n文字消息格式：\n```\n📹 {平台名}\n标题：xxx\n作者：xxx\n👍 1.2万  💬 345  ⭐ 567  🔗 89\n📊 今日剩余：8次\n```\n\n没有的字段不显示。素材和配乐全部单独发送：\n\n```\n🎵 配乐：标题 - 作者名\n```\n\nFile v1.7.4:references/key-rules.md\n\n# 身份码使用规则\n\n## 身份码提示（按 `identity_info` 显示）\n\n| identity_info | 显示 |\n|----------|------|\n| `daily_remaining: 8` | `📊 今日免费剩余：8次（每身份码每天10次）` |\n| `remaining: 42` | `📊 剩余：42次` |\n| `remaining: null, expires_at: 有值` | 不显示剩余（时长/永久套餐） |\n| `daily_remaining: 0, remaining: null` | `📊 今日免费次数已用完。可以购买套餐继续使用（发送\"套餐\"查看）` |\n\n## 📌 身份码规则\n\n- 身份码是5位字母数字，**大小写不敏感**\n- **永久不变**，购买套餐后同一码叠加权益\n- 可以随时修改成更好记的码（见 modify_identity.php）\n- 同 IP + 同设备指纹只会返回同一个身份码，防刷\n\n## AI 行为规则\n\n1. **永远只有一个「当前使用的身份码」** — 首次调用自动生成后保存\n2. **开始对话** → 不传 code 调 `/api/parse.php?url=链接` → 自动生成身份码 → 从响应中提取并保存\n3. **用户买了套餐** → 查支付结果 → 权益自动绑定到当前身份码 → 告知用户\n4. **调用失败（403 / 429）** → 按 HTTP 码区分处理：\n\n| HTTP | 含义 | 操作 |\n|------|------|------|\n| 403 | 身份码无效/已停用 / 该身份码无可用权益 | 检查身份码是否正确传入，或查 `identity_info.php` 确认权益状态 |\n| 429 | 今日免费次数已用完 | 引导购买套餐 |\n| 429 | 按量次数已用完 | 引导购买套餐 |\n| 500 | 解析服务异常 | 重试一次，仍失败告知用户 |\n\n**错误消息说明：**\n\n| 错误消息 | 含义 |\n|---------|------|\n| `今日免费次数已用完（X次/天），请购买套餐获取更多次数` | 免费每日额度耗尽，用户需要购买套餐 |\n| `按量次数已用完，请购买套餐` | 按量付费额度耗尽（且无免费每日可用） |\n| `该身份码无可用权益` | 身份码存在但没有任何有效权益（异常状态） |\n| `身份码无效` | 身份码不存在/被禁用，或完全未匹配任何身份码/权益 |\n\n## 📊 权益优先级\n\n**包月/包天/永久(不限量) → 免费每日(10次/天) → 按量付费(计次)**\n\n\n\n| 用户有什么 | 实际消耗顺序 |\n|-----------|------------|\n| 只有免费每日 | → 直接用免费每日 |\n| 免费 + 按量 | → 先用免费10次/天 → 用完了扣按量 |\n| 包月 + 免费 + 按量 | → 先用包月不限量 → 包月到期 → 回退免费10次/天 → 免费用完 → 扣按量 |\n| 已过期套餐 | → 冻结次数自动转成按量，同上逻辑 |\n\n如果用户问\"到期了会怎样\"，答案永远是：先回退免费每日，免费用完了才扣按量，不会直接废掉。\n\n## 🔍 last_ip 说明\n\n`last_ip` 记录的是**谁调了 API**，不是最终用户的IP。通过 AI/API 网关调用时通常显示为本机地址（`127.0.0.1`）。真实用户直接调 API 时才会记录用户公网 IP。\n\n## 常见翻车\n\n| 错误 | 纠正 |\n|------|------|\n| 不保存身份码直接调下一次 | **必须从首次响应的 `identity_info` 中提取身份码并保存** |\n| 手动新建多个身份码 | **一个就够了**，所有权益叠加到同一个码 |\n| 传小写身份码以为不行 | ✅ 大小写都支持，系统自动转大写 |\n| 猜权益优先级搞反了 | ⚠️ **不限量 → 免费每日 → 按量计次**，忘了回来查 |\n\nFile v1.7.4:references/troubleshooting.md\n\n# 异常处理指南\n\n## API 解析失败\n\n| 现象 | 原因 | 处理 |\n|------|------|------|\n| HTTP 500 | 抖音 WAF 拦截 / 服务异常 | 重试1次，仍失败则告知用户「解析服务暂不可用，稍后再试」 |\n| HTTP 403 | 身份码无效/已停用 | 检查身份码是否正确传入 |\n| HTTP 429 | 每日/总次数用完 | 引导购买套餐续费 |\n| 超时（>30s无响应） | 抖音图文笔记解析慢 | 重试1次，设置 60s 超时 |\n\n## 素材下载失败\n\n| 现象 | 原因 | 处理 |\n|------|------|------|\n| 视频URL下载返回403 | CDN 防盗链/URL过期 | 直接用 `data.url` |\n| 动图段下载失败 | 抖音 CDN geo-block / 过期 | 跳过这段，只发成功下载的动图段 + 静图 + 配乐 |\n| 图片下载失败 | 代理临时故障 | 重试1次，跳过该张图片 |\n| 配乐下载失败 | CDN 问题 | 跳过配乐，只发视频段/图片 |\n\nFile v1.7.4:references/url-fallback.md\n\n# 连接失败兜底流程\n\n当 `parse.php` 请求因 **DNS 解析失败、连接被拒绝、超时**等连接错误失败时，说明解析服务器地址可能已变更。按以下流程自动获取新地址：\n\n```bash\nTEMP_DIR=$(mktemp -d)\n# 1️⃣ 从 SkillHub 下载最新技能包提取 Base URL\ncurl -sL \"https://api.skillhub.cn/api/v1/download?slug=duanshipinjiexi\" -o \"$TEMP_DIR/skill.zip\"\nunzip -o \"$TEMP_DIR/skill.zip\" SKILL.md -d \"$TEMP_DIR\" 2>/dev/null\nNEW_URL=$(grep 'Base URL:' \"$TEMP_DIR/SKILL.md\" | sed 's/.*`\\(.*\\)`.*/\\1/')\nrm -rf \"$TEMP_DIR\"\n\nif [ -n \"$NEW_URL\" ]; then\n  curl -s --max-time 30 \"$NEW_URL/api/parse.php?code={CODE}&url=视频链接\"\n  echo \"【提示】解析服务地址已更新，后续使用新地址 $NEW_URL\"\nelse\n  # 2️⃣ 兜底：从 ClawHub 查\n  JSON=$(curl -s \"https://clawhub.ai/api/v1/skills/duanshipinjiexi\")\n  NEW_URL=$(echo \"$JSON\" | python3 -c \"import sys,json; d=json.load(sys.stdin).get('description',''); import re; m=re.search(r'Base URL: `(.+)`', d); print(m.group(1) if m else '')\" 2>/dev/null)\n  if [ -n \"$NEW_URL\" ]; then\n    curl -s --max-time 30 \"$NEW_URL/api/parse.php?code={CODE}&url=视频链接\"\n    echo \"【提示】解析服务地址已更新，后续使用新地址 $NEW_URL\"\n  else\n    echo \"【错误】无法获取新解析地址，请手动更新技能\"\n  fi\nfi\n```\n\nFile v1.7.4:skill-card.md\n\n## Description: <br>\n一键短视频去水印 parses Douyin, Kuaishou, Xiaohongshu, and Pipix links so an agent can return platform media without visible platform watermarks, along with available metadata and quota status. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[kangleizhui](https://clawhub.ai/user/kangleizhui) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nUsers provide short-video links from supported Chinese social platforms, and the agent calls the parsing service to return text metadata first, then videos, images, live-photo clips, or music as separate outputs. The skill also helps users manage an identity code, check quota, and handle plan purchase or payment-status flows when needed. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill sends short-video links and a persistent identity code to an external parsing service. <br>\nMitigation: Use it only for links the user intends to process through that provider, and avoid sharing sensitive or private content links. <br>\nRisk: The skill supports purchase flows and can fall back to a dynamically discovered API host. <br>\nMitigation: Verify the destination service, pricing, and payment status before generating payment QR codes or switching endpoints. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/kangleizhui/skills/duanshipinjiexi) <br>\n- [API documentation](artifact/references/api-docs.md) <br>\n- [Identity-code rules](artifact/references/key-rules.md) <br>\n- [Platform field mapping](artifact/references/field-map.md) <br>\n- [Troubleshooting](artifact/references/troubleshooting.md) <br>\n- [URL fallback flow](artifact/references/url-fallback.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Shell commands, Guidance] <br>\n**Output Format:** [Markdown text with media-delivery instructions and inline shell commands] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May instruct the agent to send text metadata, videos, images, live-photo clips, and music as separate user-facing messages.] <br>\n\n## Skill Version(s): <br>\n1.7.4 (source: server release evidence and artifact frontmatter) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.7.3: 8 files, 11105 bytes\n\nFiles: _meta.json (134b), references/api-docs.md (3948b), references/field-map.md (1565b), references/key-rules.md (3378b), references/troubleshooting.md (897b), references/url-fallback.md (1344b), skill-card.md (2630b), SKILL.md (5376b)\n\nFile v1.7.3:SKILL.md\n\n---\nname: duanshipinjiexi\nslug: duanshipinjiexi\ndisplayName: 一键短视频去水印\ndescription: 一站式视频解析去水印工具，全面覆盖抖音、快手、小红书、皮皮虾4大主流内容平台，仅针对平台自带水印解析下载剪辑，一键智能去除视频平台标识水印，全程无损解析素材画质， 去水印后画面清晰无模糊、无痕迹、无压缩，完整保快速提取无水印原版视频，适配日常收藏优质内容与二次创作素材整理。\nversion: 1.7.3\nsummary: 抖音/快手/小红书/皮皮虾去水印解析。免费每日用完自动扣按量计次，包月到期回退免费。\nlicense: MIT\nwhen_to_use:\n  - 用户发来抖音/快手/小红书/皮皮虾链接 → 自动解析\n  - 用户给了身份码 → 直接用不创建\n  - 用户询问套餐、购买、改码、查状态\n  - 用户告知已支付 → 查状态并交付身份码\n---\n\n# 短视频去水印解析\n\n> Base URL: `https://spqsy.kcucu.com`\n\n## 🆔 身份码\n\n5位大写字母数字，**永久不变**，大小写不敏感。多设备多AI共用，不存在占用概念。\n\n按以下三个场景区分处理：\n\n### 场景一：用户给了码 → 直接用\n\n**不创建、不修改、不替换**。保存到记忆，之后都用这个码。\n\n```bash\nGET /api/parse.php?code={用户给的码}&url=链接\n```\n\n> 用户给的码覆盖AI自建码（旧码仍在服务端，AI不再用）。多个AI用同一个码各自调即可，不要试图\"占有\"。\n\n### 场景二：用户没给码 → AI自动创建\n\n首次调用不传code，自动生成新码并保存到记忆。\n\n```bash\n# 专用接口\nGET /api/create_identity.php\n\n# 一步到位（自动创建+解析）\nGET /api/parse.php?url=视频链接\n```\n\n> 从响应提取身份码保存，后续所有调用都用它。系统按IP+UA指纹防重，同一工具只会返回同一个码。\n\n### 场景三：用户主动要求改码\n\n**只有**用户明确说\"改码/换码/修改身份码\"时才走：\n\n```bash\nPOST /api/modify_identity.php\nContent-Type: application/x-www-form-urlencoded\n\nold_code=原码&new_code=新码\n```\n\n规则：5位数字+字母、不能重复、60秒防抖。\n\n### 查状态（零消耗）\n\n```bash\nGET /api/identity_info.php?code={身份码}\n```\n\n> 权益优先级详见 `references/key-rules.md`\n\n## ⚡ 解析\n\n收到链接直接调 API，不要用浏览器打开。\n\n```bash\ncurl -s --max-time 30 \"https://spqsy.kcucu.com/api/parse.php?code={CODE}&url=链接\"\n```\n\n> **连接失败兜底**：上述请求因 DNS/连接/超时错误失败时，跑 `references/url-fallback.md` 的脚本自动获取新地址。\n\n### 处理不同 type\n\n响应中的 `data.type` 决定素材和配乐处理方式：\n\n| type | 素材处理 | 配乐处理 | 原因 |\n|------|---------|---------|------|\n| **video** | 下载 `data.url`/`video_backup[0]` 发视频 | **不发** | 视频自带音轨 |\n| **image** | 下载 `data.images[]` 发图片 | 发 `data.music.url` | 图文是静默的，需要音乐 |\n| **live** | 下载 `live_photo[].video`(动图)+`data.images[]`(静图) | 发 `data.music.url` | 动图也无声音 |\n\n> **大视频兜底**：素材总量超 **10MB** 时，先告知用户「资源较大，下载发送大约需要3-5分钟，请稍等」。若下载耗时超过60秒或失败，直接发 `data.url` / `video_backup[0]` 的直链给用户，让用户自行下载。如果用户反馈「没收到视频」，同样直接发直链兜底。\n\n### 多平台链路\n\n4个平台都调同一个 `parse.php`，AI 不需要区分平台，用户发什么链接就传什么：\n\n```bash\nGET /api/parse.php?code={CODE}&url=用户发的链接\n```\n\n> 快手链接返回404/500时，先 `curl -sL -o /dev/null -w '%{url_effective}'` 解短链再传。\n\n### 发送给用户\n\n响应含 `platform` 字段标识来源。**各平台字段结构不同**，按 `references/field-map.md` 提取。\n\n核心原则：\n- 有的字段就发，**没有的不要编造**\n- 配乐单独发一条（仅抖音/快手有）\n- 每日剩余次数告知用户\n\n### 边界条件\n\n以下情况**不处理**，直接告知用户：\n- 解析返回 403 → 身份码无效或次数用完\n- 解析返回 429 → 每日限额用完，明天再试\n- 平台不在抖音/快手/小红书/皮皮虾范围内 → 暂不支持\n- 链接打不开或解析超时 → 建议用户重新分享链接\n\n### 错误码\n\n| 码 | 含义 | 处理 |\n|----|------|------|\n| 403 | 身份码无效/次数用完 | 引导用户购买套餐 |\n| 429 | 每日限额用完 | 告知明天恢复或购买 |\n| 500 | 解析异常 | 重试一次，再失败报错 |\n\n> **电脑端链接提示**：解析失败（任何原因：超时、HTTP 错误、返回码不在列表中）时，检查用户发的链接是否是电脑端页面链接（如 `www.xiaohongshu.com/explore/`、`www.douyin.com/video/`），如果是则额外告知「暂不支持电脑端链接，请在手机APP对应平台上复制作品分享链接」。\n\n## 💰 购买\n\n```bash\nGET  /pay/plans.php              # 展示套餐\nPOST /pay/create.php              # 下单\n{\"identity_code\":\"{码}\",\"id\":\"count_10\"}\nGET  /pay/query.php?order_id={ID} # 查支付\n```\n\n返回 `qr_code` 生成二维码发用户扫码。支付成功后用 `identity_info.php` 确认到账。\n\n> **API 详情** `references/api-docs.md`\n> **异常处理** `references/troubleshooting.md`\n\nFile v1.7.3:_meta.json\n\n{\n  \"ownerId\": \"kn7bdg1vvrjevs20ka8hbvkshh87xc7g\",\n  \"slug\": \"duanshipinjiexi\",\n  \"version\": \"1.7.3\",\n  \"publishedAt\": 1783905676350\n}\n\nFile v1.7.3:references/api-docs.md\n\n# API 文档\n\n> Base URL: `https://spqsy.kcucu.com`\n> 所有身份码参数大小写不敏感，大小写完全等价\n\n## 🆔 身份码系统\n\n身份码是5位字母数字，永久不变。所有操作绑定同一个身份码：\n- 首次调用自动生成，每天免费10次\n- 购买套餐后同一身份码叠加权益\n- 可以随时修改身份码（换好记的码）\n\n## 1. 创建身份码（无需视频链接）\n\n```bash\nGET /api/create_identity.php\n```\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"identity_code\": \"{CODE}\",\n    \"daily_limit\": 10,\n    \"is_new\": false\n  }\n}\n```\n\n也可指定自定义码：\n\n```bash\nGET /pay/identity.php?code={CODE}\n```\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"identity_code\": \"{CODE}\",\n    \"is_new\": true\n  }\n}\n\n## 2. 解析视频\n\n```bash\nGET /api/parse.php?code={身份码}&url={链接}\n# 首次调用可不传 code，自动生成身份码\nGET /api/parse.php?url={链接}\n```\n\n### 响应 JSON\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"type\": \"\",\n    \"title\": \"\",\n    \"author\": {},\n    \"url\": \"\",\n    \"video_backup\": [],\n    \"images\": [],\n    \"live_photo\": [],\n    \"music\": {},\n    \"stats\": {}\n  },\n  \"identity_info\": {\n    \"is_new\": false,\n    \"daily_remaining\": 0,\n    \"remaining\": null,\n    \"plans\": []\n  }\n}\n```\n\n### 关键字段\n\n| 字段 | 说明 |\n|------|------|\n| data.type | video=视频, image=图片, live=动图 |\n| data.url | 视频直链（video 类型） |\n| data.images[] | 所有静图 URL，可直接 `curl` 下载 |\n| data.live_photo[] | 动图素材：每段有 video(MP4) + image(静图)。**下载 video 需带 User-Agent 和 Referer** |\n| data.music.url | 配乐链接（可直接下载） |\n| data.stats | 互动数据：liked/comment/share/collect |\n| identity_info.daily_remaining | 今日剩余次数 |\n| identity_info.remaining | 计次剩余次数 |\n\n### 错误码\n\n| HTTP | msg | 说明 |\n|------|-----|------|\n| 400 | 缺少参数: url | 未传视频链接 |\n| 403 | 身份码无效 | 身份码不存在或已停用 |\n| 429 | 今日调用次数已达上限 | 免费每日10次用完，或所有权益耗尽 |\n| 500 | 解析服务异常 | 服务器异常，重试一次 |\n\n## 3. 修改身份码\n\n```bash\nPOST /api/modify_identity.php\nContent-Type: application/x-www-form-urlencoded\n\nold_code=原身份码&new_code=新身份码\n```\n\n规则：5位数字+字母，大小写不敏感，60秒防抖。权益全部保留。\n\n| HTTP | 含义 |\n|------|------|\n| 200 | 修改成功 |\n| 400 | 参数缺失 / 格式错误 |\n| 404 | 旧身份码不存在 |\n| 403 | 旧身份码已停用 |\n| 409 | 新码已被占用 |\n| 429 | 操作太频繁 |\n\n## 4. 查身份码状态\n\n```bash\nGET /api/identity_info.php?code={身份码}\n```\n\n零消耗，返回完整权益信息：\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"is_active\": true,\n    \"plans\": [],\n    \"remaining\": null,\n    \"daily_remaining\": 0,\n    \"daily_used_today\": 0,\n    \"expires_at\": null\n  }\n}\n```\n\n## 5. 下单\n\n```bash\nPOST /pay/create.php\nContent-Type: application/json\n\n{\"identity_code\": \"{身份码}\", \"id\": \"count_10\", \"name\": \"体验套餐\", \"type\": \"count\", \"count\": 10, \"price\": 0.50}\n```\n\n```json\n{\"success\": true, \"order_id\": \"SV20260707XXXX\", \"qr_code\": \"https://qr.alipay.com/xxx\", \"amount\": 0.50}\n```\n\n⚠️ 收到 `qr_code` 后必须 `qrencode -o /tmp/qr.png \"URL\"` 生成二维码图片发 MEDIA。禁止直接发链接。\n\n### 套餐列表\n\n```bash\nGET /pay/plans.php\n```\n\n动态获取，以实时返回为准。\n\n## 6. 查支付状态\n\n```bash\nGET /pay/query.php?order_id=SV20260707XXXX\n```\n\n| status | 含义 |\n|--------|------|\n| `paid` | ✅ 已支付，权益已绑定到身份码 |\n| `pending` | ⏳ 等待支付 |\n| `closed` | ❌ 已关闭 |\n\n支付成功后用 `identity_info.php` 确认权益到账。\n\n## 7. 购买时生成身份码\n\n用户购买后可能要一个新的身份码来接收套餐：\n\n```bash\nGET /pay/identity.php?code=用户自定义码\n# 或自动生成\nGET /pay/identity.php\n```\n\nFile v1.7.3:references/field-map.md\n\n# 平台字段映射表\n\n解析响应含 `platform` 字段标识来源。各平台字段结构不同，按表提取，没有的不要编造。\n\n| 发送 | 抖音 | 快手 | 小红书 | 皮皮虾 |\n|------|:---:|:---:|:-----:|:-----:|\n| 标题 | `data.title` ✅ | `data.title` ✅ | `data.title` ✅ | `data.title` ✅ |\n| 作者 | `data.author.name` ✅ | `data.author`(字符串) ✅ | `data.author.name` ✅ | `data.author`(字符串) ✅ |\n| 点赞 | `data.stats.liked_count` ✅ | `data.like` ✅ | `data.stats.liked_count` ✅ | ❌ |\n| 评论 | `data.stats.comment_count` ✅ | ❌ | `data.stats.comment_count` ✅ | ❌ |\n| 分享 | `data.stats.share_count` ✅ | ❌ | `data.stats.share_count` ✅ | ❌ |\n| 收藏 | `data.stats.collect_count` ✅ | ❌ | `data.stats.collected_count` ✅ | ❌ |\n| 配乐 | `data.music.*` ✅ | `data.music.*` ✅ | ❌ | ❌ |\n| 类型 | `data.type` ✅ | `data.type` ✅ | `data.type` ✅ | ❌(默认video) |\n\n## 注意事项\n\n1. **皮皮虾**的 `platform` 返回 `\"api\"`（不是 `\"pipix\"`）\n2. **快手**的 `data.author` 是字符串（抖音/小红书是 `{name: xxx}` 对象）\n3. **小红书**的收藏字段是 `data.stats.collected_count`（不是 `collect_count`）\n4. **皮皮虾**无互动数据、无配乐、无 `data.type` → 只发标题和作者\n\n## 发送格式\n\n```\n标题：xxx\n作者：xxx\n📹 {平台名}\n👍 1.2万  💬 345  ⭐ 567  🔗 89\n📊 今日剩余：8次\n```\n\n没有的字段不显示。配乐单独发一条（仅抖音/快手有）：\n\n```\n🎵 配乐：标题 - 作者名\n```\n\nFile v1.7.3:references/key-rules.md\n\n# 身份码使用规则\n\n## 身份码提示（按 `identity_info` 显示）\n\n| identity_info | 显示 |\n|----------|------|\n| `daily_remaining: 8` | `📊 今日免费剩余：8次（每身份码每天10次）` |\n| `remaining: 42` | `📊 剩余：42次` |\n| `remaining: null, expires_at: 有值` | 不显示剩余（时长/永久套餐） |\n| `daily_remaining: 0, remaining: null` | `📊 今日免费次数已用完。可以购买套餐继续使用（发送\"套餐\"查看）` |\n\n## 📌 身份码规则\n\n- 身份码是5位字母数字，**大小写不敏感**\n- **永久不变**，购买套餐后同一码叠加权益\n- 可以随时修改成更好记的码（见 modify_identity.php）\n- 同 IP + 同设备指纹只会返回同一个身份码，防刷\n\n## AI 行为规则\n\n1. **永远只有一个「当前使用的身份码」** — 首次调用自动生成后保存\n2. **开始对话** → 不传 code 调 `/api/parse.php?url=链接` → 自动生成身份码 → 从响应中提取并保存\n3. **用户买了套餐** → 查支付结果 → 权益自动绑定到当前身份码 → 告知用户\n4. **调用失败（403 / 429）** → 按 HTTP 码区分处理：\n\n| HTTP | 含义 | 操作 |\n|------|------|------|\n| 403 | 身份码无效/已停用 / 该身份码无可用权益 | 检查身份码是否正确传入，或查 `identity_info.php` 确认权益状态 |\n| 429 | 今日免费次数已用完 | 引导购买套餐 |\n| 429 | 按量次数已用完 | 引导购买套餐 |\n| 500 | 解析服务异常 | 重试一次，仍失败告知用户 |\n\n**错误消息说明：**\n\n| 错误消息 | 含义 |\n|---------|------|\n| `今日免费次数已用完（X次/天），请购买套餐获取更多次数` | 免费每日额度耗尽，用户需要购买套餐 |\n| `按量次数已用完，请购买套餐` | 按量付费额度耗尽（且无免费每日可用） |\n| `该身份码无可用权益` | 身份码存在但没有任何有效权益（异常状态） |\n| `身份码无效` | 身份码不存在/被禁用，或完全未匹配任何身份码/权益 |\n\n## 📊 权益优先级\n\n**包月/包天/永久(不限量) → 免费每日(10次/天) → 按量付费(计次)**\n\n\n\n| 用户有什么 | 实际消耗顺序 |\n|-----------|------------|\n| 只有免费每日 | → 直接用免费每日 |\n| 免费 + 按量 | → 先用免费10次/天 → 用完了扣按量 |\n| 包月 + 免费 + 按量 | → 先用包月不限量 → 包月到期 → 回退免费10次/天 → 免费用完 → 扣按量 |\n| 已过期套餐 | → 冻结次数自动转成按量，同上逻辑 |\n\n如果用户问\"到期了会怎样\"，答案永远是：先回退免费每日，免费用完了才扣按量，不会直接废掉。\n\n## 🔍 last_ip 说明\n\n`last_ip` 记录的是**谁调了 API**，不是最终用户的IP。通过 AI/API 网关调用时通常显示为本机地址（`127.0.0.1`）。真实用户直接调 API 时才会记录用户公网 IP。\n\n## 常见翻车\n\n| 错误 | 纠正 |\n|------|------|\n| 不保存身份码直接调下一次 | **必须从首次响应的 `identity_info` 中提取身份码并保存** |\n| 手动新建多个身份码 | **一个就够了**，所有权益叠加到同一个码 |\n| 传小写身份码以为不行 | ✅ 大小写都支持，系统自动转大写 |\n| 猜权益优先级搞反了 | ⚠️ **不限量 → 免费每日 → 按量计次**，忘了回来查 |\n\nFile v1.7.3:references/troubleshooting.md\n\n# 异常处理指南\n\n## API 解析失败\n\n| 现象 | 原因 | 处理 |\n|------|------|------|\n| HTTP 500 | 抖音 WAF 拦截 / 服务异常 | 重试1次，仍失败则告知用户「解析服务暂不可用，稍后再试」 |\n| HTTP 403 | 身份码无效/已停用 | 检查身份码是否正确传入 |\n| HTTP 429 | 每日/总次数用完 | 引导购买套餐续费 |\n| 超时（>30s无响应） | 抖音图文笔记解析慢 | 重试1次，设置 60s 超时 |\n\n## 素材下载失败\n\n| 现象 | 原因 | 处理 |\n|------|------|------|\n| 视频URL下载返回403 | CDN 防盗链/URL过期 | 直接用 `data.url` |\n| 动图段下载失败 | 抖音 CDN geo-block / 过期 | 跳过这段，只发成功下载的动图段 + 静图 + 配乐 |\n| 图片下载失败 | 代理临时故障 | 重试1次，跳过该张图片 |\n| 配乐下载失败 | CDN 问题 | 跳过配乐，只发视频段/图片 |\n\nFile v1.7.3:references/url-fallback.md\n\n# 连接失败兜底流程\n\n当 `parse.php` 请求因 **DNS 解析失败、连接被拒绝、超时**等连接错误失败时，说明解析服务器地址可能已变更。按以下流程自动获取新地址：\n\n```bash\nTEMP_DIR=$(mktemp -d)\n# 1️⃣ 从 SkillHub 下载最新技能包提取 Base URL\ncurl -sL \"https://api.skillhub.cn/api/v1/download?slug=duanshipinjiexi\" -o \"$TEMP_DIR/skill.zip\"\nunzip -o \"$TEMP_DIR/skill.zip\" SKILL.md -d \"$TEMP_DIR\" 2>/dev/null\nNEW_URL=$(grep 'Base URL:' \"$TEMP_DIR/SKILL.md\" | sed 's/.*`\\(.*\\)`.*/\\1/')\nrm -rf \"$TEMP_DIR\"\n\nif [ -n \"$NEW_URL\" ]; then\n  curl -s --max-time 30 \"$NEW_URL/api/parse.php?code={CODE}&url=视频链接\"\n  echo \"【提示】解析服务地址已更新，后续使用新地址 $NEW_URL\"\nelse\n  # 2️⃣ 兜底：从 ClawHub 查\n  JSON=$(curl -s \"https://clawhub.ai/api/v1/skills/duanshipinjiexi\")\n  NEW_URL=$(echo \"$JSON\" | python3 -c \"import sys,json; d=json.load(sys.stdin).get('description',''); import re; m=re.search(r'Base URL: `(.+)`', d); print(m.group(1) if m else '')\" 2>/dev/null)\n  if [ -n \"$NEW_URL\" ]; then\n    curl -s --max-time 30 \"$NEW_URL/api/parse.php?code={CODE}&url=视频链接\"\n    echo \"【提示】解析服务地址已更新，后续使用新地址 $NEW_URL\"\n  else\n    echo \"【错误】无法获取新解析地址，请手动更新技能\"\n  fi\nfi\n```\n\nFile v1.7.3:skill-card.md\n\n## Description: <br>\n一键短视频去水印 helps an agent parse Douyin, Kuaishou, Xiaohongshu, and Pipixia links through an external parser service to return watermark-free media, direct links, and usage-status messages. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[kangleizhui](https://clawhub.ai/user/kangleizhui) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nUse this skill when a user provides a supported short-video platform link and wants the agent to parse it, download or return watermark-free media, report remaining usage quota, or handle identity-code and plan-status workflows for the parser service. <br>\n\n### Deployment Geography for Use: <br>\nGlobal where ClawHub, the supported content platforms, and the external parser service are reachable; users remain responsible for local content-rights and platform-policy compliance. <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The security evidence says the skill creates or reuses a persistent external identity code and sends video links to a parser service. <br>\nMitigation: Use it only when users are comfortable sharing those links and identity-code state with the service; avoid sharing sensitive, private, or restricted links. <br>\nRisk: The security evidence flags automatic fallback to dynamically discovered service URLs as suspicious. <br>\nMitigation: Do not use fallback destinations unless the destination URL has been manually verified and trusted. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/kangleizhui/skills/duanshipinjiexi) <br>\n- [Publisher profile](https://clawhub.ai/user/kangleizhui) <br>\n- [External parser service](https://spqsy.kcucu.com) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, shell commands, configuration, guidance] <br>\n**Output Format:** [API requests, downloaded media or direct media URLs, and concise user-facing status messages.] <br>\n**Output Parameters:** [Supported video-platform URL, optional 5-character identity code, and optional payment-plan or order identifiers for quota workflows.] <br>\n**Other Properties Related to Output:** [The skill can return quota details, parser errors, fallback guidance, media metadata, and links or files for parsed video, image, live-photo, or music assets.] <br>\n\n## Skill Version(s): <br>\n1.7.3 <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.7.2: 8 files, 11206 bytes\n\nFiles: _meta.json (134b), references/api-docs.md (3948b), references/field-map.md (1565b), references/key-rules.md (3378b), references/troubleshooting.md (897b), references/url-fallback.md (1344b), skill-card.md (2810b), SKILL.md (5296b)\n\nFile v1.7.2:SKILL.md\n\n---\nname: duanshipinjiexi\nslug: duanshipinjiexi\ndisplayName: 一键短视频去水印\ndescription: 一站式视频解析去水印工具，全面覆盖抖音、快手、小红书、皮皮虾4大主流内容平台，仅针对平台自带水印解析下载剪辑，一键智能去除视频平台标识水印，全程无损解析素材画质， 去水印后画面清晰无模糊、无痕迹、无压缩，完整保快速提取无水印原版视频，适配日常收藏优质内容与二次创作素材整理。\nversion: 1.7.2\nsummary: 抖音/快手/小红书/皮皮虾去水印解析。免费每日用完自动扣按量计次，包月到期回退免费。\nlicense: MIT\nwhen_to_use:\n  - 用户发来抖音/快手/小红书/皮皮虾链接 → 自动解析\n  - 用户给了身份码 → 直接用不创建\n  - 用户询问套餐、购买、改码、查状态\n  - 用户告知已支付 → 查状态并交付身份码\n---\n\n# 短视频去水印解析\n\n> Base URL: `https://spqsy.kcucu.com`\n\n## 🆔 身份码\n\n5位大写字母数字，**永久不变**，大小写不敏感。多设备多AI共用，不存在占用概念。\n\n按以下三个场景区分处理：\n\n### 场景一：用户给了码 → 直接用\n\n**不创建、不修改、不替换**。保存到记忆，之后都用这个码。\n\n```bash\nGET /api/parse.php?code={用户给的码}&url=链接\n```\n\n> 用户给的码覆盖AI自建码（旧码仍在服务端，AI不再用）。多个AI用同一个码各自调即可，不要试图\"占有\"。\n\n### 场景二：用户没给码 → AI自动创建\n\n首次调用不传code，自动生成新码并保存到记忆。\n\n```bash\n# 专用接口\nGET /api/create_identity.php\n\n# 一步到位（自动创建+解析）\nGET /api/parse.php?url=视频链接\n```\n\n> 从响应提取身份码保存，后续所有调用都用它。系统按IP+UA指纹防重，同一工具只会返回同一个码。\n\n### 场景三：用户主动要求改码\n\n**只有**用户明确说\"改码/换码/修改身份码\"时才走：\n\n```bash\nPOST /api/modify_identity.php\nContent-Type: application/x-www-form-urlencoded\n\nold_code=原码&new_code=新码\n```\n\n规则：5位数字+字母、不能重复、60秒防抖。\n\n### 查状态（零消耗）\n\n```bash\nGET /api/identity_info.php?code={身份码}\n```\n\n> 权益优先级详见 `references/key-rules.md`\n\n## ⚡ 解析\n\n收到链接直接调 API，不要用浏览器打开。\n\n```bash\ncurl -s --max-time 30 \"https://spqsy.kcucu.com/api/parse.php?code={CODE}&url=链接\"\n```\n\n> **连接失败兜底**：上述请求因 DNS/连接/超时错误失败时，跑 `references/url-fallback.md` 的脚本自动获取新地址。\n\n### 处理不同 type\n\n响应中的 `data.type` 决定素材和配乐处理方式：\n\n| type | 素材处理 | 配乐处理 | 原因 |\n|------|---------|---------|------|\n| **video** | 下载 `data.url`/`video_backup[0]` 发视频 | **不发** | 视频自带音轨 |\n| **image** | 下载 `data.images[]` 发图片 | 发 `data.music.url` | 图文是静默的，需要音乐 |\n| **live** | 下载 `live_photo[].video`(动图)+`data.images[]`(静图) | 发 `data.music.url` | 动图也无声音 |\n\n> **大视频兜底**：素材总量超 **10MB** 时，先告知用户「资源较大，下载发送大约需要3-5分钟，请稍等」。若下载耗时超过60秒或失败，直接发 `data.url` / `video_backup[0]` 的直链给用户，让用户自行下载。如果用户反馈「没收到视频」，同样直接发直链兜底。\n\n### 多平台链路\n\n4个平台都调同一个 `parse.php`，AI 不需要区分平台，用户发什么链接就传什么：\n\n```bash\nGET /api/parse.php?code={CODE}&url=用户发的链接\n```\n\n> 快手链接返回404/500时，先 `curl -sL -o /dev/null -w '%{url_effective}'` 解短链再传。\n\n### 发送给用户\n\n响应含 `platform` 字段标识来源。**各平台字段结构不同**，按 `references/field-map.md` 提取。\n\n核心原则：\n- 有的字段就发，**没有的不要编造**\n- 配乐单独发一条（仅抖音/快手有）\n- 每日剩余次数告知用户\n\n### 边界条件\n\n以下情况**不处理**，直接告知用户：\n- 解析返回 403 → 身份码无效或次数用完\n- 解析返回 429 → 每日限额用完，明天再试\n- 平台不在抖音/快手/小红书/皮皮虾范围内 → 暂不支持\n- 链接打不开或解析超时 → 建议用户重新分享链接\n\n### 错误码\n\n| 码 | 含义 | 处理 |\n|----|------|------|\n| 403 | 身份码无效/次数用完 | 引导用户购买套餐 |\n| 429 | 每日限额用完 | 告知明天恢复或购买 |\n| 500 | 解析异常 | 重试一次，再失败报错 |\n\n> 所有解析失败的情况（含 400/403/429/500）中，如果用户发的是电脑端页面链接（如 `www.xiaohongshu.com/explore/`、`www.douyin.com/video/`），额外告知「暂不支持电脑端链接，请在手机APP对应平台上复制作品分享链接」。\n\n## 💰 购买\n\n```bash\nGET  /pay/plans.php              # 展示套餐\nPOST /pay/create.php              # 下单\n{\"identity_code\":\"{码}\",\"id\":\"count_10\"}\nGET  /pay/query.php?order_id={ID} # 查支付\n```\n\n返回 `qr_code` 生成二维码发用户扫码。支付成功后用 `identity_info.php` 确认到账。\n\n> **API 详情** `references/api-docs.md`\n> **异常处理** `references/troubleshooting.md`\n\nFile v1.7.2:_meta.json\n\n{\n  \"ownerId\": \"kn7bdg1vvrjevs20ka8hbvkshh87xc7g\",\n  \"slug\": \"duanshipinjiexi\",\n  \"version\": \"1.7.2\",\n  \"publishedAt\": 1783904609250\n}\n\nFile v1.7.2:references/api-docs.md\n\n# API 文档\n\n> Base URL: `https://spqsy.kcucu.com`\n> 所有身份码参数大小写不敏感，大小写完全等价\n\n## 🆔 身份码系统\n\n身份码是5位字母数字，永久不变。所有操作绑定同一个身份码：\n- 首次调用自动生成，每天免费10次\n- 购买套餐后同一身份码叠加权益\n- 可以随时修改身份码（换好记的码）\n\n## 1. 创建身份码（无需视频链接）\n\n```bash\nGET /api/create_identity.php\n```\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"identity_code\": \"{CODE}\",\n    \"daily_limit\": 10,\n    \"is_new\": false\n  }\n}\n```\n\n也可指定自定义码：\n\n```bash\nGET /pay/identity.php?code={CODE}\n```\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"identity_code\": \"{CODE}\",\n    \"is_new\": true\n  }\n}\n\n## 2. 解析视频\n\n```bash\nGET /api/parse.php?code={身份码}&url={链接}\n# 首次调用可不传 code，自动生成身份码\nGET /api/parse.php?url={链接}\n```\n\n### 响应 JSON\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"type\": \"\",\n    \"title\": \"\",\n    \"author\": {},\n    \"url\": \"\",\n    \"video_backup\": [],\n    \"images\": [],\n    \"live_photo\": [],\n    \"music\": {},\n    \"stats\": {}\n  },\n  \"identity_info\": {\n    \"is_new\": false,\n    \"daily_remaining\": 0,\n    \"remaining\": null,\n    \"plans\": []\n  }\n}\n```\n\n### 关键字段\n\n| 字段 | 说明 |\n|------|------|\n| data.type | video=视频, image=图片, live=动图 |\n| data.url | 视频直链（video 类型） |\n| data.images[] | 所有静图 URL，可直接 `curl` 下载 |\n| data.live_photo[] | 动图素材：每段有 video(MP4) + image(静图)。**下载 video 需带 User-Agent 和 Referer** |\n| data.music.url | 配乐链接（可直接下载） |\n| data.stats | 互动数据：liked/comment/share/collect |\n| identity_info.daily_remaining | 今日剩余次数 |\n| identity_info.remaining | 计次剩余次数 |\n\n### 错误码\n\n| HTTP | msg | 说明 |\n|------|-----|------|\n| 400 | 缺少参数: url | 未传视频链接 |\n| 403 | 身份码无效 | 身份码不存在或已停用 |\n| 429 | 今日调用次数已达上限 | 免费每日10次用完，或所有权益耗尽 |\n| 500 | 解析服务异常 | 服务器异常，重试一次 |\n\n## 3. 修改身份码\n\n```bash\nPOST /api/modify_identity.php\nContent-Type: application/x-www-form-urlencoded\n\nold_code=原身份码&new_code=新身份码\n```\n\n规则：5位数字+字母，大小写不敏感，60秒防抖。权益全部保留。\n\n| HTTP | 含义 |\n|------|------|\n| 200 | 修改成功 |\n| 400 | 参数缺失 / 格式错误 |\n| 404 | 旧身份码不存在 |\n| 403 | 旧身份码已停用 |\n| 409 | 新码已被占用 |\n| 429 | 操作太频繁 |\n\n## 4. 查身份码状态\n\n```bash\nGET /api/identity_info.php?code={身份码}\n```\n\n零消耗，返回完整权益信息：\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"is_active\": true,\n    \"plans\": [],\n    \"remaining\": null,\n    \"daily_remaining\": 0,\n    \"daily_used_today\": 0,\n    \"expires_at\": null\n  }\n}\n```\n\n## 5. 下单\n\n```bash\nPOST /pay/create.php\nContent-Type: application/json\n\n{\"identity_code\": \"{身份码}\", \"id\": \"count_10\", \"name\": \"体验套餐\", \"type\": \"count\", \"count\": 10, \"price\": 0.50}\n```\n\n```json\n{\"success\": true, \"order_id\": \"SV20260707XXXX\", \"qr_code\": \"https://qr.alipay.com/xxx\", \"amount\": 0.50}\n```\n\n⚠️ 收到 `qr_code` 后必须 `qrencode -o /tmp/qr.png \"URL\"` 生成二维码图片发 MEDIA。禁止直接发链接。\n\n### 套餐列表\n\n```bash\nGET /pay/plans.php\n```\n\n动态获取，以实时返回为准。\n\n## 6. 查支付状态\n\n```bash\nGET /pay/query.php?order_id=SV20260707XXXX\n```\n\n| status | 含义 |\n|--------|------|\n| `paid` | ✅ 已支付，权益已绑定到身份码 |\n| `pending` | ⏳ 等待支付 |\n| `closed` | ❌ 已关闭 |\n\n支付成功后用 `identity_info.php` 确认权益到账。\n\n## 7. 购买时生成身份码\n\n用户购买后可能要一个新的身份码来接收套餐：\n\n```bash\nGET /pay/identity.php?code=用户自定义码\n# 或自动生成\nGET /pay/identity.php\n```\n\nFile v1.7.2:references/field-map.md\n\n# 平台字段映射表\n\n解析响应含 `platform` 字段标识来源。各平台字段结构不同，按表提取，没有的不要编造。\n\n| 发送 | 抖音 | 快手 | 小红书 | 皮皮虾 |\n|------|:---:|:---:|:-----:|:-----:|\n| 标题 | `data.title` ✅ | `data.title` ✅ | `data.title` ✅ | `data.title` ✅ |\n| 作者 | `data.author.name` ✅ | `data.author`(字符串) ✅ | `data.author.name` ✅ | `data.author`(字符串) ✅ |\n| 点赞 | `data.stats.liked_count` ✅ | `data.like` ✅ | `data.stats.liked_count` ✅ | ❌ |\n| 评论 | `data.stats.comment_count` ✅ | ❌ | `data.stats.comment_count` ✅ | ❌ |\n| 分享 | `data.stats.share_count` ✅ | ❌ | `data.stats.share_count` ✅ | ❌ |\n| 收藏 | `data.stats.collect_count` ✅ | ❌ | `data.stats.collected_count` ✅ | ❌ |\n| 配乐 | `data.music.*` ✅ | `data.music.*` ✅ | ❌ | ❌ |\n| 类型 | `data.type` ✅ | `data.type` ✅ | `data.type` ✅ | ❌(默认video) |\n\n## 注意事项\n\n1. **皮皮虾**的 `platform` 返回 `\"api\"`（不是 `\"pipix\"`）\n2. **快手**的 `data.author` 是字符串（抖音/小红书是 `{name: xxx}` 对象）\n3. **小红书**的收藏字段是 `data.stats.collected_count`（不是 `collect_count`）\n4. **皮皮虾**无互动数据、无配乐、无 `data.type` → 只发标题和作者\n\n## 发送格式\n\n```\n标题：xxx\n作者：xxx\n📹 {平台名}\n👍 1.2万  💬 345  ⭐ 567  🔗 89\n📊 今日剩余：8次\n```\n\n没有的字段不显示。配乐单独发一条（仅抖音/快手有）：\n\n```\n🎵 配乐：标题 - 作者名\n```\n\nFile v1.7.2:references/key-rules.md\n\n# 身份码使用规则\n\n## 身份码提示（按 `identity_info` 显示）\n\n| identity_info | 显示 |\n|----------|------|\n| `daily_remaining: 8` | `📊 今日免费剩余：8次（每身份码每天10次）` |\n| `remaining: 42` | `📊 剩余：42次` |\n| `remaining: null, expires_at: 有值` | 不显示剩余（时长/永久套餐） |\n| `daily_remaining: 0, remaining: null` | `📊 今日免费次数已用完。可以购买套餐继续使用（发送\"套餐\"查看）` |\n\n## 📌 身份码规则\n\n- 身份码是5位字母数字，**大小写不敏感**\n- **永久不变**，购买套餐后同一码叠加权益\n- 可以随时修改成更好记的码（见 modify_identity.php）\n- 同 IP + 同设备指纹只会返回同一个身份码，防刷\n\n## AI 行为规则\n\n1. **永远只有一个「当前使用的身份码」** — 首次调用自动生成后保存\n2. **开始对话** → 不传 code 调 `/api/parse.php?url=链接` → 自动生成身份码 → 从响应中提取并保存\n3. **用户买了套餐** → 查支付结果 → 权益自动绑定到当前身份码 → 告知用户\n4. **调用失败（403 / 429）** → 按 HTTP 码区分处理：\n\n| HTTP | 含义 | 操作 |\n|------|------|------|\n| 403 | 身份码无效/已停用 / 该身份码无可用权益 | 检查身份码是否正确传入，或查 `identity_info.php` 确认权益状态 |\n| 429 | 今日免费次数已用完 | 引导购买套餐 |\n| 429 | 按量次数已用完 | 引导购买套餐 |\n| 500 | 解析服务异常 | 重试一次，仍失败告知用户 |\n\n**错误消息说明：**\n\n| 错误消息 | 含义 |\n|---------|------|\n| `今日免费次数已用完（X次/天），请购买套餐获取更多次数` | 免费每日额度耗尽，用户需要购买套餐 |\n| `按量次数已用完，请购买套餐` | 按量付费额度耗尽（且无免费每日可用） |\n| `该身份码无可用权益` | 身份码存在但没有任何有效权益（异常状态） |\n| `身份码无效` | 身份码不存在/被禁用，或完全未匹配任何身份码/权益 |\n\n## 📊 权益优先级\n\n**包月/包天/永久(不限量) → 免费每日(10次/天) → 按量付费(计次)**\n\n\n\n| 用户有什么 | 实际消耗顺序 |\n|-----------|------------|\n| 只有免费每日 | → 直接用免费每日 |\n| 免费 + 按量 | → 先用免费10次/天 → 用完了扣按量 |\n| 包月 + 免费 + 按量 | → 先用包月不限量 → 包月到期 → 回退免费10次/天 → 免费用完 → 扣按量 |\n| 已过期套餐 | → 冻结次数自动转成按量，同上逻辑 |\n\n如果用户问\"到期了会怎样\"，答案永远是：先回退免费每日，免费用完了才扣按量，不会直接废掉。\n\n## 🔍 last_ip 说明\n\n`last_ip` 记录的是**谁调了 API**，不是最终用户的IP。通过 AI/API 网关调用时通常显示为本机地址（`127.0.0.1`）。真实用户直接调 API 时才会记录用户公网 IP。\n\n## 常见翻车\n\n| 错误 | 纠正 |\n|------|------|\n| 不保存身份码直接调下一次 | **必须从首次响应的 `identity_info` 中提取身份码并保存** |\n| 手动新建多个身份码 | **一个就够了**，所有权益叠加到同一个码 |\n| 传小写身份码以为不行 | ✅ 大小写都支持，系统自动转大写 |\n| 猜权益优先级搞反了 | ⚠️ **不限量 → 免费每日 → 按量计次**，忘了回来查 |\n\nFile v1.7.2:references/troubleshooting.md\n\n# 异常处理指南\n\n## API 解析失败\n\n| 现象 | 原因 | 处理 |\n|------|------|------|\n| HTTP 500 | 抖音 WAF 拦截 / 服务异常 | 重试1次，仍失败则告知用户「解析服务暂不可用，稍后再试」 |\n| HTTP 403 | 身份码无效/已停用 | 检查身份码是否正确传入 |\n| HTTP 429 | 每日/总次数用完 | 引导购买套餐续费 |\n| 超时（>30s无响应） | 抖音图文笔记解析慢 | 重试1次，设置 60s 超时 |\n\n## 素材下载失败\n\n| 现象 | 原因 | 处理 |\n|------|------|------|\n| 视频URL下载返回403 | CDN 防盗链/URL过期 | 直接用 `data.url` |\n| 动图段下载失败 | 抖音 CDN geo-block / 过期 | 跳过这段，只发成功下载的动图段 + 静图 + 配乐 |\n| 图片下载失败 | 代理临时故障 | 重试1次，跳过该张图片 |\n| 配乐下载失败 | CDN 问题 | 跳过配乐，只发视频段/图片 |\n\nFile v1.7.2:references/url-fallback.md\n\n# 连接失败兜底流程\n\n当 `parse.php` 请求因 **DNS 解析失败、连接被拒绝、超时**等连接错误失败时，说明解析服务器地址可能已变更。按以下流程自动获取新地址：\n\n```bash\nTEMP_DIR=$(mktemp -d)\n# 1️⃣ 从 SkillHub 下载最新技能包提取 Base URL\ncurl -sL \"https://api.skillhub.cn/api/v1/download?slug=duanshipinjiexi\" -o \"$TEMP_DIR/skill.zip\"\nunzip -o \"$TEMP_DIR/skill.zip\" SKILL.md -d \"$TEMP_DIR\" 2>/dev/null\nNEW_URL=$(grep 'Base URL:' \"$TEMP_DIR/SKILL.md\" | sed 's/.*`\\(.*\\)`.*/\\1/')\nrm -rf \"$TEMP_DIR\"\n\nif [ -n \"$NEW_URL\" ]; then\n  curl -s --max-time 30 \"$NEW_URL/api/parse.php?code={CODE}&url=视频链接\"\n  echo \"【提示】解析服务地址已更新，后续使用新地址 $NEW_URL\"\nelse\n  # 2️⃣ 兜底：从 ClawHub 查\n  JSON=$(curl -s \"https://clawhub.ai/api/v1/skills/duanshipinjiexi\")\n  NEW_URL=$(echo \"$JSON\" | python3 -c \"import sys,json; d=json.load(sys.stdin).get('description',''); import re; m=re.search(r'Base URL: `(.+)`', d); print(m.group(1) if m else '')\" 2>/dev/null)\n  if [ -n \"$NEW_URL\" ]; then\n    curl -s --max-time 30 \"$NEW_URL/api/parse.php?code={CODE}&url=视频链接\"\n    echo \"【提示】解析服务地址已更新，后续使用新地址 $NEW_URL\"\n  else\n    echo \"【错误】无法获取新解析地址，请手动更新技能\"\n  fi\nfi\n```\n\nFile v1.7.2:skill-card.md\n\n## Description: <br>\n一站式视频解析去水印工具，覆盖抖音、快手、小红书、皮皮虾链接解析，帮助用户提取无平台标识水印的视频、图片和配乐素材。 <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[kangleizhui](https://clawhub.ai/user/kangleizhui) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and agents use this skill to parse supported short-video platform links, retrieve downloadable media without platform watermarks, manage a persistent identity code, and check quota or payment status. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Video links are sent to a third-party parsing service. <br>\nMitigation: Use the skill only for non-sensitive public links and avoid private, confidential, or restricted media URLs. <br>\nRisk: The skill creates and reuses a persistent identity code. <br>\nMitigation: Review the identity code before reuse, do not share it unnecessarily, and replace it only when the user explicitly requests a change. <br>\nRisk: The skill supports paid quota and payment order flows. <br>\nMitigation: Require explicit user approval before creating payment orders, generating QR codes, or checking paid plan status. <br>\nRisk: The fallback procedure can switch requests to a dynamically discovered backend URL. <br>\nMitigation: Ask for user approval before using fallback endpoints and confirm the destination domain before sending any video link. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/kangleizhui/skills/duanshipinjiexi) <br>\n- [API documentation](artifact/references/api-docs.md) <br>\n- [Platform field map](artifact/references/field-map.md) <br>\n- [Identity code rules](artifact/references/key-rules.md) <br>\n- [Troubleshooting guide](artifact/references/troubleshooting.md) <br>\n- [URL fallback procedure](artifact/references/url-fallback.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, API calls, guidance] <br>\n**Output Format:** [Markdown guidance with API request examples, shell commands, and user-facing media links or status text] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May produce downloadable media URLs, quota status, payment QR-code handling guidance, and fallback commands for locating an updated parsing endpoint.] <br>\n\n## Skill Version(s): <br>\n1.7.2 (source: server release evidence and frontmatter) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.7.1: 8 files, 10912 bytes\n\nFiles: _meta.json (134b), references/api-docs.md (3948b), references/field-map.md (1565b), references/key-rules.md (3378b), references/troubleshooting.md (897b), references/url-fallback.md (1344b), skill-card.md (2804b), SKILL.md (5039b)\n\nFile v1.7.1:SKILL.md\n\n---\nname: duanshipinjiexi\nslug: duanshipinjiexi\ndisplayName: 一键短视频去水印\ndescription: 短视频去水印，支持抖音/快手/小红书/皮皮虾4大平台。用户发链接时自动解析去水印并返回视频/图片+互动数据。\nversion: 1.7.1\nsummary: 抖音/快手/小红书/皮皮虾去水印解析。免费每日用完自动扣按量计次，包月到期回退免费。\nlicense: MIT\nwhen_to_use:\n  - 用户发来抖音/快手/小红书/皮皮虾链接 → 自动解析\n  - 用户给了身份码 → 直接用不创建\n  - 用户询问套餐、购买、改码、查状态\n  - 用户告知已支付 → 查状态并交付身份码\n---\n\n# 短视频去水印解析\n\n> Base URL: `https://spqsy.kcucu.com`\n\n## 🆔 身份码\n\n5位大写字母数字，**永久不变**，大小写不敏感。多设备多AI共用，不存在占用概念。\n\n按以下三个场景区分处理：\n\n### 场景一：用户给了码 → 直接用\n\n**不创建、不修改、不替换**。保存到记忆，之后都用这个码。\n\n```bash\nGET /api/parse.php?code={用户给的码}&url=链接\n```\n\n> 用户给的码覆盖AI自建码（旧码仍在服务端，AI不再用）。多个AI用同一个码各自调即可，不要试图\"占有\"。\n\n### 场景二：用户没给码 → AI自动创建\n\n首次调用不传code，自动生成新码并保存到记忆。\n\n```bash\n# 专用接口\nGET /api/create_identity.php\n\n# 一步到位（自动创建+解析）\nGET /api/parse.php?url=视频链接\n```\n\n> 从响应提取身份码保存，后续所有调用都用它。系统按IP+UA指纹防重，同一工具只会返回同一个码。\n\n### 场景三：用户主动要求改码\n\n**只有**用户明确说\"改码/换码/修改身份码\"时才走：\n\n```bash\nPOST /api/modify_identity.php\nContent-Type: application/x-www-form-urlencoded\n\nold_code=原码&new_code=新码\n```\n\n规则：5位数字+字母、不能重复、60秒防抖。\n\n### 查状态（零消耗）\n\n```bash\nGET /api/identity_info.php?code={身份码}\n```\n\n> 权益优先级详见 `references/key-rules.md`\n\n## ⚡ 解析\n\n收到链接直接调 API，不要用浏览器打开。\n\n```bash\ncurl -s --max-time 30 \"https://spqsy.kcucu.com/api/parse.php?code={CODE}&url=链接\"\n```\n\n> **连接失败兜底**：上述请求因 DNS/连接/超时错误失败时，跑 `references/url-fallback.md` 的脚本自动获取新地址。\n\n### 处理不同 type\n\n响应中的 `data.type` 决定素材和配乐处理方式：\n\n| type | 素材处理 | 配乐处理 | 原因 |\n|------|---------|---------|------|\n| **video** | 下载 `data.url`/`video_backup[0]` 发视频 | **不发** | 视频自带音轨 |\n| **image** | 下载 `data.images[]` 发图片 | 发 `data.music.url` | 图文是静默的，需要音乐 |\n| **live** | 下载 `live_photo[].video`(动图)+`data.images[]`(静图) | 发 `data.music.url` | 动图也无声音 |\n\n> **大视频兜底**：素材总量超 **10MB** 时，先告知用户「资源较大，下载发送大约需要3-5分钟，请稍等」。若下载耗时超过60秒或失败，直接发 `data.url` / `video_backup[0]` 的直链给用户，让用户自行下载。如果用户反馈「没收到视频」，同样直接发直链兜底。\n\n### 多平台链路\n\n4个平台都调同一个 `parse.php`，AI 不需要区分平台，用户发什么链接就传什么：\n\n```bash\nGET /api/parse.php?code={CODE}&url=用户发的链接\n```\n\n> 快手链接返回404/500时，先 `curl -sL -o /dev/null -w '%{url_effective}'` 解短链再传。\n\n### 发送给用户\n\n响应含 `platform` 字段标识来源。**各平台字段结构不同**，按 `references/field-map.md` 提取。\n\n核心原则：\n- 有的字段就发，**没有的不要编造**\n- 配乐单独发一条（仅抖音/快手有）\n- 每日剩余次数告知用户\n\n### 边界条件\n\n以下情况**不处理**，直接告知用户：\n- 解析返回 403 → 身份码无效或次数用完\n- 解析返回 429 → 每日限额用完，明天再试\n- 平台不在抖音/快手/小红书/皮皮虾范围内 → 暂不支持\n- 链接打不开或解析超时 → 建议用户重新分享链接\n\n### 错误码\n\n| 码 | 含义 | 处理 |\n|----|------|------|\n| 403 | 身份码无效/次数用完 | 引导用户购买套餐 |\n| 429 | 每日限额用完 | 告知明天恢复或购买 |\n| 500 | 解析异常 | 重试一次，再失败报错 |\n\n> 所有解析失败的情况（含 400/403/429/500）中，如果用户发的是电脑端页面链接（如 `www.xiaohongshu.com/explore/`、`www.douyin.com/video/`），额外告知「暂不支持电脑端链接，请在手机APP对应平台上复制作品分享链接」。\n\n## 💰 购买\n\n```bash\nGET  /pay/plans.php              # 展示套餐\nPOST /pay/create.php              # 下单\n{\"identity_code\":\"{码}\",\"id\":\"count_10\"}\nGET  /pay/query.php?order_id={ID} # 查支付\n```\n\n返回 `qr_code` 生成二维码发用户扫码。支付成功后用 `identity_info.php` 确认到账。\n\n> **API 详情** `references/api-docs.md`\n> **异常处理** `references/troubleshooting.md`\n\nFile v1.7.1:_meta.json\n\n{\n  \"ownerId\": \"kn7bdg1vvrjevs20ka8hbvkshh87xc7g\",\n  \"slug\": \"duanshipinjiexi\",\n  \"version\": \"1.7.1\",\n  \"publishedAt\": 1783904309491\n}\n\nFile v1.7.1:references/api-docs.md\n\n# API 文档\n\n> Base URL: `https://spqsy.kcucu.com`\n> 所有身份码参数大小写不敏感，大小写完全等价\n\n## 🆔 身份码系统\n\n身份码是5位字母数字，永久不变。所有操作绑定同一个身份码：\n- 首次调用自动生成，每天免费10次\n- 购买套餐后同一身份码叠加权益\n- 可以随时修改身份码（换好记的码）\n\n## 1. 创建身份码（无需视频链接）\n\n```bash\nGET /api/create_identity.php\n```\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"identity_code\": \"{CODE}\",\n    \"daily_limit\": 10,\n    \"is_new\": false\n  }\n}\n```\n\n也可指定自定义码：\n\n```bash\nGET /pay/identity.php?code={CODE}\n```\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"identity_code\": \"{CODE}\",\n    \"is_new\": true\n  }\n}\n\n## 2. 解析视频\n\n```bash\nGET /api/parse.php?code={身份码}&url={链接}\n# 首次调用可不传 code，自动生成身份码\nGET /api/parse.php?url={链接}\n```\n\n### 响应 JSON\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"type\": \"\",\n    \"title\": \"\",\n    \"author\": {},\n    \"url\": \"\",\n    \"video_backup\": [],\n    \"images\": [],\n    \"live_photo\": [],\n    \"music\": {},\n    \"stats\": {}\n  },\n  \"identity_info\": {\n    \"is_new\": false,\n    \"daily_remaining\": 0,\n    \"remaining\": null,\n    \"plans\": []\n  }\n}\n```\n\n### 关键字段\n\n| 字段 | 说明 |\n|------|------|\n| data.type | video=视频, image=图片, live=动图 |\n| data.url | 视频直链（video 类型） |\n| data.images[] | 所有静图 URL，可直接 `curl` 下载 |\n| data.live_photo[] | 动图素材：每段有 video(MP4) + image(静图)。**下载 video 需带 User-Agent 和 Referer** |\n| data.music.url | 配乐链接（可直接下载） |\n| data.stats | 互动数据：liked/comment/share/collect |\n| identity_info.daily_remaining | 今日剩余次数 |\n| identity_info.remaining | 计次剩余次数 |\n\n### 错误码\n\n| HTTP | msg | 说明 |\n|------|-----|------|\n| 400 | 缺少参数: url | 未传视频链接 |\n| 403 | 身份码无效 | 身份码不存在或已停用 |\n| 429 | 今日调用次数已达上限 | 免费每日10次用完，或所有权益耗尽 |\n| 500 | 解析服务异常 | 服务器异常，重试一次 |\n\n## 3. 修改身份码\n\n```bash\nPOST /api/modify_identity.php\nContent-Type: application/x-www-form-urlencoded\n\nold_code=原身份码&new_code=新身份码\n```\n\n规则：5位数字+字母，大小写不敏感，60秒防抖。权益全部保留。\n\n| HTTP | 含义 |\n|------|------|\n| 200 | 修改成功 |\n| 400 | 参数缺失 / 格式错误 |\n| 404 | 旧身份码不存在 |\n| 403 | 旧身份码已停用 |\n| 409 | 新码已被占用 |\n| 429 | 操作太频繁 |\n\n## 4. 查身份码状态\n\n```bash\nGET /api/identity_info.php?code={身份码}\n```\n\n零消耗，返回完整权益信息：\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"is_active\": true,\n    \"plans\": [],\n    \"remaining\": null,\n    \"daily_remaining\": 0,\n    \"daily_used_today\": 0,\n    \"expires_at\": null\n  }\n}\n```\n\n## 5. 下单\n\n```bash\nPOST /pay/create.php\nContent-Type: application/json\n\n{\"identity_code\": \"{身份码}\", \"id\": \"count_10\", \"name\": \"体验套餐\", \"type\": \"count\", \"count\": 10, \"price\": 0.50}\n```\n\n```json\n{\"success\": true, \"order_id\": \"SV20260707XXXX\", \"qr_code\": \"https://qr.alipay.com/xxx\", \"amount\": 0.50}\n```\n\n⚠️ 收到 `qr_code` 后必须 `qrencode -o /tmp/qr.png \"URL\"` 生成二维码图片发 MEDIA。禁止直接发链接。\n\n### 套餐列表\n\n```bash\nGET /pay/plans.php\n```\n\n动态获取，以实时返回为准。\n\n## 6. 查支付状态\n\n```bash\nGET /pay/query.php?order_id=SV20260707XXXX\n```\n\n| status | 含义 |\n|--------|------|\n| `paid` | ✅ 已支付，权益已绑定到身份码 |\n| `pending` | ⏳ 等待支付 |\n| `closed` | ❌ 已关闭 |\n\n支付成功后用 `identity_info.php` 确认权益到账。\n\n## 7. 购买时生成身份码\n\n用户购买后可能要一个新的身份码来接收套餐：\n\n```bash\nGET /pay/identity.php?code=用户自定义码\n# 或自动生成\nGET /pay/identity.php\n```\n\nFile v1.7.1:references/field-map.md\n\n# 平台字段映射表\n\n解析响应含 `platform` 字段标识来源。各平台字段结构不同，按表提取，没有的不要编造。\n\n| 发送 | 抖音 | 快手 | 小红书 | 皮皮虾 |\n|------|:---:|:---:|:-----:|:-----:|\n| 标题 | `data.title` ✅ | `data.title` ✅ | `data.title` ✅ | `data.title` ✅ |\n| 作者 | `data.author.name` ✅ | `data.author`(字符串) ✅ | `data.author.name` ✅ | `data.author`(字符串) ✅ |\n| 点赞 | `data.stats.liked_count` ✅ | `data.like` ✅ | `data.stats.liked_count` ✅ | ❌ |\n| 评论 | `data.stats.comment_count` ✅ | ❌ | `data.stats.comment_count` ✅ | ❌ |\n| 分享 | `data.stats.share_count` ✅ | ❌ | `data.stats.share_count` ✅ | ❌ |\n| 收藏 | `data.stats.collect_count` ✅ | ❌ | `data.stats.collected_count` ✅ | ❌ |\n| 配乐 | `data.music.*` ✅ | `data.music.*` ✅ | ❌ | ❌ |\n| 类型 | `data.type` ✅ | `data.type` ✅ | `data.type` ✅ | ❌(默认video) |\n\n## 注意事项\n\n1. **皮皮虾**的 `platform` 返回 `\"api\"`（不是 `\"pipix\"`）\n2. **快手**的 `data.author` 是字符串（抖音/小红书是 `{name: xxx}` 对象）\n3. **小红书**的收藏字段是 `data.stats.collected_count`（不是 `collect_count`）\n4. **皮皮虾**无互动数据、无配乐、无 `data.type` → 只发标题和作者\n\n## 发送格式\n\n```\n标题：xxx\n作者：xxx\n📹 {平台名}\n👍 1.2万  💬 345  ⭐ 567  🔗 89\n📊 今日剩余：8次\n```\n\n没有的字段不显示。配乐单独发一条（仅抖音/快手有）：\n\n```\n🎵 配乐：标题 - 作者名\n```\n\nFile v1.7.1:references/key-rules.md\n\n# 身份码使用规则\n\n## 身份码提示（按 `identity_info` 显示）\n\n| identity_info | 显示 |\n|----------|------|\n| `daily_remaining: 8` | `📊 今日免费剩余：8次（每身份码每天10次）` |\n| `remaining: 42` | `📊 剩余：42次` |\n| `remaining: null, expires_at: 有值` | 不显示剩余（时长/永久套餐） |\n| `daily_remaining: 0, remaining: null` | `📊 今日免费次数已用完。可以购买套餐继续使用（发送\"套餐\"查看）` |\n\n## 📌 身份码规则\n\n- 身份码是5位字母数字，**大小写不敏感**\n- **永久不变**，购买套餐后同一码叠加权益\n- 可以随时修改成更好记的码（见 modify_identity.php）\n- 同 IP + 同设备指纹只会返回同一个身份码，防刷\n\n## AI 行为规则\n\n1. **永远只有一个「当前使用的身份码」** — 首次调用自动生成后保存\n2. **开始对话** → 不传 code 调 `/api/parse.php?url=链接` → 自动生成身份码 → 从响应中提取并保存\n3. **用户买了套餐** → 查支付结果 → 权益自动绑定到当前身份码 → 告知用户\n4. **调用失败（403 / 429）** → 按 HTTP 码区分处理：\n\n| HTTP | 含义 | 操作 |\n|------|------|------|\n| 403 | 身份码无效/已停用 / 该身份码无可用权益 | 检查身份码是否正确传入，或查 `identity_info.php` 确认权益状态 |\n| 429 | 今日免费次数已用完 | 引导购买套餐 |\n| 429 | 按量次数已用完 | 引导购买套餐 |\n| 500 | 解析服务异常 | 重试一次，仍失败告知用户 |\n\n**错误消息说明：**\n\n| 错误消息 | 含义 |\n|---------|------|\n| `今日免费次数已用完（X次/天），请购买套餐获取更多次数` | 免费每日额度耗尽，用户需要购买套餐 |\n| `按量次数已用完，请购买套餐` | 按量付费额度耗尽（且无免费每日可用） |\n| `该身份码无可用权益` | 身份码存在但没有任何有效权益（异常状态） |\n| `身份码无效` | 身份码不存在/被禁用，或完全未匹配任何身份码/权益 |\n\n## 📊 权益优先级\n\n**包月/包天/永久(不限量) → 免费每日(10次/天) → 按量付费(计次)**\n\n\n\n| 用户有什么 | 实际消耗顺序 |\n|-----------|------------|\n| 只有免费每日 | → 直接用免费每日 |\n| 免费 + 按量 | → 先用免费10次/天 → 用完了扣按量 |\n| 包月 + 免费 + 按量 | → 先用包月不限量 → 包月到期 → 回退免费10次/天 → 免费用完 → 扣按量 |\n| 已过期套餐 | → 冻结次数自动转成按量，同上逻辑 |\n\n如果用户问\"到期了会怎样\"，答案永远是：先回退免费每日，免费用完了才扣按量，不会直接废掉。\n\n## 🔍 last_ip 说明\n\n`last_ip` 记录的是**谁调了 API**，不是最终用户的IP。通过 AI/API 网关调用时通常显示为本机地址（`127.0.0.1`）。真实用户直接调 API 时才会记录用户公网 IP。\n\n## 常见翻车\n\n| 错误 | 纠正 |\n|------|------|\n| 不保存身份码直接调下一次 | **必须从首次响应的 `identity_info` 中提取身份码并保存** |\n| 手动新建多个身份码 | **一个就够了**，所有权益叠加到同一个码 |\n| 传小写身份码以为不行 | ✅ 大小写都支持，系统自动转大写 |\n| 猜权益优先级搞反了 | ⚠️ **不限量 → 免费每日 → 按量计次**，忘了回来查 |\n\nFile v1.7.1:references/troubleshooting.md\n\n# 异常处理指南\n\n## API 解析失败\n\n| 现象 | 原因 | 处理 |\n|------|------|------|\n| HTTP 500 | 抖音 WAF 拦截 / 服务异常 | 重试1次，仍失败则告知用户「解析服务暂不可用，稍后再试」 |\n| HTTP 403 | 身份码无效/已停用 | 检查身份码是否正确传入 |\n| HTTP 429 | 每日/总次数用完 | 引导购买套餐续费 |\n| 超时（>30s无响应） | 抖音图文笔记解析慢 | 重试1次，设置 60s 超时 |\n\n## 素材下载失败\n\n| 现象 | 原因 | 处理 |\n|------|------|------|\n| 视频URL下载返回403 | CDN 防盗链/URL过期 | 直接用 `data.url` |\n| 动图段下载失败 | 抖音 CDN geo-block / 过期 | 跳过这段，只发成功下载的动图段 + 静图 + 配乐 |\n| 图片下载失败 | 代理临时故障 | 重试1次，跳过该张图片 |\n| 配乐下载失败 | CDN 问题 | 跳过配乐，只发视频段/图片 |\n\nFile v1.7.1:references/url-fallback.md\n\n# 连接失败兜底流程\n\n当 `parse.php` 请求因 **DNS 解析失败、连接被拒绝、超时**等连接错误失败时，说明解析服务器地址可能已变更。按以下流程自动获取新地址：\n\n```bash\nTEMP_DIR=$(mktemp -d)\n# 1️⃣ 从 SkillHub 下载最新技能包提取 Base URL\ncurl -sL \"https://api.skillhub.cn/api/v1/download?slug=duanshipinjiexi\" -o \"$TEMP_DIR/skill.zip\"\nunzip -o \"$TEMP_DIR/skill.zip\" SKILL.md -d \"$TEMP_DIR\" 2>/dev/null\nNEW_URL=$(grep 'Base URL:' \"$TEMP_DIR/SKILL.md\" | sed 's/.*`\\(.*\\)`.*/\\1/')\nrm -rf \"$TEMP_DIR\"\n\nif [ -n \"$NEW_URL\" ]; then\n  curl -s --max-time 30 \"$NEW_URL/api/parse.php?code={CODE}&url=视频链接\"\n  echo \"【提示】解析服务地址已更新，后续使用新地址 $NEW_URL\"\nelse\n  # 2️⃣ 兜底：从 ClawHub 查\n  JSON=$(curl -s \"https://clawhub.ai/api/v1/skills/duanshipinjiexi\")\n  NEW_URL=$(echo \"$JSON\" | python3 -c \"import sys,json; d=json.load(sys.stdin).get('description',''); import re; m=re.search(r'Base URL: `(.+)`', d); print(m.group(1) if m else '')\" 2>/dev/null)\n  if [ -n \"$NEW_URL\" ]; then\n    curl -s --max-time 30 \"$NEW_URL/api/parse.php?code={CODE}&url=视频链接\"\n    echo \"【提示】解析服务地址已更新，后续使用新地址 $NEW_URL\"\n  else\n    echo \"【错误】无法获取新解析地址，请手动更新技能\"\n  fi\nfi\n```\n\nFile v1.7.1:skill-card.md\n\n## Description: <br>\nParses Douyin, Kuaishou, Xiaohongshu, and Pipixia links to return watermark-free video or image media with available engagement metadata. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[kangleizhui](https://clawhub.ai/user/kangleizhui) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users give supported short-video platform links to an agent, which uses this skill to parse, download, and return usable video or image assets with available title, author, music, and engagement information. The skill also helps manage the persistent identity code, quota status, and purchase-status checks used by the parsing service. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Submitted video links and the persistent identity code are sent to external services. <br>\nMitigation: Use the skill only when the publisher and parsing service are trusted, avoid sensitive private links, and disclose external processing to users. <br>\nRisk: The connection fallback can automatically switch to a newly discovered service endpoint. <br>\nMitigation: Disable automatic fallback or manually verify the replacement endpoint before using it. <br>\nRisk: The built-in purchase flow can create payment orders and QR codes. <br>\nMitigation: Require user consent before purchase actions, verify order status through the documented API, and review the payment flow before deployment. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/kangleizhui/skills/duanshipinjiexi) <br>\n- [API documentation](artifact/references/api-docs.md) <br>\n- [Platform field map](artifact/references/field-map.md) <br>\n- [Identity code rules](artifact/references/key-rules.md) <br>\n- [Troubleshooting guide](artifact/references/troubleshooting.md) <br>\n- [Connection fallback flow](artifact/references/url-fallback.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, API calls, Shell commands, Files, Guidance] <br>\n**Output Format:** [Markdown or plain-text responses with API request examples, shell commands, downloaded media files, music files, or direct media URLs.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May return video, image, live-photo, music, metadata, quota status, purchase status, or fallback direct download links depending on the parsing response.] <br>\n\n## Skill Version(s): <br>\n1.7.1 (source: server release and skill frontmatter) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.7.0: 8 files, 10905 bytes\n\nFiles: _meta.json (134b), references/api-docs.md (3948b), references/field-map.md (1565b), references/key-rules.md (3378b), references/troubleshooting.md (897b), references/url-fallback.md (1344b), skill-card.md (2580b), SKILL.md (4967b)\n\nFile v1.7.0:SKILL.md\n\n---\nname: duanshipinjiexi\nslug: duanshipinjiexi\ndisplayName: 一键短视频去水印\ndescription: 短视频去水印，支持抖音/快手/小红书/皮皮虾4大平台。用户发链接时自动解析去水印并返回视频/图片+互动数据。\nversion: 1.7.0\nsummary: 抖音/快手/小红书/皮皮虾去水印解析。免费每日用完自动扣按量计次，包月到期回退免费。\nlicense: MIT\nwhen_to_use:\n  - 用户发来抖音/快手/小红书/皮皮虾链接 → 自动解析\n  - 用户给了身份码 → 直接用不创建\n  - 用户询问套餐、购买、改码、查状态\n  - 用户告知已支付 → 查状态并交付身份码\n---\n\n# 短视频去水印解析\n\n> Base URL: `https://spqsy.kcucu.com`\n\n## 🆔 身份码\n\n5位大写字母数字，**永久不变**，大小写不敏感。多设备多AI共用，不存在占用概念。\n\n按以下三个场景区分处理：\n\n### 场景一：用户给了码 → 直接用\n\n**不创建、不修改、不替换**。保存到记忆，之后都用这个码。\n\n```bash\nGET /api/parse.php?code={用户给的码}&url=链接\n```\n\n> 用户给的码覆盖AI自建码（旧码仍在服务端，AI不再用）。多个AI用同一个码各自调即可，不要试图\"占有\"。\n\n### 场景二：用户没给码 → AI自动创建\n\n首次调用不传code，自动生成新码并保存到记忆。\n\n```bash\n# 专用接口\nGET /api/create_identity.php\n\n# 一步到位（自动创建+解析）\nGET /api/parse.php?url=视频链接\n```\n\n> 从响应提取身份码保存，后续所有调用都用它。系统按IP+UA指纹防重，同一工具只会返回同一个码。\n\n### 场景三：用户主动要求改码\n\n**只有**用户明确说\"改码/换码/修改身份码\"时才走：\n\n```bash\nPOST /api/modify_identity.php\nContent-Type: application/x-www-form-urlencoded\n\nold_code=原码&new_code=新码\n```\n\n规则：5位数字+字母、不能重复、60秒防抖。\n\n### 查状态（零消耗）\n\n```bash\nGET /api/identity_info.php?code={身份码}\n```\n\n> 权益优先级详见 `references/key-rules.md`\n\n## ⚡ 解析\n\n收到链接直接调 API，不要用浏览器打开。\n\n```bash\ncurl -s --max-time 30 \"https://spqsy.kcucu.com/api/parse.php?code={CODE}&url=链接\"\n```\n\n> **连接失败兜底**：上述请求因 DNS/连接/超时错误失败时，跑 `references/url-fallback.md` 的脚本自动获取新地址。\n\n### 处理不同 type\n\n响应中的 `data.type` 决定素材和配乐处理方式：\n\n| type | 素材处理 | 配乐处理 | 原因 |\n|------|---------|---------|------|\n| **video** | 下载 `data.url`/`video_backup[0]` 发视频 | **不发** | 视频自带音轨 |\n| **image** | 下载 `data.images[]` 发图片 | 发 `data.music.url` | 图文是静默的，需要音乐 |\n| **live** | 下载 `live_photo[].video`(动图)+`data.images[]`(静图) | 发 `data.music.url` | 动图也无声音 |\n\n> **大视频兜底**：素材总量超 **10MB** 时，先告知用户「资源较大，下载发送大约需要3-5分钟，请稍等」。若下载耗时超过60秒或失败，直接发 `data.url` / `video_backup[0]` 的直链给用户，让用户自行下载。\n\n### 多平台链路\n\n4个平台都调同一个 `parse.php`，AI 不需要区分平台，用户发什么链接就传什么：\n\n```bash\nGET /api/parse.php?code={CODE}&url=用户发的链接\n```\n\n> 快手链接返回404/500时，先 `curl -sL -o /dev/null -w '%{url_effective}'` 解短链再传。\n\n### 发送给用户\n\n响应含 `platform` 字段标识来源。**各平台字段结构不同**，按 `references/field-map.md` 提取。\n\n核心原则：\n- 有的字段就发，**没有的不要编造**\n- 配乐单独发一条（仅抖音/快手有）\n- 每日剩余次数告知用户\n\n### 边界条件\n\n以下情况**不处理**，直接告知用户：\n- 解析返回 403 → 身份码无效或次数用完\n- 解析返回 429 → 每日限额用完，明天再试\n- 平台不在抖音/快手/小红书/皮皮虾范围内 → 暂不支持\n- 链接打不开或解析超时 → 建议用户重新分享链接\n\n### 错误码\n\n| 码 | 含义 | 处理 |\n|----|------|------|\n| 403 | 身份码无效/次数用完 | 引导用户购买套餐 |\n| 429 | 每日限额用完 | 告知明天恢复或购买 |\n| 500 | 解析异常 | 重试一次，再失败报错 |\n\n> 所有解析失败的情况（含 400/403/429/500）中，如果用户发的是电脑端页面链接（如 `www.xiaohongshu.com/explore/`、`www.douyin.com/video/`），额外告知「暂不支持电脑端链接，请在手机APP对应平台上复制作品分享链接」。\n\n## 💰 购买\n\n```bash\nGET  /pay/plans.php              # 展示套餐\nPOST /pay/create.php              # 下单\n{\"identity_code\":\"{码}\",\"id\":\"count_10\"}\nGET  /pay/query.php?order_id={ID} # 查支付\n```\n\n返回 `qr_code` 生成二维码发用户扫码。支付成功后用 `identity_info.php` 确认到账。\n\n> **API 详情** `references/api-docs.md`\n> **异常处理** `references/troubleshooting.md`\n\nFile v1.7.0:_meta.json\n\n{\n  \"ownerId\": \"kn7bdg1vvrjevs20ka8hbvkshh87xc7g\",\n  \"slug\": \"duanshipinjiexi\",\n  \"version\": \"1.7.0\",\n  \"publishedAt\": 1783904109171\n}\n\nFile v1.7.0:references/api-docs.md\n\n# API 文档\n\n> Base URL: `https://spqsy.kcucu.com`\n> 所有身份码参数大小写不敏感，大小写完全等价\n\n## 🆔 身份码系统\n\n身份码是5位字母数字，永久不变。所有操作绑定同一个身份码：\n- 首次调用自动生成，每天免费10次\n- 购买套餐后同一身份码叠加权益\n- 可以随时修改身份码（换好记的码）\n\n## 1. 创建身份码（无需视频链接）\n\n```bash\nGET /api/create_identity.php\n```\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"identity_code\": \"{CODE}\",\n    \"daily_limit\": 10,\n    \"is_new\": false\n  }\n}\n```\n\n也可指定自定义码：\n\n```bash\nGET /pay/identity.php?code={CODE}\n```\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"identity_code\": \"{CODE}\",\n    \"is_new\": true\n  }\n}\n\n## 2. 解析视频\n\n```bash\nGET /api/parse.php?code={身份码}&url={链接}\n# 首次调用可不传 code，自动生成身份码\nGET /api/parse.php?url={链接}\n```\n\n### 响应 JSON\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"type\": \"\",\n    \"title\": \"\",\n    \"author\": {},\n    \"url\": \"\",\n    \"video_backup\": [],\n    \"images\": [],\n    \"live_photo\": [],\n    \"music\": {},\n    \"stats\": {}\n  },\n  \"identity_info\": {\n    \"is_new\": false,\n    \"daily_remaining\": 0,\n    \"remaining\": null,\n    \"plans\": []\n  }\n}\n```\n\n### 关键字段\n\n| 字段 | 说明 |\n|------|------|\n| data.type | video=视频, image=图片, live=动图 |\n| data.url | 视频直链（video 类型） |\n| data.images[] | 所有静图 URL，可直接 `curl` 下载 |\n| data.live_photo[] | 动图素材：每段有 video(MP4) + image(静图)。**下载 video 需带 User-Agent 和 Referer** |\n| data.music.url | 配乐链接（可直接下载） |\n| data.stats | 互动数据：liked/comment/share/collect |\n| identity_info.daily_remaining | 今日剩余次数 |\n| identity_info.remaining | 计次剩余次数 |\n\n### 错误码\n\n| HTTP | msg | 说明 |\n|------|-----|------|\n| 400 | 缺少参数: url | 未传视频链接 |\n| 403 | 身份码无效 | 身份码不存在或已停用 |\n| 429 | 今日调用次数已达上限 | 免费每日10次用完，或所有权益耗尽 |\n| 500 | 解析服务异常 | 服务器异常，重试一次 |\n\n## 3. 修改身份码\n\n```bash\nPOST /api/modify_identity.php\nContent-Type: application/x-www-form-urlencoded\n\nold_code=原身份码&new_code=新身份码\n```\n\n规则：5位数字+字母，大小写不敏感，60秒防抖。权益全部保留。\n\n| HTTP | 含义 |\n|------|------|\n| 200 | 修改成功 |\n| 400 | 参数缺失 / 格式错误 |\n| 404 | 旧身份码不存在 |\n| 403 | 旧身份码已停用 |\n| 409 | 新码已被占用 |\n| 429 | 操作太频繁 |\n\n## 4. 查身份码状态\n\n```bash\nGET /api/identity_info.php?code={身份码}\n```\n\n零消耗，返回完整权益信息：\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"is_active\": true,\n    \"plans\": [],\n    \"remaining\": null,\n    \"daily_remaining\": 0,\n    \"daily_used_today\": 0,\n    \"expires_at\": null\n  }\n}\n```\n\n## 5. 下单\n\n```bash\nPOST /pay/create.php\nContent-Type: application/json\n\n{\"identity_code\": \"{身份码}\", \"id\": \"count_10\", \"name\": \"体验套餐\", \"type\": \"count\", \"count\": 10, \"price\": 0.50}\n```\n\n```json\n{\"success\": true, \"order_id\": \"SV20260707XXXX\", \"qr_code\": \"https://qr.alipay.com/xxx\", \"amount\": 0.50}\n```\n\n⚠️ 收到 `qr_code` 后必须 `qrencode -o /tmp/qr.png \"URL\"` 生成二维码图片发 MEDIA。禁止直接发链接。\n\n### 套餐列表\n\n```bash\nGET /pay/plans.php\n```\n\n动态获取，以实时返回为准。\n\n## 6. 查支付状态\n\n```bash\nGET /pay/query.php?order_id=SV20260707XXXX\n```\n\n| status | 含义 |\n|--------|------|\n| `paid` | ✅ 已支付，权益已绑定到身份码 |\n| `pending` | ⏳ 等待支付 |\n| `closed` | ❌ 已关闭 |\n\n支付成功后用 `identity_info.php` 确认权益到账。\n\n## 7. 购买时生成身份码\n\n用户购买后可能要一个新的身份码来接收套餐：\n\n```bash\nGET /pay/identity.php?code=用户自定义码\n# 或自动生成\nGET /pay/identity.php\n```\n\nFile v1.7.0:references/field-map.md\n\n# 平台字段映射表\n\n解析响应含 `platform` 字段标识来源。各平台字段结构不同，按表提取，没有的不要编造。\n\n| 发送 | 抖音 | 快手 | 小红书 | 皮皮虾 |\n|------|:---:|:---:|:-----:|:-----:|\n| 标题 | `data.title` ✅ | `data.title` ✅ | `data.title` ✅ | `data.title` ✅ |\n| 作者 | `data.author.name` ✅ | `data.author`(字符串) ✅ | `data.author.name` ✅ | `data.author`(字符串) ✅ |\n| 点赞 | `data.stats.liked_count` ✅ | `data.like` ✅ | `data.stats.liked_count` ✅ | ❌ |\n| 评论 | `data.stats.comment_count` ✅ | ❌ | `data.stats.comment_count` ✅ | ❌ |\n| 分享 | `data.stats.share_count` ✅ | ❌ | `data.stats.share_count` ✅ | ❌ |\n| 收藏 | `data.stats.collect_count` ✅ | ❌ | `data.stats.collected_count` ✅ | ❌ |\n| 配乐 | `data.music.*` ✅ | `data.music.*` ✅ | ❌ | ❌ |\n| 类型 | `data.type` ✅ | `data.type` ✅ | `data.type` ✅ | ❌(默认video) |\n\n## 注意事项\n\n1. **皮皮虾**的 `platform` 返回 `\"api\"`（不是 `\"pipix\"`）\n2. **快手**的 `data.author` 是字符串（抖音/小红书是 `{name: xxx}` 对象）\n3. **小红书**的收藏字段是 `data.stats.collected_count`（不是 `collect_count`）\n4. **皮皮虾**无互动数据、无配乐、无 `data.type` → 只发标题和作者\n\n## 发送格式\n\n```\n标题：xxx\n作者：xxx\n📹 {平台名}\n👍 1.2万  💬 345  ⭐ 567  🔗 89\n📊 今日剩余：8次\n```\n\n没有的字段不显示。配乐单独发一条（仅抖音/快手有）：\n\n```\n🎵 配乐：标题 - 作者名\n```\n\nFile v1.7.0:references/key-rules.md\n\n# 身份码使用规则\n\n## 身份码提示（按 `identity_info` 显示）\n\n| identity_info | 显示 |\n|----------|------|\n| `daily_remaining: 8` | `📊 今日免费剩余：8次（每身份码每天10次）` |\n| `remaining: 42` | `📊 剩余：42次` |\n| `remaining: null, expires_at: 有值` | 不显示剩余（时长/永久套餐） |\n| `daily_remaining: 0, remaining: null` | `📊 今日免费次数已用完。可以购买套餐继续使用（发送\"套餐\"查看）` |\n\n## 📌 身份码规则\n\n- 身份码是5位字母数字，**大小写不敏感**\n- **永久不变**，购买套餐后同一码叠加权益\n- 可以随时修改成更好记的码（见 modify_identity.php）\n- 同 IP + 同设备指纹只会返回同一个身份码，防刷\n\n## AI 行为规则\n\n1. **永远只有一个「当前使用的身份码」** — 首次调用自动生成后保存\n2. **开始对话** → 不传 code 调 `/api/parse.php?url=链接` → 自动生成身份码 → 从响应中提取并保存\n3. **用户买了套餐** → 查支付结果 → 权益自动绑定到当前身份码 → 告知用户\n4. **调用失败（403 / 429）** → 按 HTTP 码区分处理：\n\n| HTTP | 含义 | 操作 |\n|------|------|------|\n| 403 | 身份码无效/已停用 / 该身份码无可用权益 | 检查身份码是否正确传入，或查 `identity_info.php` 确认权益状态 |\n| 429 | 今日免费次数已用完 | 引导购买套餐 |\n| 429 | 按量次数已用完 | 引导购买套餐 |\n| 500 | 解析服务异常 | 重试一次，仍失败告知用户 |\n\n**错误消息说明：**\n\n| 错误消息 | 含义 |\n|---------|------|\n| `今日免费次数已用完（X次/天），请购买套餐获取更多次数` | 免费每日额度耗尽，用户需要购买套餐 |\n| `按量次数已用完，请购买套餐` | 按量付费额度耗尽（且无免费每日可用） |\n| `该身份码无可用权益` | 身份码存在但没有任何有效权益（异常状态） |\n| `身份码无效` | 身份码不存在/被禁用，或完全未匹配任何身份码/权益 |\n\n## 📊 权益优先级\n\n**包月/包天/永久(不限量) → 免费每日(10次/天) → 按量付费(计次)**\n\n\n\n| 用户有什么 | 实际消耗顺序 |\n|-----------|------------|\n| 只有免费每日 | → 直接用免费每日 |\n| 免费 + 按量 | → 先用免费10次/天 → 用完了扣按量 |\n| 包月 + 免费 + 按量 | → 先用包月不限量 → 包月到期 → 回退免费10次/天 → 免费用完 → 扣按量 |\n| 已过期套餐 | → 冻结次数自动转成按量，同上逻辑 |\n\n如果用户问\"到期了会怎样\"，答案永远是：先回退免费每日，免费用完了才扣按量，不会直接废掉。\n\n## 🔍 last_ip 说明\n\n`last_ip` 记录的是**谁调了 API**，不是最终用户的IP。通过 AI/API 网关调用时通常显示为本机地址（`127.0.0.1`）。真实用户直接调 API 时才会记录用户公网 IP。\n\n## 常见翻车\n\n| 错误 | 纠正 |\n|------|------|\n| 不保存身份码直接调下一次 | **必须从首次响应的 `identity_info` 中提取身份码并保存** |\n| 手动新建多个身份码 | **一个就够了**，所有权益叠加到同一个码 |\n| 传小写身份码以为不行 | ✅ 大小写都支持，系统自动转大写 |\n| 猜权益优先级搞反了 | ⚠️ **不限量 → 免费每日 → 按量计次**，忘了回来查 |\n\nFile v1.7.0:references/troubleshooting.md\n\n# 异常处理指南\n\n## API 解析失败\n\n| 现象 | 原因 | 处理 |\n|------|------|------|\n| HTTP 500 | 抖音 WAF 拦截 / 服务异常 | 重试1次，仍失败则告知用户「解析服务暂不可用，稍后再试」 |\n| HTTP 403 | 身份码无效/已停用 | 检查身份码是否正确传入 |\n| HTTP 429 | 每日/总次数用完 | 引导购买套餐续费 |\n| 超时（>30s无响应） | 抖音图文笔记解析慢 | 重试1次，设置 60s 超时 |\n\n## 素材下载失败\n\n| 现象 | 原因 | 处理 |\n|------|------|------|\n| 视频URL下载返回403 | CDN 防盗链/URL过期 | 直接用 `data.url` |\n| 动图段下载失败 | 抖音 CDN geo-block / 过期 | 跳过这段，只发成功下载的动图段 + 静图 + 配乐 |\n| 图片下载失败 | 代理临时故障 | 重试1次，跳过该张图片 |\n| 配乐下载失败 | CDN 问题 | 跳过配乐，只发视频段/图片 |\n\nFile v1.7.0:references/url-fallback.md\n\n# 连接失败兜底流程\n\n当 `parse.php` 请求因 **DNS 解析失败、连接被拒绝、超时**等连接错误失败时，说明解析服务器地址可能已变更。按以下流程自动获取新地址：\n\n```bash\nTEMP_DIR=$(mktemp -d)\n# 1️⃣ 从 SkillHub 下载最新技能包提取 Base URL\ncurl -sL \"https://api.skillhub.cn/api/v1/download?slug=duanshipinjiexi\" -o \"$TEMP_DIR/skill.zip\"\nunzip -o \"$TEMP_DIR/skill.zip\" SKILL.md -d \"$TEMP_DIR\" 2>/dev/null\nNEW_URL=$(grep 'Base URL:' \"$TEMP_DIR/SKILL.md\" | sed 's/.*`\\(.*\\)`.*/\\1/')\nrm -rf \"$TEMP_DIR\"\n\nif [ -n \"$NEW_URL\" ]; then\n  curl -s --max-time 30 \"$NEW_URL/api/parse.php?code={CODE}&url=视频链接\"\n  echo \"【提示】解析服务地址已更新，后续使用新地址 $NEW_URL\"\nelse\n  # 2️⃣ 兜底：从 ClawHub 查\n  JSON=$(curl -s \"https://clawhub.ai/api/v1/skills/duanshipinjiexi\")\n  NEW_URL=$(echo \"$JSON\" | python3 -c \"import sys,json; d=json.load(sys.stdin).get('description',''); import re; m=re.search(r'Base URL: `(.+)`', d); print(m.group(1) if m else '')\" 2>/dev/null)\n  if [ -n \"$NEW_URL\" ]; then\n    curl -s --max-time 30 \"$NEW_URL/api/parse.php?code={CODE}&url=视频链接\"\n    echo \"【提示】解析服务地址已更新，后续使用新地址 $NEW_URL\"\n  else\n    echo \"【错误】无法获取新解析地址，请手动更新技能\"\n  fi\nfi\n```\n\nFile v1.7.0:skill-card.md\n\n## Description: <br>\nRemoves watermarks from supported short-video links for Douyin, Kuaishou, Xiaohongshu, and Pipixia, returning video or image assets with available interaction data. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[kangleizhui](https://clawhub.ai/user/kangleizhui) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and agents use this skill to parse supported short-video share links, retrieve watermark-free media assets, and present available title, author, music, usage, and interaction data. It also guides identity-code management, quota status checks, and paid plan purchase flows for the parser service. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Supported video links and a persistent identity code are sent to an external parser service. <br>\nMitigation: Use the skill only when users accept that supported links and identity-code usage are processed by the publisher's parser service. <br>\nRisk: The fallback flow can discover and switch to a new parser service address after connection failures. <br>\nMitigation: Confirm the publisher and endpoint source are trusted before relying on an automatically discovered replacement service address. <br>\nRisk: The purchase flow may generate paid QR-code orders. <br>\nMitigation: Require the user to confirm any QR-code payment and verify payment status through the documented status endpoint before reporting entitlement changes. <br>\n\n\n## Reference(s): <br>\n- [API 文档](references/api-docs.md) <br>\n- [平台字段映射表](references/field-map.md) <br>\n- [身份码使用规则](references/key-rules.md) <br>\n- [异常处理指南](references/troubleshooting.md) <br>\n- [连接失败兜底流程](references/url-fallback.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Shell commands, API calls, Guidance] <br>\n**Output Format:** [Markdown guidance with inline HTTP and shell command examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May produce direct media URLs, downloaded media instructions, QR-code purchase handling guidance, and quota/status messages.] <br>\n\n## Skill Version(s): <br>\n1.7.0 (source: server release and frontmatter) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.6.9: 8 files, 10947 bytes\n\nFiles: _meta.json (134b), references/api-docs.md (3948b), references/field-map.md (1565b), references/key-rules.md (3378b), references/troubleshooting.md (897b), references/url-fallback.md (1344b), skill-card.md (2762b), SKILL.md (4899b)\n\nFile v1.6.9:SKILL.md\n\n---\nname: duanshipinjiexi\nslug: duanshipinjiexi\ndisplayName: 一键短视频去水印\ndescription: 短视频去水印，支持抖音/快手/小红书/皮皮虾4大平台。用户发链接时自动解析去水印并返回视频/图片+互动数据。\nversion: 1.6.9\nsummary: 抖音/快手/小红书/皮皮虾去水印解析。免费每日用完自动扣按量计次，包月到期回退免费。\nlicense: MIT\nwhen_to_use:\n  - 用户发来抖音/快手/小红书/皮皮虾链接 → 自动解析\n  - 用户给了身份码 → 直接用不创建\n  - 用户询问套餐、购买、改码、查状态\n  - 用户告知已支付 → 查状态并交付身份码\n---\n\n# 短视频去水印解析\n\n> Base URL: `https://spqsy.kcucu.com`\n\n## 🆔 身份码\n\n5位大写字母数字，**永久不变**，大小写不敏感。多设备多AI共用，不存在占用概念。\n\n按以下三个场景区分处理：\n\n### 场景一：用户给了码 → 直接用\n\n**不创建、不修改、不替换**。保存到记忆，之后都用这个码。\n\n```bash\nGET /api/parse.php?code={用户给的码}&url=链接\n```\n\n> 用户给的码覆盖AI自建码（旧码仍在服务端，AI不再用）。多个AI用同一个码各自调即可，不要试图\"占有\"。\n\n### 场景二：用户没给码 → AI自动创建\n\n首次调用不传code，自动生成新码并保存到记忆。\n\n```bash\n# 专用接口\nGET /api/create_identity.php\n\n# 一步到位（自动创建+解析）\nGET /api/parse.php?url=视频链接\n```\n\n> 从响应提取身份码保存，后续所有调用都用它。系统按IP+UA指纹防重，同一工具只会返回同一个码。\n\n### 场景三：用户主动要求改码\n\n**只有**用户明确说\"改码/换码/修改身份码\"时才走：\n\n```bash\nPOST /api/modify_identity.php\nContent-Type: application/x-www-form-urlencoded\n\nold_code=原码&new_code=新码\n```\n\n规则：5位数字+字母、不能重复、60秒防抖。\n\n### 查状态（零消耗）\n\n```bash\nGET /api/identity_info.php?code={身份码}\n```\n\n> 权益优先级详见 `references/key-rules.md`\n\n## ⚡ 解析\n\n收到链接直接调 API，不要用浏览器打开。\n\n```bash\ncurl -s --max-time 30 \"https://spqsy.kcucu.com/api/parse.php?code={CODE}&url=链接\"\n```\n\n> **连接失败兜底**：上述请求因 DNS/连接/超时错误失败时，跑 `references/url-fallback.md` 的脚本自动获取新地址。\n\n### 处理不同 type\n\n响应中的 `data.type` 决定素材和配乐处理方式：\n\n| type | 素材处理 | 配乐处理 | 原因 |\n|------|---------|---------|------|\n| **video** | 下载 `data.url`/`video_backup[0]` 发视频 | **不发** | 视频自带音轨 |\n| **image** | 下载 `data.images[]` 发图片 | 发 `data.music.url` | 图文是静默的，需要音乐 |\n| **live** | 下载 `live_photo[].video`(动图)+`data.images[]`(静图) | 发 `data.music.url` | 动图也无声音 |\n\n> **大视频兜底**：素材总量超 **10MB** 时，先告知用户「资源较大，下载发送大约需要3-5分钟，请稍等」。若下载耗时超过60秒或失败，直接发 `data.url` / `video_backup[0]` 的直链给用户，让用户自行下载。\n\n### 多平台链路\n\n4个平台都调同一个 `parse.php`，AI 不需要区分平台，用户发什么链接就传什么：\n\n```bash\nGET /api/parse.php?code={CODE}&url=用户发的链接\n```\n\n> 快手链接返回404/500时，先 `curl -sL -o /dev/null -w '%{url_effective}'` 解短链再传。\n\n### 发送给用户\n\n响应含 `platform` 字段标识来源。**各平台字段结构不同**，按 `references/field-map.md` 提取。\n\n核心原则：\n- 有的字段就发，**没有的不要编造**\n- 配乐单独发一条（仅抖音/快手有）\n- 每日剩余次数告知用户\n\n### 边界条件\n\n以下情况**不处理**，直接告知用户：\n- 解析返回 403 → 身份码无效或次数用完\n- 解析返回 429 → 每日限额用完，明天再试\n- 平台不在抖音/快手/小红书/皮皮虾范围内 → 暂不支持\n- 链接打不开或解析超时 → 建议用户重新分享链接\n- 用户发的是电脑端页面链接（如 `www.xiaohongshu.com/explore/`、`www.douyin.com/video/` 等） → 告知「暂不支持电脑端链接，请在手机APP对应平台上复制作品分享链接」\n\n### 错误码\n\n| 码 | 含义 | 处理 |\n|----|------|------|\n| 403 | 身份码无效/次数用完 | 引导用户购买套餐 |\n| 429 | 每日限额用完 | 告知明天恢复或购买 |\n| 500 | 解析异常 | 重试一次，再失败报错 |\n\n## 💰 购买\n\n```bash\nGET  /pay/plans.php              # 展示套餐\nPOST /pay/create.php              # 下单\n{\"identity_code\":\"{码}\",\"id\":\"count_10\"}\nGET  /pay/query.php?order_id={ID} # 查支付\n```\n\n返回 `qr_code` 生成二维码发用户扫码。支付成功后用 `identity_info.php` 确认到账。\n\n> **API 详情** `references/api-docs.md`\n> **异常处理** `references/troubleshooting.md`\n\nFile v1.6.9:_meta.json\n\n{\n  \"ownerId\": \"kn7bdg1vvrjevs20ka8hbvkshh87xc7g\",\n  \"slug\": \"duanshipinjiexi\",\n  \"version\": \"1.6.9\",\n  \"publishedAt\": 1783904033440\n}\n\nFile v1.6.9:references/api-docs.md\n\n# API 文档\n\n> Base URL: `https://spqsy.kcucu.com`\n> 所有身份码参数大小写不敏感，大小写完全等价\n\n## 🆔 身份码系统\n\n身份码是5位字母数字，永久不变。所有操作绑定同一个身份码：\n- 首次调用自动生成，每天免费10次\n- 购买套餐后同一身份码叠加权益\n- 可以随时修改身份码（换好记的码）\n\n## 1. 创建身份码（无需视频链接）\n\n```bash\nGET /api/create_identity.php\n```\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"identity_code\": \"{CODE}\",\n    \"daily_limit\": 10,\n    \"is_new\": false\n  }\n}\n```\n\n也可指定自定义码：\n\n```bash\nGET /pay/identity.php?code={CODE}\n```\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"identity_code\": \"{CODE}\",\n    \"is_new\": true\n  }\n}\n\n## 2. 解析视频\n\n```bash\nGET /api/parse.php?code={身份码}&url={链接}\n# 首次调用可不传 code，自动生成身份码\nGET /api/parse.php?url={链接}\n```\n\n### 响应 JSON\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"type\": \"\",\n    \"title\": \"\",\n    \"author\": {},\n    \"url\": \"\",\n    \"video_backup\": [],\n    \"images\": [],\n    \"live_photo\": [],\n    \"music\": {},\n    \"stats\": {}\n  },\n  \"identity_info\": {\n    \"is_new\": false,\n    \"daily_remaining\": 0,\n    \"remaining\": null,\n    \"plans\": []\n  }\n}\n```\n\n### 关键字段\n\n| 字段 | 说明 |\n|------|------|\n| data.type | video=视频, image=图片, live=动图 |\n| data.url | 视频直链（video 类型） |\n| data.images[] | 所有静图 URL，可直接 `curl` 下载 |\n| data.live_photo[] | 动图素材：每段有 video(MP4) + image(静图)。**下载 video 需带 User-Agent 和 Referer** |\n| data.music.url | 配乐链接（可直接下载） |\n| data.stats | 互动数据：liked/comment/share/collect |\n| identity_info.daily_remaining | 今日剩余次数 |\n| identity_info.remaining | 计次剩余次数 |\n\n### 错误码\n\n| HTTP | msg | 说明 |\n|------|-----|------|\n| 400 | 缺少参数: url | 未传视频链接 |\n| 403 | 身份码无效 | 身份码不存在或已停用 |\n| 429 | 今日调用次数已达上限 | 免费每日10次用完，或所有权益耗尽 |\n| 500 | 解析服务异常 | 服务器异常，重试一次 |\n\n## 3. 修改身份码\n\n```bash\nPOST /api/modify_identity.php\nContent-Type: application/x-www-form-urlencoded\n\nold_code=原身份码&new_code=新身份码\n```\n\n规则：5位数字+字母，大小写不敏感，60秒防抖。权益全部保留。\n\n| HTTP | 含义 |\n|------|------|\n| 200 | 修改成功 |\n| 400 | 参数缺失 / 格式错误 |\n| 404 | 旧身份码不存在 |\n| 403 | 旧身份码已停用 |\n| 409 | 新码已被占用 |\n| 429 | 操作太频繁 |\n\n## 4. 查身份码状态\n\n```bash\nGET /api/identity_info.php?code={身份码}\n```\n\n零消耗，返回完整权益信息：\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"is_active\": true,\n    \"plans\": [],\n    \"remaining\": null,\n    \"daily_remaining\": 0,\n    \"daily_used_today\": 0,\n    \"expires_at\": null\n  }\n}\n```\n\n## 5. 下单\n\n```bash\nPOST /pay/create.php\nContent-Type: application/json\n\n{\"identity_code\": \"{身份码}\", \"id\": \"count_10\", \"name\": \"体验套餐\", \"type\": \"count\", \"count\": 10, \"price\": 0.50}\n```\n\n```json\n{\"success\": true, \"order_id\": \"SV20260707XXXX\", \"qr_code\": \"https://qr.alipay.com/xxx\", \"amount\": 0.50}\n```\n\n⚠️ 收到 `qr_code` 后必须 `qrencode -o /tmp/qr.png \"URL\"` 生成二维码图片发 MEDIA。禁止直接发链接。\n\n### 套餐列表\n\n```bash\nGET /pay/plans.php\n```\n\n动态获取，以实时返回为准。\n\n## 6. 查支付状态\n\n```bash\nGET /pay/query.php?order_id=SV20260707XXXX\n```\n\n| status | 含义 |\n|--------|------|\n| `paid` | ✅ 已支付，权益已绑定到身份码 |\n| `pending` | ⏳ 等待支付 |\n| `closed` | ❌ 已关闭 |\n\n支付成功后用 `identity_info.php` 确认权益到账。\n\n## 7. 购买时生成身份码\n\n用户购买后可能要一个新的身份码来接收套餐：\n\n```bash\nGET /pay/identity.php?code=用户自定义码\n# 或自动生成\nGET /pay/identity.php\n```\n\nFile v1.6.9:references/field-map.md\n\n# 平台字段映射表\n\n解析响应含 `platform` 字段标识来源。各平台字段结构不同，按表提取，没有的不要编造。\n\n| 发送 | 抖音 | 快手 | 小红书 | 皮皮虾 |\n|------|:---:|:---:|:-----:|:-----:|\n| 标题 | `data.title` ✅ | `data.title` ✅ | `data.title` ✅ | `data.title` ✅ |\n| 作者 | `data.author.name` ✅ | `data.author`(字符串) ✅ | `data.author.name` ✅ | `data.author`(字符串) ✅ |\n| 点赞 | `data.stats.liked_count` ✅ | `data.like` ✅ | `data.stats.liked_count` ✅ | ❌ |\n| 评论 | `data.stats.comment_count` ✅ | ❌ | `data.stats.comment_count` ✅ | ❌ |\n| 分享 | `data.stats.share_count` ✅ | ❌ | `data.stats.share_count` ✅ | ❌ |\n| 收藏 | `data.stats.collect_count` ✅ | ❌ | `data.stats.collected_count` ✅ | ❌ |\n| 配乐 | `data.music.*` ✅ | `data.music.*` ✅ | ❌ | ❌ |\n| 类型 | `data.type` ✅ | `data.type` ✅ | `data.type` ✅ | ❌(默认video) |\n\n## 注意事项\n\n1. **皮皮虾**的 `platform` 返回 `\"api\"`（不是 `\"pipix\"`）\n2. **快手**的 `data.author` 是字符串（抖音/小红书是 `{name: xxx}` 对象）\n3. **小红书**的收藏字段是 `data.stats.collected_count`（不是 `collect_count`）\n4. **皮皮虾**无互动数据、无配乐、无 `data.type` → 只发标题和作者\n\n## 发送格式\n\n```\n标题：xxx\n作者：xxx\n📹 {平台名}\n👍 1.2万  💬 345  ⭐ 567  🔗 89\n📊 今日剩余：8次\n```\n\n没有的字段不显示。配乐单独发一条（仅抖音/快手有）：\n\n```\n🎵 配乐：标题 - 作者名\n```\n\nFile v1.6.9:references/key-rules.md\n\n# 身份码使用规则\n\n## 身份码提示（按 `identity_info` 显示）\n\n| identity_info | 显示 |\n|----------|------|\n| `daily_remaining: 8` | `📊 今日免费剩余：8次（每身份码每天10次）` |\n| `remaining: 42` | `📊 剩余：42次` |\n| `remaining: null, expires_at: 有值` | 不显示剩余（时长/永久套餐） |\n| `daily_remaining: 0, remaining: null` | `📊 今日免费次数已用完。可以购买套餐继续使用（发送\"套餐\"查看）` |\n\n## 📌 身份码规则\n\n- 身份码是5位字母数字，**大小写不敏感**\n- **永久不变**，购买套餐后同一码叠加权益\n- 可以随时修改成更好记的码（见 modify_identity.php）\n- 同 IP + 同设备指纹只会返回同一个身份码，防刷\n\n## AI 行为规则\n\n1. **永远只有一个「当前使用的身份码」** — 首次调用自动生成后保存\n2. **开始对话** → 不传 code 调 `/api/parse.php?url=链接` → 自动生成身份码 → 从响应中提取并保存\n3. **用户买了套餐** → 查支付结果 → 权益自动绑定到当前身份码 → 告知用户\n4. **调用失败（403 / 429）** → 按 HTTP 码区分处理：\n\n| HTTP | 含义 | 操作 |\n|------|------|------|\n| 403 | 身份码无效/已停用 / 该身份码无可用权益 | 检查身份码是否正确传入，或查 `identity_info.php` 确认权益状态 |\n| 429 | 今日免费次数已用完 | 引导购买套餐 |\n| 429 | 按量次数已用完 | 引导购买套餐 |\n| 500 | 解析服务异常 | 重试一次，仍失败告知用户 |\n\n**错误消息说明：**\n\n| 错误消息 | 含义 |\n|---------|------|\n| `今日免费次数已用完（X次/天），请购买套餐获取更多次数` | 免费每日额度耗尽，用户需要购买套餐 |\n| `按量次数已用完，请购买套餐` | 按量付费额度耗尽（且无免费每日可用） |\n| `该身份码无可用权益` | 身份码存在但没有任何有效权益（异常状态） |\n| `身份码无效` | 身份码不存在/被禁用，或完全未匹配任何身份码/权益 |\n\n## 📊 权益优先级\n\n**包月/包天/永久(不限量) → 免费每日(10次/天) → 按量付费(计次)**\n\n\n\n| 用户有什么 | 实际消耗顺序 |\n|-----------|------------|\n| 只有免费每日 | → 直接用免费每日 |\n| 免费 + 按量 | → 先用免费10次/天 → 用完了扣按量 |\n| 包月 + 免费 + 按量 | → 先用包月不限量 → 包月到期 → 回退免费10次/天 → 免费用完 → 扣按量 |\n| 已过期套餐 | → 冻结次数自动转成按量，同上逻辑 |\n\n如果用户问\"到期了会怎样\"，答案永远是：先回退免费每日，免费用完了才扣按量，不会直接废掉。\n\n## 🔍 last_ip 说明\n\n`last_ip` 记录的是**谁调了 API**，不是最终用户的IP。通过 AI/API 网关调用时通常显示为本机地址（`127.0.0.1`）。真实用户直接调 API 时才会记录用户公网 IP。\n\n## 常见翻车\n\n| 错误 | 纠正 |\n|------|------|\n| 不保存身份码直接调下一次 | **必须从首次响应的 `identity_info` 中提取身份码并保存** |\n| 手动新建多个身份码 | **一个就够了**，所有权益叠加到同一个码 |\n| 传小写身份码以为不行 | ✅ 大小写都支持，系统自动转大写 |\n| 猜权益优先级搞反了 | ⚠️ **不限量 → 免费每日 → 按量计次**，忘了回来查 |\n\nFile v1.6.9:references/troubleshooting.md\n\n# 异常处理指南\n\n## API 解析失败\n\n| 现象 | 原因 | 处理 |\n|------|------|------|\n| HTTP 500 | 抖音 WAF 拦截 / 服务异常 | 重试1次，仍失败则告知用户「解析服务暂不可用，稍后再试」 |\n| HTTP 403 | 身份码无效/已停用 | 检查身份码是否正确传入 |\n| HTTP 429 | 每日/总次数用完 | 引导购买套餐续费 |\n| 超时（>30s无响应） | 抖音图文笔记解析慢 | 重试1次，设置 60s 超时 |\n\n## 素材下载失败\n\n| 现象 | 原因 | 处理 |\n|------|------|------|\n| 视频URL下载返回403 | CDN 防盗链/URL过期 | 直接用 `data.url` |\n| 动图段下载失败 | 抖音 CDN geo-block / 过期 | 跳过这段，只发成功下载的动图段 + 静图 + 配乐 |\n| 图片下载失败 | 代理临时故障 | 重试1次，跳过该张图片 |\n| 配乐下载失败 | CDN 问题 | 跳过配乐，只发视频段/图片 |\n\nFile v1.6.9:references/url-fallback.md\n\n# 连接失败兜底流程\n\n当 `parse.php` 请求因 **DNS 解析失败、连接被拒绝、超时**等连接错误失败时，说明解析服务器地址可能已变更。按以下流程自动获取新地址：\n\n```bash\nTEMP_DIR=$(mktemp -d)\n# 1️⃣ 从 SkillHub 下载最新技能包提取 Base URL\ncurl -sL \"https://api.skillhub.cn/api/v1/download?slug=duanshipinjiexi\" -o \"$TEMP_DIR/skill.zip\"\nunzip -o \"$TEMP_DIR/skill.zip\" SKILL.md -d \"$TEMP_DIR\" 2>/dev/null\nNEW_URL=$(grep 'Base URL:' \"$TEMP_DIR/SKILL.md\" | sed 's/.*`\\(.*\\)`.*/\\1/')\nrm -rf \"$TEMP_DIR\"\n\nif [ -n \"$NEW_URL\" ]; then\n  curl -s --max-time 30 \"$NEW_URL/api/parse.php?code={CODE}&url=视频链接\"\n  echo \"【提示】解析服务地址已更新，后续使用新地址 $NEW_URL\"\nelse\n  # 2️⃣ 兜底：从 ClawHub 查\n  JSON=$(curl -s \"https://clawhub.ai/api/v1/skills/duanshipinjiexi\")\n  NEW_URL=$(echo \"$JSON\" | python3 -c \"import sys,json; d=json.load(sys.stdin).get('description',''); import re; m=re.search(r'Base URL: `(.+)`', d); print(m.group(1) if m else '')\" 2>/dev/null)\n  if [ -n \"$NEW_URL\" ]; then\n    curl -s --max-time 30 \"$NEW_URL/api/parse.php?code={CODE}&url=视频链接\"\n    echo \"【提示】解析服务地址已更新，后续使用新地址 $NEW_URL\"\n  else\n    echo \"【错误】无法获取新解析地址，请手动更新技能\"\n  fi\nfi\n```\n\nFile v1.6.9:skill-card.md\n\n## Description: <br>\nParses supported Douyin, Kuaishou, Xiaohongshu, and Pipix short-video links through a third-party service and returns watermark-free media, images, music links, and interaction metadata when available. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[kangleizhui](https://clawhub.ai/user/kangleizhui) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and content creators use this skill to ask an agent to parse supported mobile short-video share links, retrieve downloadable media, and see available title, author, engagement, quota, and payment status information. The agent also manages reusable identity codes for free daily quota, paid usage, and package status checks. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Submitted video links and persistent identity codes are sent to a third-party parsing and payment service. <br>\nMitigation: Install only when users accept that service interaction; avoid submitting private or sensitive links, and disclose that identity codes are reusable quota identifiers. <br>\nRisk: The automatic connection fallback can switch future parsing requests to a remotely discovered service URL without clear validation or user confirmation. <br>\nMitigation: Review or disable the fallback before deployment, pin the expected service URL, and require operator confirmation before using a newly discovered endpoint. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/kangleizhui/skills/duanshipinjiexi) <br>\n- [API 文档](artifact/references/api-docs.md) <br>\n- [平台字段映射表](artifact/references/field-map.md) <br>\n- [身份码使用规则](artifact/references/key-rules.md) <br>\n- [异常处理指南](artifact/references/troubleshooting.md) <br>\n- [连接失败兜底流程](artifact/references/url-fallback.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Shell commands, API calls, Guidance] <br>\n**Output Format:** [Markdown responses with media links, API response summaries, and inline shell commands when needed] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May return downloadable media URLs, QR-code payment instructions, identity-code status, quota information, and platform-specific interaction metadata.] <br>\n\n## Skill Version(s): <br>\n1.6.9 (source: server release metadata and SKILL.md frontmatter) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.6.8: 8 files, 10722 bytes\n\nFiles: _meta.json (134b), references/api-docs.md (3948b), references/field-map.md (1565b), references/key-rules.md (3378b), references/troubleshooting.md (897b), references/url-fallback.md (1344b), skill-card.md (2625b), SKILL.md (4540b)\n\nFile v1.6.8:SKILL.md\n\n---\nname: duanshipinjiexi\nslug: duanshipinjiexi\ndisplayName: 一键短视频去水印\ndescription: 短视频去水印，支持抖音/快手/小红书/皮皮虾4大平台。用户发链接时自动解析去水印并返回视频/图片+互动数据。\nversion: 1.6.8\nsummary: 抖音/快手/小红书/皮皮虾去水印解析。免费每日用完自动扣按量计次，包月到期回退免费。\nlicense: MIT\nwhen_to_use:\n  - 用户发来抖音/快手/小红书/皮皮虾链接 → 自动解析\n  - 用户给了身份码 → 直接用不创建\n  - 用户询问套餐、购买、改码、查状态\n  - 用户告知已支付 → 查状态并交付身份码\n---\n\n# 短视频去水印解析\n\n> Base URL: `https://spqsy.kcucu.com`\n\n## 🆔 身份码\n\n5位大写字母数字，**永久不变**，大小写不敏感。多设备多AI共用，不存在占用概念。\n\n按以下三个场景区分处理：\n\n### 场景一：用户给了码 → 直接用\n\n**不创建、不修改、不替换**。保存到记忆，之后都用这个码。\n\n```bash\nGET /api/parse.php?code={用户给的码}&url=链接\n```\n\n> 用户给的码覆盖AI自建码（旧码仍在服务端，AI不再用）。多个AI用同一个码各自调即可，不要试图\"占有\"。\n\n### 场景二：用户没给码 → AI自动创建\n\n首次调用不传code，自动生成新码并保存到记忆。\n\n```bash\n# 专用接口\nGET /api/create_identity.php\n\n# 一步到位（自动创建+解析）\nGET /api/parse.php?url=视频链接\n```\n\n> 从响应提取身份码保存，后续所有调用都用它。系统按IP+UA指纹防重，同一工具只会返回同一个码。\n\n### 场景三：用户主动要求改码\n\n**只有**用户明确说\"改码/换码/修改身份码\"时才走：\n\n```bash\nPOST /api/modify_identity.php\nContent-Type: application/x-www-form-urlencoded\n\nold_code=原码&new_code=新码\n```\n\n规则：5位数字+字母、不能重复、60秒防抖。\n\n### 查状态（零消耗）\n\n```bash\nGET /api/identity_info.php?code={身份码}\n```\n\n> 权益优先级详见 `references/key-rules.md`\n\n## ⚡ 解析\n\n收到链接直接调 API，不要用浏览器打开。\n\n```bash\ncurl -s --max-time 30 \"https://spqsy.kcucu.com/api/parse.php?code={CODE}&url=链接\"\n```\n\n> **连接失败兜底**：上述请求因 DNS/连接/超时错误失败时，跑 `references/url-fallback.md` 的脚本自动获取新地址。\n\n### 处理不同 type\n\n响应中的 `data.type` 决定素材和配乐处理方式：\n\n| type | 素材处理 | 配乐处理 | 原因 |\n|------|---------|---------|------|\n| **video** | 下载 `data.url`/`video_backup[0]` 发视频 | **不发** | 视频自带音轨 |\n| **image** | 下载 `data.images[]` 发图片 | 发 `data.music.url` | 图文是静默的，需要音乐 |\n| **live** | 下载 `live_photo[].video`(动图)+`data.images[]`(静图) | 发 `data.music.url` | 动图也无声音 |\n\n> 素材总量超 **10MB** 时先告知用户「资源较大，下载发送大约需要3-5分钟，请稍等」。\n\n### 多平台链路\n\n4个平台都调同一个 `parse.php`，AI 不需要区分平台，用户发什么链接就传什么：\n\n```bash\nGET /api/parse.php?code={CODE}&url=用户发的链接\n```\n\n> 快手链接返回404/500时，先 `curl -sL -o /dev/null -w '%{url_effective}'` 解短链再传。\n\n### 发送给用户\n\n响应含 `platform` 字段标识来源。**各平台字段结构不同**，按 `references/field-map.md` 提取。\n\n核心原则：\n- 有的字段就发，**没有的不要编造**\n- 配乐单独发一条（仅抖音/快手有）\n- 每日剩余次数告知用户\n\n### 边界条件\n\n以下情况**不处理**，直接告知用户：\n- 解析返回 403 → 身份码无效或次数用完\n- 解析返回 429 → 每日限额用完，明天再试\n- 平台不在抖音/快手/小红书/皮皮虾范围内 → 暂不支持\n- 链接打不开或解析超时 → 建议用户重新分享链接\n\n### 错误码\n\n| 码 | 含义 | 处理 |\n|----|------|------|\n| 403 | 身份码无效/次数用完 | 引导用户购买套餐 |\n| 429 | 每日限额用完 | 告知明天恢复或购买 |\n| 500 | 解析异常 | 重试一次，再失败报错 |\n\n## 💰 购买\n\n```bash\nGET  /pay/plans.php              # 展示套餐\nPOST /pay/create.php              # 下单\n{\"identity_code\":\"{码}\",\"id\":\"count_10\"}\nGET  /pay/query.php?order_id={ID} # 查支付\n```\n\n返回 `qr_code` 生成二维码发用户扫码。支付成功后用 `identity_info.php` 确认到账。\n\n> **API 详情** `references/api-docs.md`\n> **异常处理** `references/troubleshooting.md`\n\nFile v1.6.8:_meta.json\n\n{\n  \"ownerId\": \"kn7bdg1vvrjevs20ka8hbvkshh87xc7g\",\n  \"slug\": \"duanshipinjiexi\",\n  \"version\": \"1.6.8\",\n  \"publishedAt\": 1783903103520\n}\n\nFile v1.6.8:references/api-docs.md\n\n# API 文档\n\n> Base URL: `https://spqsy.kcucu.com`\n> 所有身份码参数大小写不敏感，大小写完全等价\n\n## 🆔 身份码系统\n\n身份码是5位字母数字，永久不变。所有操作绑定同一个身份码：\n- 首次调用自动生成，每天免费10次\n- 购买套餐后同一身份码叠加权益\n- 可以随时修改身份码（换好记的码）\n\n## 1. 创建身份码（无需视频链接）\n\n```bash\nGET /api/create_identity.php\n```\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"identity_code\": \"{CODE}\",\n    \"daily_limit\": 10,\n    \"is_new\": false\n  }\n}\n```\n\n也可指定自定义码：\n\n```bash\nGET /pay/identity.php?code={CODE}\n```\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"identity_code\": \"{CODE}\",\n    \"is_new\": true\n  }\n}\n\n## 2. 解析视频\n\n```bash\nGET /api/parse.php?code={身份码}&url={链接}\n# 首次调用可不传 code，自动生成身份码\nGET /api/parse.php?url={链接}\n```\n\n### 响应 JSON\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"type\": \"\",\n    \"title\": \"\",\n    \"author\": {},\n    \"url\": \"\",\n    \"video_backup\": [],\n    \"images\": [],\n    \"live_photo\": [],\n    \"music\": {},\n    \"stats\": {}\n  },\n  \"identity_info\": {\n    \"is_new\": false,\n    \"daily_remaining\": 0,\n    \"remaining\": null,\n    \"plans\": []\n  }\n}\n```\n\n### 关键字段\n\n| 字段 | 说明 |\n|------|------|\n| data.type | video=视频, image=图片, live=动图 |\n| data.url | 视频直链（video 类型） |\n| data.images[] | 所有静图 URL，可直接 `curl` 下载 |\n| data.live_photo[] | 动图素材：每段有 video(MP4) + image(静图)。**下载 video 需带 User-Agent 和 Referer** |\n| data.music.url | 配乐链接（可直接下载） |\n| data.stats | 互动数据：liked/comment/share/collect |\n| identity_info.daily_remaining | 今日剩余次数 |\n| identity_info.remaining | 计次剩余次数 |\n\n### 错误码\n\n| HTTP | msg | 说明 |\n|------|-----|------|\n| 400 | 缺少参数: url | 未传视频链接 |\n| 403 | 身份码无效 | 身份码不存在或已停用 |\n| 429 | 今日调用次数已达上限 | 免费每日10次用完，或所有权益耗尽 |\n| 500 | 解析服务异常 | 服务器异常，重试一次 |\n\n## 3. 修改身份码\n\n```bash\nPOST /api/modify_identity.php\nContent-Type: application/x-www-form-urlencoded\n\nold_code=原身份码&new_code=新身份码\n```\n\n规则：5位数字+字母，大小写不敏感，60秒防抖。权益全部保留。\n\n| HTTP | 含义 |\n|------|------|\n| 200 | 修改成功 |\n| 400 | 参数缺失 / 格式错误 |\n| 404 | 旧身份码不存在 |\n| 403 | 旧身份码已停用 |\n| 409 | 新码已被占用 |\n| 429 | 操作太频繁 |\n\n## 4. 查身份码状态\n\n```bash\nGET /api/identity_info.php?code={身份码}\n```\n\n零消耗，返回完整权益信息：\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"is_active\": true,\n    \"plans\": [],\n    \"remaining\": null,\n    \"daily_remaining\": 0,\n    \"daily_used_today\": 0,\n    \"expires_at\": null\n  }\n}\n```\n\n## 5. 下单\n\n```bash\nPOST /pay/create.php\nContent-Type: application/json\n\n{\"identity_code\": \"{身份码}\", \"id\": \"count_10\", \"name\": \"体验套餐\", \"type\": \"count\", \"count\": 10, \"price\": 0.50}\n```\n\n```json\n{\"success\": true, \"order_id\": \"SV20260707XXXX\", \"qr_code\": \"https://qr.alipay.com/xxx\", \"amount\": 0.50}\n```\n\n⚠️ 收到 `qr_code` 后必须 `qrencode -o /tmp/qr.png \"URL\"` 生成二维码图片发 MEDIA。禁止直接发链接。\n\n### 套餐列表\n\n```bash\nGET /pay/plans.php\n```\n\n动态获取，以实时返回为准。\n\n## 6. 查支付状态\n\n```bash\nGET /pay/query.php?order_id=SV20260707XXXX\n```\n\n| status | 含义 |\n|--------|------|\n| `paid` | ✅ 已支付，权益已绑定到身份码 |\n| `pending` | ⏳ 等待支付 |\n| `closed` | ❌ 已关闭 |\n\n支付成功后用 `identity_info.php` 确认权益到账。\n\n## 7. 购买时生成身份码\n\n用户购买后可能要一个新的身份码来接收套餐：\n\n```bash\nGET /pay/identity.php?code=用户自定义码\n# 或自动生成\nGET /pay/identity.php\n```\n\nFile v1.6.8:references/field-map.md\n\n# 平台字段映射表\n\n解析响应含 `platform` 字段标识来源。各平台字段结构不同，按表提取，没有的不要编造。\n\n| 发送 | 抖音 | 快手 | 小红书 | 皮皮虾 |\n|------|:---:|:---:|:-----:|:-----:|\n| 标题 | `data.title` ✅ | `data.title` ✅ | `data.title` ✅ | `data.title` ✅ |\n| 作者 | `data.author.name` ✅ | `data.author`(字符串) ✅ | `data.author.name` ✅ | `data.author`(字符串) ✅ |\n| 点赞 | `data.stats.liked_count` ✅ | `data.like` ✅ | `data.stats.liked_count` ✅ | ❌ |\n| 评论 | `data.stats.comment_count` ✅ | ❌ | `data.stats.comment_count` ✅ | ❌ |\n| 分享 | `data.stats.share_count` ✅ | ❌ | `data.stats.share_count` ✅ | ❌ |\n| 收藏 | `data.stats.collect_count` ✅ | ❌ | `data.stats.collected_count` ✅ | ❌ |\n| 配乐 | `data.music.*` ✅ | `data.music.*` ✅ | ❌ | ❌ |\n| 类型 | `data.type` ✅ | `data.type` ✅ | `data.type` ✅ | ❌(默认video) |\n\n## 注意事项\n\n1. **皮皮虾**的 `platform` 返回 `\"api\"`（不是 `\"pipix\"`）\n2. **快手**的 `data.author` 是字符串（抖音/小红书是 `{name: xxx}` 对象）\n3. **小红书**的收藏字段是 `data.stats.collected_count`（不是 `collect_count`）\n4. **皮皮虾**无互动数据、无配乐、无 `data.type` → 只发标题和作者\n\n## 发送格式\n\n```\n标题：xxx\n作者：xxx\n📹 {平台名}\n👍 1.2万  💬 345  ⭐ 567  🔗 89\n📊 今日剩余：8次\n```\n\n没有的字段不显示。配乐单独发一条（仅抖音/快手有）：\n\n```\n🎵 配乐：标题 - 作者名\n```\n\nFile v1.6.8:references/key-rules.md\n\n# 身份码使用规则\n\n## 身份码提示（按 `identity_info` 显示）\n\n| identity_info | 显示 |\n|----------|------|\n| `daily_remaining: 8` | `📊 今日免费剩余：8次（每身份码每天10次）` |\n| `remaining: 42` | `📊 剩余：42次` |\n| `remaining: null, expires_at: 有值` | 不显示剩余（时长/永久套餐） |\n| `daily_remaining: 0, remaining: null` | `📊 今日免费次数已用完。可以购买套餐继续使用（发送\"套餐\"查看）` |\n\n## 📌 身份码规则\n\n- 身份码是5位字母数字，**大小写不敏感**\n- **永久不变**，购买套餐后同一码叠加权益\n- 可以随时修改成更好记的码（见 modify_identity.php）\n- 同 IP + 同设备指纹只会返回同一个身份码，防刷\n\n## AI 行为规则\n\n1. **永远只有一个「当前使用的身份码」** — 首次调用自动生成后保存\n2. **开始对话** → 不传 code 调 `/api/parse.php?url=链接` → 自动生成身份码 → 从响应中提取并保存\n3. **用户买了套餐** → 查支付结果 → 权益自动绑定到当前身份码 → 告知用户\n4. **调用失败（403 / 429）** → 按 HTTP 码区分处理：\n\n| HTTP | 含义 | 操作 |\n|------|------|------|\n| 403 | 身份码无效/已停用 / 该身份码无可用权益 | 检查身份码是否正确传入，或查 `identity_info.php` 确认权益状态 |\n| 429 | 今日免费次数已用完 | 引导购买套餐 |\n| 429 | 按量次数已用完 | 引导购买套餐 |\n| 500 | 解析服务异常 | 重试一次，仍失败告知用户 |\n\n**错误消息说明：**\n\n| 错误消息 | 含义 |\n|---------|------|\n| `今日免费次数已用完（X次/天），请购买套餐获取更多次数` | 免费每日额度耗尽，用户需要购买套餐 |\n| `按量次数已用完，请购买套餐` | 按量付费额度耗尽（且无免费每日可用） |\n| `该身份码无可用权益` | 身份码存在但没有任何有效权益（异常状态） |\n| `身份码无效` | 身份码不存在/被禁用，或完全未匹配任何身份码/权益 |\n\n## 📊 权益优先级\n\n**包月/包天/永久(不限量) → 免费每日(10次/天) → 按量付费(计次)**\n\n\n\n| 用户有什么 | 实际消耗顺序 |\n|-----------|------------|\n| 只有免费每日 | → 直接用免费每日 |\n| 免费 + 按量 | → 先用免费10次/天 → 用完了扣按量 |\n| 包月 + 免费 + 按量 | → 先用包月不限量 → 包月到期 → 回退免费10次/天 → 免费用完 → 扣按量 |\n| 已过期套餐 | → 冻结次数自动转成按量，同上逻辑 |\n\n如果用户问\"到期了会怎样\"，答案永远是：先回退免费每日，免费用完了才扣按量，不会直接废掉。\n\n## 🔍 last_ip 说明\n\n`last_ip` 记录的是**谁调了 API**，不是最终用户的IP。通过 AI/API 网关调用时通常显示为本机地址（`127.0.0.1`）。真实用户直接调 API 时才会记录用户公网 IP。\n\n## 常见翻车\n\n| 错误 | 纠正 |\n|------|------|\n| 不保存身份码直接调下一次 | **必须从首次响应的 `identity_info` 中提取身份码并保存** |\n| 手动新建多个身份码 | **一个就够了**，所有权益叠加到同一个码 |\n| 传小写身份码以为不行 | ✅ 大小写都支持，系统自动转大写 |\n| 猜权益优先级搞反了 | ⚠️ **不限量 → 免费每日 → 按量计次**，忘了回来查 |\n\nFile v1.6.8:references/troubleshooting.md\n\n# 异常处理指南\n\n## API 解析失败\n\n| 现象 | 原因 | 处理 |\n|------|------|------|\n| HTTP 500 | 抖音 WAF 拦截 / 服务异常 | 重试1次，仍失败则告知用户「解析服务暂不可用，稍后再试」 |\n| HTTP 403 | 身份码无效/已停用 | 检查身份码是否正确传入 |\n| HTTP 429 | 每日/总次数用完 | 引导购买套餐续费 |\n| 超时（>30s无响应） | 抖音图文笔记解析慢 | 重试1次，设置 60s 超时 |\n\n## 素材下载失败\n\n| 现象 | 原因 | 处理 |\n|------|------|------|\n| 视频URL下载返回403 | CDN 防盗链/URL过期 | 直接用 `data.url` |\n| 动图段下载失败 | 抖音 CDN geo-block / 过期 | 跳过这段，只发成功下载的动图段 + 静图 + 配乐 |\n| 图片下载失败 | 代理临时故障 | 重试1次，跳过该张图片 |\n| 配乐下载失败 | CDN 问题 | 跳过配乐，只发视频段/图片 |\n\nFile v1.6.8:references/url-fallback.md\n\n# 连接失败兜底流程\n\n当 `parse.php` 请求因 **DNS 解析失败、连接被拒绝、超时**等连接错误失败时，说明解析服务器地址可能已变更。按以下流程自动获取新地址：\n\n```bash\nTEMP_DIR=$(mktemp -d)\n# 1️⃣ 从 SkillHub 下载最新技能包提取 Base URL\ncurl -sL \"https://api.skillhub.cn/api/v1/download?slug=duanshipinjiexi\" -o \"$TEMP_DIR/skill.zip\"\nunzip -o \"$TEMP_DIR/skill.zip\" SKILL.md -d \"$TEMP_DIR\" 2>/dev/null\nNEW_URL=$(grep 'Base URL:' \"$TEMP_DIR/SKILL.md\" | sed 's/.*`\\(.*\\)`.*/\\1/')\nrm -rf \"$TEMP_DIR\"\n\nif [ -n \"$NEW_URL\" ]; then\n  curl -s --max-time 30 \"$NEW_URL/api/parse.php?code={CODE}&url=视频链接\"\n  echo \"【提示】解析服务地址已更新，后续使用新地址 $NEW_URL\"\nelse\n  # 2️⃣ 兜底：从 ClawHub 查\n  JSON=$(curl -s \"https://clawhub.ai/api/v1/skills/duanshipinjiexi\")\n  NEW_URL=$(echo \"$JSON\" | python3 -c \"import sys,json; d=json.load(sys.stdin).get('description',''); import re; m=re.search(r'Base URL: `(.+)`', d); print(m.group(1) if m else '')\" 2>/dev/null)\n  if [ -n \"$NEW_URL\" ]; then\n    curl -s --max-time 30 \"$NEW_URL/api/parse.php?code={CODE}&url=视频链接\"\n    echo \"【提示】解析服务地址已更新，后续使用新地址 $NEW_URL\"\n  else\n    echo \"【错误】无法获取新解析地址，请手动更新技能\"\n  fi\nfi\n```\n\nFile v1.6.8:skill-card.md\n\n## Description: <br>\n短视频去水印，支持抖音/快手/小红书/皮皮虾4大平台。用户发链接时自动解析去水印并返回视频/图片+互动数据。 <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[kangleizhui](https://clawhub.ai/user/kangleizhui) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users ask an agent to parse supported short-video links and return watermark-free video, image, music, and interaction metadata. The skill also guides identity-code status, quota, and purchase flows for the third-party parsing service. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Submitted video links and a persistent identity code are sent to a third-party parsing service. <br>\nMitigation: Avoid private or sensitive share links, and tell users before sending their link or identity code to the service. <br>\nRisk: The skill can switch to a newly discovered parsing service address after DNS, connection, or timeout failures. <br>\nMitigation: Require user confirmation before using a replacement service address and stop if the new address is unexpected. <br>\nRisk: The purchase flow can create an order and payment QR code. <br>\nMitigation: Confirm the selected plan, price, and user intent before creating an order or displaying a payment QR code. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/kangleizhui/skills/duanshipinjiexi) <br>\n- [API documentation](artifact/references/api-docs.md) <br>\n- [Platform field map](artifact/references/field-map.md) <br>\n- [Identity-code usage rules](artifact/references/key-rules.md) <br>\n- [Troubleshooting guide](artifact/references/troubleshooting.md) <br>\n- [URL fallback flow](artifact/references/url-fallback.md) <br>\n- [Parsing service base URL](https://spqsy.kcucu.com) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, media files, shell commands, guidance] <br>\n**Output Format:** [Text responses with downloaded video, image, and music media when parsing succeeds] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Uses a persistent five-character identity code and a third-party video parsing API.] <br>\n\n## Skill Version(s): <br>\n1.6.8 (source: frontmatter and server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.6.7: 8 files, 10733 bytes\n\nFiles: _meta.json (134b), references/api-docs.md (3947b), references/field-map.md (1565b), references/key-rules.md (3352b), references/troubleshooting.md (897b), references/url-fallback.md (1344b), skill-card.md (2625b), SKILL.md (4540b)\n\nFile v1.6.7:SKILL.md\n\n---\nname: duanshipinjiexi\nslug: duanshipinjiexi\ndisplayName: 一键短视频去水印\ndescription: 短视频去水印，支持抖音/快手/小红书/皮皮虾4大平台。用户发链接时自动解析去水印并返回视频/图片+互动数据。\nversion: 1.6.7\nsummary: 抖音/快手/小红书/皮皮虾去水印解析。免费每日用完自动扣按量计次，包月到期回退免费。\nlicense: MIT\nwhen_to_use:\n  - 用户发来抖音/快手/小红书/皮皮虾链接 → 自动解析\n  - 用户给了身份码 → 直接用不创建\n  - 用户询问套餐、购买、改码、查状态\n  - 用户告知已支付 → 查状态并交付身份码\n---\n\n# 短视频去水印解析\n\n> Base URL: `https://spqsy.kcucu.com`\n\n## 🆔 身份码\n\n5位大写字母数字，**永久不变**，大小写不敏感。多设备多AI共用，不存在占用概念。\n\n按以下三个场景区分处理：\n\n### 场景一：用户给了码 → 直接用\n\n**不创建、不修改、不替换**。保存到记忆，之后都用这个码。\n\n```bash\nGET /api/parse.php?code={用户给的码}&url=链接\n```\n\n> 用户给的码覆盖AI自建码（旧码仍在服务端，AI不再用）。多个AI用同一个码各自调即可，不要试图\"占有\"。\n\n### 场景二：用户没给码 → AI自动创建\n\n首次调用不传code，自动生成新码并保存到记忆。\n\n```bash\n# 专用接口\nGET /api/create_identity.php\n\n# 一步到位（自动创建+解析）\nGET /api/parse.php?url=视频链接\n```\n\n> 从响应提取身份码保存，后续所有调用都用它。系统按IP+UA指纹防重，同一工具只会返回同一个码。\n\n### 场景三：用户主动要求改码\n\n**只有**用户明确说\"改码/换码/修改身份码\"时才走：\n\n```bash\nPOST /api/modify_identity.php\nContent-Type: application/x-www-form-urlencoded\n\nold_code=原码&new_code=新码\n```\n\n规则：5位数字+字母、不能重复、60秒防抖。\n\n### 查状态（零消耗）\n\n```bash\nGET /api/identity_info.php?code={身份码}\n```\n\n> 权益优先级详见 `references/key-rules.md`\n\n## ⚡ 解析\n\n收到链接直接调 API，不要用浏览器打开。\n\n```bash\ncurl -s --max-time 30 \"https://spqsy.kcucu.com/api/parse.php?code={CODE}&url=链接\"\n```\n\n> **连接失败兜底**：上述请求因 DNS/连接/超时错误失败时，跑 `references/url-fallback.md` 的脚本自动获取新地址。\n\n### 处理不同 type\n\n响应中的 `data.type` 决定素材和配乐处理方式：\n\n| type | 素材处理 | 配乐处理 | 原因 |\n|------|---------|---------|------|\n| **video** | 下载 `data.url`/`video_backup[0]` 发视频 | **不发** | 视频自带音轨 |\n| **image** | 下载 `data.images[]` 发图片 | 发 `data.music.url` | 图文是静默的，需要音乐 |\n| **live** | 下载 `live_photo[].video`(动图)+`data.images[]`(静图) | 发 `data.music.url` | 动图也无声音 |\n\n> 素材总量超 **10MB** 时先告知用户「资源较大，下载发送大约需要3-5分钟，请稍等」。\n\n### 多平台链路\n\n4个平台都调同一个 `parse.php`，AI 不需要区分平台，用户发什么链接就传什么：\n\n```bash\nGET /api/parse.php?code={CODE}&url=用户发的链接\n```\n\n> 快手链接返回404/500时，先 `curl -sL -o /dev/null -w '%{url_effective}'` 解短链再传。\n\n### 发送给用户\n\n响应含 `platform` 字段标识来源。**各平台字段结构不同**，按 `references/field-map.md` 提取。\n\n核心原则：\n- 有的字段就发，**没有的不要编造**\n- 配乐单独发一条（仅抖音/快手有）\n- 每日剩余次数告知用户\n\n### 边界条件\n\n以下情况**不处理**，直接告知用户：\n- 解析返回 403 → 身份码无效或次数用完\n- 解析返回 429 → 每日限额用完，明天再试\n- 平台不在抖音/快手/小红书/皮皮虾范围内 → 暂不支持\n- 链接打不开或解析超时 → 建议用户重新分享链接\n\n### 错误码\n\n| 码 | 含义 | 处理 |\n|----|------|------|\n| 403 | 身份码无效/次数用完 | 引导用户购买套餐 |\n| 429 | 每日限额用完 | 告知明天恢复或购买 |\n| 500 | 解析异常 | 重试一次，再失败报错 |\n\n## 💰 购买\n\n```bash\nGET  /pay/plans.php              # 展示套餐\nPOST /pay/create.php              # 下单\n{\"identity_code\":\"{码}\",\"id\":\"count_10\"}\nGET  /pay/query.php?order_id={ID} # 查支付\n```\n\n返回 `qr_code` 生成二维码发用户扫码。支付成功后用 `identity_info.php` 确认到账。\n\n> **API 详情** `references/api-docs.md`\n> **异常处理** `references/troubleshooting.md`\n\nFile v1.6.7:_meta.json\n\n{\n  \"ownerId\": \"kn7bdg1vvrjevs20ka8hbvkshh87xc7g\",\n  \"slug\": \"duanshipinjiexi\",\n  \"version\": \"1.6.7\",\n  \"publishedAt\": 1783901673782\n}\n\nFile v1.6.7:references/api-docs.md\n\n# API 文档\n\n> Base URL: `https://spqsy.kcucu.com`\n> 所有身份码参数大小写不敏感，大小写完全等价\n\n## 🆔 身份码系统\n\n身份码是5位字母数字，永久不变。所有操作绑定同一个身份码：\n- 首次调用自动生成，每天免费10次\n- 购买套餐后同一身份码叠加权益\n- 可以随时修改身份码（换好记的码）\n\n## 1. 创建身份码（无需视频链接）\n\n```bash\nGET /api/create_identity.php\n```\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"identity_code\": \"X7K3M\",\n    \"daily_limit\": 10,\n    \"is_new\": false\n  }\n}\n```\n\n也可指定自定义码：\n\n```bash\nGET /pay/identity.php?code=MYCODE\n```\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"identity_code\": \"MYCODE\",\n    \"is_new\": true\n  }\n}\n\n## 2. 解析视频\n\n```bash\nGET /api/parse.php?code={身份码}&url={链接}\n# 首次调用可不传 code，自动生成身份码\nGET /api/parse.php?url={链接}\n```\n\n### 响应 JSON\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"type\": \"\",\n    \"title\": \"\",\n    \"author\": {},\n    \"url\": \"\",\n    \"video_backup\": [],\n    \"images\": [],\n    \"live_photo\": [],\n    \"music\": {},\n    \"stats\": {}\n  },\n  \"identity_info\": {\n    \"is_new\": false,\n    \"daily_remaining\": 0,\n    \"remaining\": null,\n    \"plans\": []\n  }\n}\n```\n\n### 关键字段\n\n| 字段 | 说明 |\n|------|------|\n| data.type | video=视频, image=图片, live=动图 |\n| data.url | 视频直链（video 类型） |\n| data.images[] | 所有静图 URL，可直接 `curl` 下载 |\n| data.live_photo[] | 动图素材：每段有 video(MP4) + image(静图)。**下载 video 需带 User-Agent 和 Referer** |\n| data.music.url | 配乐链接（可直接下载） |\n| data.stats | 互动数据：liked/comment/share/collect |\n| identity_info.daily_remaining | 今日剩余次数 |\n| identity_info.remaining | 计次剩余次数 |\n\n### 错误码\n\n| HTTP | msg | 说明 |\n|------|-----|------|\n| 400 | 缺少参数: url | 未传视频链接 |\n| 403 | 身份码无效 | 身份码不存在或已停用 |\n| 429 | 今日调用次数已达上限 | 免费每日10次用完，或所有权益耗尽 |\n| 500 | 解析服务异常 | 服务器异常，重试一次 |\n\n## 3. 修改身份码\n\n```bash\nPOST /api/modify_identity.php\nContent-Type: application/x-www-form-urlencoded\n\nold_code=原身份码&new_code=新身份码\n```\n\n规则：5位数字+字母，大小写不敏感，60秒防抖。权益全部保留。\n\n| HTTP | 含义 |\n|------|------|\n| 200 | 修改成功 |\n| 400 | 参数缺失 / 格式错误 |\n| 404 | 旧身份码不存在 |\n| 403 | 旧身份码已停用 |\n| 409 | 新码已被占用 |\n| 429 | 操作太频繁 |\n\n## 4. 查身份码状态\n\n```bash\nGET /api/identity_info.php?code={身份码}\n```\n\n零消耗，返回完整权益信息：\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"is_active\": true,\n    \"plans\": [],\n    \"remaining\": null,\n    \"daily_remaining\": 0,\n    \"daily_used_today\": 0,\n    \"expires_at\": null\n  }\n}\n```\n\n## 5. 下单\n\n```bash\nPOST /pay/create.php\nContent-Type: application/json\n\n{\"identity_code\": \"{身份码}\", \"id\": \"count_10\", \"name\": \"体验套餐\", \"type\": \"count\", \"count\": 10, \"price\": 0.50}\n```\n\n```json\n{\"success\": true, \"order_id\": \"SV20260707XXXX\", \"qr_code\": \"https://qr.alipay.com/xxx\", \"amount\": 0.50}\n```\n\n⚠️ 收到 `qr_code` 后必须 `qrencode -o /tmp/qr.png \"URL\"` 生成二维码图片发 MEDIA。禁止直接发链接。\n\n### 套餐列表\n\n```bash\nGET /pay/plans.php\n```\n\n动态获取，以实时返回为准。\n\n## 6. 查支付状态\n\n```bash\nGET /pay/query.php?order_id=SV20260707XXXX\n```\n\n| status | 含义 |\n|--------|------|\n| `paid` | ✅ 已支付，权益已绑定到身份码 |\n| `pending` | ⏳ 等待支付 |\n| `closed` | ❌ 已关闭 |\n\n支付成功后用 `identity_info.php` 确认权益到账。\n\n## 7. 购买时生成身份码\n\n用户购买后可能要一个新的身份码来接收套餐：\n\n```bash\nGET /pay/identity.php?code=用户自定义码\n# 或自动生成\nGET /pay/identity.php\n```\n\nFile v1.6.7:references/field-map.md\n\n# 平台字段映射表\n\n解析响应含 `platform` 字段标识来源。各平台字段结构不同，按表提取，没有的不要编造。\n\n| 发送 | 抖音 | 快手 | 小红书 | 皮皮虾 |\n|------|:---:|:---:|:-----:|:-----:|\n| 标题 | `data.title` ✅ | `data.title` ✅ | `data.title` ✅ | `data.title` ✅ |\n| 作者 | `data.author.name` ✅ | `data.author`(字符串) ✅ | `data.author.name` ✅ | `data.author`(字符串) ✅ |\n| 点赞 | `data.stats.liked_count` ✅ | `data.like` ✅ | `data.stats.liked_count` ✅ | ❌ |\n| 评论 | `data.stats.comment_count` ✅ | ❌ | `data.stats.comment_count` ✅ | ❌ |\n| 分享 | `data.stats.share_count` ✅ | ❌ | `data.stats.share_count` ✅ | ❌ |\n| 收藏 | `data.stats.collect_count` ✅ | ❌ | `data.stats.collected_count` ✅ | ❌ |\n| 配乐 | `data.music.*` ✅ | `data.music.*` ✅ | ❌ | ❌ |\n| 类型 | `data.type` ✅ | `data.type` ✅ | `data.type` ✅ | ❌(默认video) |\n\n## 注意事项\n\n1. **皮皮虾**的 `platform` 返回 `\"api\"`（不是 `\"pipix\"`）\n2. **快手**的 `data.author` 是字符串（抖音/小红书是 `{name: xxx}` 对象）\n3. **小红书**的收藏字段是 `data.stats.collected_count`（不是 `collect_count`）\n4. **皮皮虾**无互动数据、无配乐、无 `data.type` → 只发标题和作者\n\n## 发送格式\n\n```\n📹 {平台名}\n标题：xxx\n作者：xxx\n👍 1.2万  💬 345  🔗 89  ⭐ 567\n📊 今日剩余：8次\n```\n\n没有的字段不显示。配乐单独发一条（仅抖音/快手有）：\n\n```\n🎵 配乐：标题 - 作者名\n```\n\nFile v1.6.7:references/key-rules.md\n\n# 身份码使用规则\n\n## 身份码提示（按 `identity_info` 显示）\n\n| identity_info | 显示 |\n|----------|------|\n| `daily_remaining: 8` | `📊 今日免费剩余：8次（每身份码每天10次）` |\n| `remaining: 42` | `📊 剩余：42次` |\n| `remaining: null, expires_at: 有值` | 不显示剩余（时长/永久套餐） |\n| `daily_remaining: 0, remaining: null` | `📊 今日免费次数已用完。可以购买套餐继续使用（发送\"套餐\"查看）` |\n\n## 📌 身份码规则\n\n- 身份码是5位字母数字，**大小写不敏感**\n- **永久不变**，购买套餐后同一码叠加权益\n- 可以随时修改成更好记的码（见 modify_identity.php）\n- 同 IP + 同设备指纹只会返回同一个身份码，防刷\n\n## AI 行为规则\n\n1. **永远只有一个「当前使用的身份码」** — 首次调用自动生成后保存\n2. **开始对话** → 不传 code 调 `/api/parse.php?url=链接` → 自动生成身份码 → 从响应中提取并保存\n3. **用户买了套餐** → 查支付结果 → 权益自动绑定到当前身份码 → 告知用户\n4. **调用失败（403 / 429）** → 按 HTTP 码区分处理：\n\n| HTTP | 含义 | 操作 |\n|------|------|------|\n| 403 | 身份码无效/已停用 / 该身份码无可用权益 | 检查身份码是否正确传入，或查 `identity_info.php` 确认权益状态 |\n| 429 | 今日免费次数已用完 | 引导购买套餐 |\n| 429 | 按量次数已用完 | 引导购买套餐 |\n| 500 | 解析服务异常 | 重试一次，仍失败告知用户 |\n\n**错误消息说明：**\n\n| 错误消息 | 含义 |\n|---------|------|\n| `今日免费次数已用完（X次/天），请购买套餐获取更多次数` | 免费每日额度耗尽，用户需要购买套餐 |\n| `按量次数已用完，请购买套餐` | 按量付费额度耗尽（且无免费每日可用） |\n| `该身份码无可用权益` | 身份码存在但没有任何有效权益（异常状态） |\n| `身份码无效` | 身份码不存在/被禁用，或完全未匹配任何身份码/权益 |\n\n## 📊 权益优先级\n\n**包月/包天/永久(不限量) → 免费每日(10次/天) → 按量付费(计次)**\n\n\n\n| 用户有什么 | 实际消耗顺序 |\n|-----------|------------|\n| 只有免费每日 | → 直接用免费每日 |\n| 免费 + 按量 | → 先用免费10次/天 → 用完了扣按量 |\n| 包月 + 免费 + 按量 | → 先用包月不限量 → 包月到期 → 回退免费10次/天 → 免费用完 → 扣按量 |\n| 已过期套餐 | → 冻结次数自动转成按量，同上逻辑 |\n\n如果用户问\"到期了会怎样\"，答案永远是：先回退免费每日，免费用完了才扣按量，不会直接废掉。\n\n## 🔍 last_ip 说明\n\n`last_ip` 记录的是**谁调了 API**，不是最终用户的IP。通过 API 调用时通常显示为 `127.0.0.1`。真实用户直接调 API 时才会记录用户公网 IP。\n\n## 常见翻车\n\n| 错误 | 纠正 |\n|------|------|\n| 不保存身份码直接调下一次 | **必须从首次响应的 `identity_info` 中提取身份码并保存** |\n| 手动新建多个身份码 | **一个就够了**，所有权益叠加到同一个码 |\n| 传小写身份码以为不行 | ✅ 大小写都支持，系统自动转大写 |\n| 猜权益优先级搞反了 | ⚠️ **不限量 → 免费每日 → 按量计次**，忘了回来查 |\n\nFile v1.6.7:references/troubleshooting.md\n\n# 异常处理指南\n\n## API 解析失败\n\n| 现象 | 原因 | 处理 |\n|------|------|------|\n| HTTP 500 | 抖音 WAF 拦截 / 服务异常 | 重试1次，仍失败则告知用户「解析服务暂不可用，稍后再试」 |\n| HTTP 403 | 身份码无效/已停用 | 检查身份码是否正确传入 |\n| HTTP 429 | 每日/总次数用完 | 引导购买套餐续费 |\n| 超时（>30s无响应） | 抖音图文笔记解析慢 | 重试1次，设置 60s 超时 |\n\n## 素材下载失败\n\n| 现象 | 原因 | 处理 |\n|------|------|------|\n| 视频URL下载返回403 | CDN 防盗链/URL过期 | 直接用 `data.url` |\n| 动图段下载失败 | 抖音 CDN geo-block / 过期 | 跳过这段，只发成功下载的动图段 + 静图 + 配乐 |\n| 图片下载失败 | 代理临时故障 | 重试1次，跳过该张图片 |\n| 配乐下载失败 | CDN 问题 | 跳过配乐，只发视频段/图片 |\n\nFile v1.6.7:references/url-fallback.md\n\n# 连接失败兜底流程\n\n当 `parse.php` 请求因 **DNS 解析失败、连接被拒绝、超时**等连接错误失败时，说明解析服务器地址可能已变更。按以下流程自动获取新地址：\n\n```bash\nTEMP_DIR=$(mktemp -d)\n# 1️⃣ 从 SkillHub 下载最新技能包提取 Base URL\ncurl -sL \"https://api.skillhub.cn/api/v1/download?slug=duanshipinjiexi\" -o \"$TEMP_DIR/skill.zip\"\nunzip -o \"$TEMP_DIR/skill.zip\" SKILL.md -d \"$TEMP_DIR\" 2>/dev/null\nNEW_URL=$(grep 'Base URL:' \"$TEMP_DIR/SKILL.md\" | sed 's/.*`\\(.*\\)`.*/\\1/')\nrm -rf \"$TEMP_DIR\"\n\nif [ -n \"$NEW_URL\" ]; then\n  curl -s --max-time 30 \"$NEW_URL/api/parse.php?code={CODE}&url=视频链接\"\n  echo \"【提示】解析服务地址已更新，后续使用新地址 $NEW_URL\"\nelse\n  # 2️⃣ 兜底：从 ClawHub 查\n  JSON=$(curl -s \"https://clawhub.ai/api/v1/skills/duanshipinjiexi\")\n  NEW_URL=$(echo \"$JSON\" | python3 -c \"import sys,json; d=json.load(sys.stdin).get('description',''); import re; m=re.search(r'Base URL: `(.+)`', d); print(m.group(1) if m else '')\" 2>/dev/null)\n  if [ -n \"$NEW_URL\" ]; then\n    curl -s --max-time 30 \"$NEW_URL/api/parse.php?code={CODE}&url=视频链接\"\n    echo \"【提示】解析服务地址已更新，后续使用新地址 $NEW_URL\"\n  else\n    echo \"【错误】无法获取新解析地址，请手动更新技能\"\n  fi\nfi\n```\n\nFile v1.6.7:skill-card.md\n\n## Description: <br>\nAutomatically parses Douyin, Kuaishou, Xiaohongshu, and Pipixia short-video links to return watermark-free video or image media plus available engagement data. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[kangleizhui](https://clawhub.ai/user/kangleizhui) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and agents use this skill to parse supported Chinese short-video links, manage a persistent identity code, and return downloadable media, music when applicable, and remaining quota information. It also guides package purchase and payment-status checks when quota is exhausted. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Video links and identity codes are forwarded to a third-party parsing service. <br>\nMitigation: Use the skill only for links users intend to send to that service, and avoid private or sensitive video URLs. <br>\nRisk: The fallback flow can discover and switch to a different backend service URL. <br>\nMitigation: Manually verify any newly discovered backend URL before allowing the agent to use it. <br>\nRisk: The purchase flow can present payment QR codes for quota packages. <br>\nMitigation: Confirm purchase amount, payee details, order status, and entitlement delivery before presenting or scanning a payment QR code. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/kangleizhui/skills/duanshipinjiexi) <br>\n- [API 文档](artifact/references/api-docs.md) <br>\n- [身份码使用规则](artifact/references/key-rules.md) <br>\n- [平台字段映射表](artifact/references/field-map.md) <br>\n- [异常处理指南](artifact/references/troubleshooting.md) <br>\n- [连接失败兜底流程](artifact/references/url-fallback.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, API calls, guidance] <br>\n**Output Format:** [Markdown responses with media links, JSON API responses, and inline shell commands] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May download or relay video, image, live-photo, and music media; uses a persistent identity code and quota status returned by the API.] <br>\n\n## Skill Version(s): <br>\n1.6.7 (source: server release and SKILL.md frontmatter) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>","readmeExcerpt":"Skill: Duanshipinjiexi Owner: kangleizhui Summary: 一站式视频解析去水印工具，全面覆盖抖音、快手、小红书、皮皮虾4大主流内容平台，仅针对平台自带水印解析下载剪辑，一键智能去除视频平台标识水印，全程无损解析素材画质， 去水印后画面清晰无模糊、无痕迹、无压缩，完整保快速提取无水印原版视频，适配日常收藏优质内容与二次创作素材整理。 Tags: douyin:1.1.2, latest:1.7.6, tools:1.1.2, video:1.1.2 Version history: v1.7.6 | 2026-07-13T10:14:50.726Z | user 优化: 大视频(>10MB)发视频时同时附直链; ≤10MB仅反馈未收到时给直链 v1.7.5 | 2026-07-13T01:45:43.067Z | user v1.7.5: live类型素材处理明确「下载并发送」动图+静图","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"GET /api/parse.php?code={用户给的码}&url=链接"},{"language":"bash","snippet":"# 专用接口\nGET /api/create_identity.php\n\n# 一步到位（自动创建+解析）\nGET /api/parse.php?url=视频链接"},{"language":"bash","snippet":"POST /api/modify_identity.php\nContent-Type: application/x-www-form-urlencoded\n\nold_code=原码&new_code=新码"},{"language":"bash","snippet":"GET /api/identity_info.php?code={身份码}"},{"language":"bash","snippet":"curl -s --max-time 30 \"https://spqsy.kcucu.com/api/parse.php?code={CODE}&url=链接\""},{"language":"bash","snippet":"curl -s --max-time 30 \"https://spqsy.kcucu.com/api/parse.php?code={CODE}&url=链接\""}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: duanshipinjiexi\nslug: duanshipinjiexi\ndisplayName: 一键短视频去水印\ndescription: 一站式视频解析去水印工具，全面覆盖抖音、快手、小红书、皮皮虾4大主流内容平台，仅针对平台自带水印解析下载剪辑，一键智能去除视频平台标识水印，全程无损解析素材画质， 去水印后画面清晰无模糊、无痕迹、无压缩，完整保快速提取无水印原版视频，适配日常收藏优质内容与二次创作素材整理。\nversion: 1.7.6\nsummary: 抖音/快手/小红书/皮皮虾去水印解析。免费每日用完自动扣按量计次，包月到期回退免费。\nlicense: MIT\nwhen_to_use:\n  - 用户发来抖音/快手/小红书/皮皮虾链接 → 自动解析\n  - 用户给了身份码 → 直接用不创建\n  - 用户询问套餐、购买、改码、查状态\n  - 用户告知已支付 → 查状态并交付身份码\n---\n\n# 短视频去水印解析\n\n> Base URL: `https://spqsy.kcucu.com`\n\n## 🆔 身份码\n\n5位大写字母数字，**永久不变**，大小写不敏感。多设备多AI共用，不存在占用概念。\n\n按以下三个场景区分处理：\n\n### 场景一：用户给了码 → 直接用\n\n**不创建、不修改、不替换**。保存到记忆，之后都用这个码。\n\n```bash\nGET /api/parse.php?code={用户给的码}&url=链接\n```\n\n> 用户给的码覆盖AI自建码（旧码仍在服务端，AI不再用）。多个AI用同一个码各自调即可，不要试图\"占有\"。\n\n### 场景二：用户没给码 → AI自动创建\n\n首次调用不传code，自动生成新码并保存到记忆。\n\n```bash\n# 专用接口\nGET /api/create_identity.php\n\n# 一步到位（自动创建+解析）\nGET /api/parse.php?url=视频链接\n```\n\n> 从响应提取身份码保存，后续所有调用都用它。系统按IP+UA指纹防重，同一工具只会返回同一个码。\n\n### 场景三：用户主动要求改码\n\n**只有**用户明确说\"改码/换码/修改身份码\"时才走：\n\n```bash\nPOST /api/modify_identity.php\nContent-Type: application/x-www-form-urlencoded\n\nold_code=原码&new_code=新码\n```\n\n规则：5位数字+字母、不能重复、60秒防抖。\n\n### 查状态（零消耗）\n\n```bash\nGET /api/identity_info.php?code={身份码}\n```\n\n> 权益优先级详见 `references/key-rules.md`\n\n## ⚡ 解析\n\n收到链接直接调 API，不要用浏览器打开。\n\n```bash\ncurl -s --max-time 30 \"https://spqsy.kcucu.com/api/parse.php?code={CODE}&url=链接\"\n```\n\n> **连接失败兜底**：上述请求因 DNS/连接/超时错误失败时，跑 `references/url-fallback.md` 的脚本自动获取新地址。\n\n### 处理不同 type\n\n响应中的 `data.type` 决定素材和配乐处理方式：\n\n| type | 素材处理 | 配乐处理 | 原因 |\n|------|---------|---------|------|\n| **video** | 下载 `data.url`/`video_backup[0]` 发视频 | **不发** | 视频自带音轨 |\n| **image** | 下载 `data.images[]` 发图片 | 发 `data.music.url` | 图文是静默的，需要音乐 |\n| **live** | 下载并发送 `live_photo[].video`(动图)+`data.images[]`(静图) | 发 `data.music.url` | 动图也无声音 |\n\n> **大视频兜底**：素材总量超 **10MB** 时，**发视频的同时直接把 `data.url` / `video_backup[0]` 的直链也发给用户**，这样即使收不到视频，用户也能点链接下载。同时告知「资源较大，已同时附上直链备用」。\n>\n> 素材总量≤**10MB** 时正常发视频，仅当用户反馈「没收到视频」或发送失败时，再发直链兜底。\n\n### 多平台链路\n\n4个平台都调同一个 `parse.php`，AI 不需要区分平台，用户发什么链接就传什么：\n\n```bash\nGET /api/parse.php?code={CODE}&url=用户发的链接\n```\n\n> 快手链接返回404/500时，先 `curl -sL -o /dev/null -w '%{url_effective}'` 解短链再传。\n\n### 发送给用户\n\n**发送顺序：先把文字信息（标题、作者、互动数据、剩余次数）发一条，再逐条单独发素材（视频/图片/动图），配乐也单独发一条。**\n\n视频、图片、动图全部单独发送，不要跟文字一起发。\n\n响应含 `platform` 字段标识来源。**各平台字段结构不同**，按 `references/field-map.md` 提取。\n\n核心原则：\n- 有的字段就发，**没有的不要编造**\n- 配乐单独发一条（仅抖音/快手有）\n- 每日剩余次数告知用户\n\n### 边界条件\n\n以下情况**不处理**，直接告知用户：\n- 解析返回 403 → 身份码无效或次数用完\n- 解析返回 429 → 每日限额用完，明天再试\n- 平台不在抖音/快手/小红书/皮皮虾范围内 → 暂不支持\n- 链接打不开或解析超时 → 建议用户重新分享链接\n\n### 错误码\n\n| 码 | 含义 | 处理 |\n|----|------|------|\n| 403 | 身份码无效/次数用完 | 引导用户购买套餐 |\n| 429 | 每日限额用完 | 告知明天恢复或购买 |\n| 500 | 解析异常 | 重试一次，再失败报错 |\n\n> **电脑端链接提示**：解析失败（任何原因：超时、HTTP 错误、返回码不在列表中）时，检查用户发的链接是否是电脑端页面链接（如 `www.xiaohongshu.com/explore/`、`www.douyin.com/video/`），如果是则额外告知「暂不支持电脑端链接，请在手机APP对应平台上复制作品分享链接」。\n\n## 💰 购买\n\n```bash\nGET  /pay/plans.php              # 展示套餐\nPOST /pay/create.php              # 下单\n{\"identity_code\":\"{码}\",\"id\":\"count_10\"}\nGET  /pay/query.php?order_id={ID} # 查支付\n```\n\n返回 `qr_code` 生成二维码发用户扫码。支付成功后用 `identity_info."},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7bdg1vvrjevs20ka8hbvkshh87xc7g\",\n  \"slug\": \"duanshipinjiexi\",\n  \"version\": \"1.7.6\",\n  \"publishedAt\": 1783937690726\n}"},{"path":"references/api-docs.md","content":"# API 文档\n\n> Base URL: `https://spqsy.kcucu.com`\n> 所有身份码参数大小写不敏感，大小写完全等价\n\n## 🆔 身份码系统\n\n身份码是5位字母数字，永久不变。所有操作绑定同一个身份码：\n- 首次调用自动生成，每天免费10次\n- 购买套餐后同一身份码叠加权益\n- 可以随时修改身份码（换好记的码）\n\n## 1. 创建身份码（无需视频链接）\n\n```bash\nGET /api/create_identity.php\n```\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"identity_code\": \"{CODE}\",\n    \"daily_limit\": 10,\n    \"is_new\": false\n  }\n}\n```\n\n也可指定自定义码：\n\n```bash\nGET /pay/identity.php?code={CODE}\n```\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"identity_code\": \"{CODE}\",\n    \"is_new\": true\n  }\n}\n\n## 2. 解析视频\n\n```bash\nGET /api/parse.php?code={身份码}&url={链接}\n# 首次调用可不传 code，自动生成身份码\nGET /api/parse.php?url={链接}\n```\n\n### 响应 JSON\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"type\": \"\",\n    \"title\": \"\",\n    \"author\": {},\n    \"url\": \"\",\n    \"video_backup\": [],\n    \"images\": [],\n    \"live_photo\": [],\n    \"music\": {},\n    \"stats\": {}\n  },\n  \"identity_info\": {\n    \"is_new\": false,\n    \"daily_remaining\": 0,\n    \"remaining\": null,\n    \"plans\": []\n  }\n}\n```\n\n### 关键字段\n\n| 字段 | 说明 |\n|------|------|\n| data.type | video=视频, image=图片, live=动图 |\n| data.url | 视频直链（video 类型） |\n| data.images[] | 所有静图 URL，可直接 `curl` 下载 |\n| data.live_photo[] | 动图素材：每段有 video(MP4) + image(静图)。**下载 video 需带 User-Agent 和 Referer** |\n| data.music.url | 配乐链接（可直接下载） |\n| data.stats | 互动数据：liked/comment/share/collect |\n| identity_info.daily_remaining | 今日剩余次数 |\n| identity_info.remaining | 计次剩余次数 |\n\n### 错误码\n\n| HTTP | msg | 说明 |\n|------|-----|------|\n| 400 | 缺少参数: url | 未传视频链接 |\n| 403 | 身份码无效 | 身份码不存在或已停用 |\n| 429 | 今日调用次数已达上限 | 免费每日10次用完，或所有权益耗尽 |\n| 500 | 解析服务异常 | 服务器异常，重试一次 |\n\n## 3. 修改身份码\n\n```bash\nPOST /api/modify_identity.php\nContent-Type: application/x-www-form-urlencoded\n\nold_code=原身份码&new_code=新身份码\n```\n\n规则：5位数字+字母，大小写不敏感，60秒防抖。权益全部保留。\n\n| HTTP | 含义 |\n|------|------|\n| 200 | 修改成功 |\n| 400 | 参数缺失 / 格式错误 |\n| 404 | 旧身份码不存在 |\n| 403 | 旧身份码已停用 |\n| 409 | 新码已被占用 |\n| 429 | 操作太频繁 |\n\n## 4. 查身份码状态\n\n```bash\nGET /api/identity_info.php?code={身份码}\n```\n\n零消耗，返回完整权益信息：\n\n```json\n{\n  \"code\": 200,\n  \"data\": {\n    \"is_active\": true,\n    \"plans\": [],\n    \"remaining\": null,\n    \"daily_remaining\": 0,\n    \"daily_used_today\": 0,\n    \"expires_at\": null\n  }\n}\n```\n\n## 5. 下单\n\n```bash\nPOST /pay/create.php\nContent-Type: application/json\n\n{\"identity_code\": \"{身份码}\", \"id\": \"count_10\", \"name\": \"体验套餐\", \"type\": \"count\", \"count\": 10, \"price\": 0.50}\n```\n\n```json\n{\"success\": true, \"order_id\": \"SV20260707XXXX\", \"qr_code\": \"https://qr.alipay.com/xxx\", \"amount\": 0.50}\n```\n\n⚠️ 收到 `qr_code` 后必须 `qrencode -o /tmp/qr.png \"URL\"` 生成二维码图片发 MEDIA。禁止直接发链接。\n\n### 套餐列表\n\n```bash\nGET /pay/plans.php\n```\n\n动态获取，以实时返回为准。\n\n## 6. 查支付状态\n\n```bash\nGET /pay/query.php?order_id=SV20260707XXXX\n```\n\n| status | 含义 |\n|--------|------|\n| `paid` | ✅ 已支付，权益已绑定到身份码 |\n| `pending` | ⏳ 等待支付 |\n| `closed` | ❌ 已关闭 |\n\n支付成功后用 `identity_info.php` 确认权益到账。\n\n## 7. 购买时生成身份码\n\n用户购买后可能要一个新的身份码来接收套餐：\n\n```bash\nGET /pay/identity.php?code=用户自定义码\n# 或自动生成\nGET /pay/identity.php\n```"},{"path":"references/field-map.md","content":"# 平台字段映射表\n\n解析响应含 `platform` 字段标识来源。各平台字段结构不同，按表提取，没有的不要编造。\n\n| 发送 | 抖音 | 快手 | 小红书 | 皮皮虾 |\n|------|:---:|:---:|:-----:|:-----:|\n| 标题 | `data.title` ✅ | `data.title` ✅ | `data.title` ✅ | `data.title` ✅ |\n| 作者 | `data.author.name` ✅ | `data.author`(字符串) ✅ | `data.author.name` ✅ | `data.author`(字符串) ✅ |\n| 点赞 | `data.stats.liked_count` ✅ | `data.like` ✅ | `data.stats.liked_count` ✅ | ❌ |\n| 评论 | `data.stats.comment_count` ✅ | ❌ | `data.stats.comment_count` ✅ | ❌ |\n| 分享 | `data.stats.share_count` ✅ | ❌ | `data.stats.share_count` ✅ | ❌ |\n| 收藏 | `data.stats.collect_count` ✅ | ❌ | `data.stats.collected_count` ✅ | ❌ |\n| 配乐 | `data.music.*` ✅ | `data.music.*` ✅ | ❌ | ❌ |\n| 类型 | `data.type` ✅ | `data.type` ✅ | `data.type` ✅ | ❌(默认video) |\n\n## 注意事项\n\n1. **皮皮虾**的 `platform` 返回 `\"api\"`（不是 `\"pipix\"`）\n2. **快手**的 `data.author` 是字符串（抖音/小红书是 `{name: xxx}` 对象）\n3. **小红书**的收藏字段是 `data.stats.collected_count`（不是 `collect_count`）\n4. **皮皮虾**无互动数据、无配乐、无 `data.type` → 只发标题和作者\n\n## 发送格式\n\n**文字先发一条**，然后视频/图片/动图逐条单独发。配乐也单独发一条。\n\n文字消息格式：\n```\n📹 {平台名}\n标题：xxx\n作者：xxx\n👍 1.2万  💬 345  ⭐ 567  🔗 89\n📊 今日剩余：8次\n```\n\n没有的字段不显示。素材和配乐全部单独发送：\n\n```\n🎵 配乐：标题 - 作者名\n```"},{"path":"references/key-rules.md","content":"# 身份码使用规则\n\n## 身份码提示（按 `identity_info` 显示）\n\n| identity_info | 显示 |\n|----------|------|\n| `daily_remaining: 8` | `📊 今日免费剩余：8次（每身份码每天10次）` |\n| `remaining: 42` | `📊 剩余：42次` |\n| `remaining: null, expires_at: 有值` | 不显示剩余（时长/永久套餐） |\n| `daily_remaining: 0, remaining: null` | `📊 今日免费次数已用完。可以购买套餐继续使用（发送\"套餐\"查看）` |\n\n## 📌 身份码规则\n\n- 身份码是5位字母数字，**大小写不敏感**\n- **永久不变**，购买套餐后同一码叠加权益\n- 可以随时修改成更好记的码（见 modify_identity.php）\n- 同 IP + 同设备指纹只会返回同一个身份码，防刷\n\n## AI 行为规则\n\n1. **永远只有一个「当前使用的身份码」** — 首次调用自动生成后保存\n2. **开始对话** → 不传 code 调 `/api/parse.php?url=链接` → 自动生成身份码 → 从响应中提取并保存\n3. **用户买了套餐** → 查支付结果 → 权益自动绑定到当前身份码 → 告知用户\n4. **调用失败（403 / 429）** → 按 HTTP 码区分处理：\n\n| HTTP | 含义 | 操作 |\n|------|------|------|\n| 403 | 身份码无效/已停用 / 该身份码无可用权益 | 检查身份码是否正确传入，或查 `identity_info.php` 确认权益状态 |\n| 429 | 今日免费次数已用完 | 引导购买套餐 |\n| 429 | 按量次数已用完 | 引导购买套餐 |\n| 500 | 解析服务异常 | 重试一次，仍失败告知用户 |\n\n**错误消息说明：**\n\n| 错误消息 | 含义 |\n|---------|------|\n| `今日免费次数已用完（X次/天），请购买套餐获取更多次数` | 免费每日额度耗尽，用户需要购买套餐 |\n| `按量次数已用完，请购买套餐` | 按量付费额度耗尽（且无免费每日可用） |\n| `该身份码无可用权益` | 身份码存在但没有任何有效权益（异常状态） |\n| `身份码无效` | 身份码不存在/被禁用，或完全未匹配任何身份码/权益 |\n\n## 📊 权益优先级\n\n**包月/包天/永久(不限量) → 免费每日(10次/天) → 按量付费(计次)**\n\n\n\n| 用户有什么 | 实际消耗顺序 |\n|-----------|------------|\n| 只有免费每日 | → 直接用免费每日 |\n| 免费 + 按量 | → 先用免费10次/天 → 用完了扣按量 |\n| 包月 + 免费 + 按量 | → 先用包月不限量 → 包月到期 → 回退免费10次/天 → 免费用完 → 扣按量 |\n| 已过期套餐 | → 冻结次数自动转成按量，同上逻辑 |\n\n如果用户问\"到期了会怎样\"，答案永远是：先回退免费每日，免费用完了才扣按量，不会直接废掉。\n\n## 🔍 last_ip 说明\n\n`last_ip` 记录的是**谁调了 API**，不是最终用户的IP。通过 AI/API 网关调用时通常显示为本机地址（`127.0.0.1`）。真实用户直接调 API 时才会记录用户公网 IP。\n\n## 常见翻车\n\n| 错误 | 纠正 |\n|------|------|\n| 不保存身份码直接调下一次 | **必须从首次响应的 `identity_info` 中提取身份码并保存** |\n| 手动新建多个身份码 | **一个就够了**，所有权益叠加到同一个码 |\n| 传小写身份码以为不行 | ✅ 大小写都支持，系统自动转大写 |\n| 猜权益优先级搞反了 | ⚠️ **不限量 → 免费每日 → 按量计次**，忘了回来查 |"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"一站式视频解析去水印工具，全面覆盖抖音、快手、小红书、皮皮虾4大主流内容平台，仅针对平台自带水印解析下载剪辑，一键智能去除视频平台标识水印，全程无损解析素材画质， 去水印后画面清晰无模糊、无痕迹、无压缩，完整保快速提取无水印原版视频，适配日常收藏优质内容与二次创作素材整理。 Skill: Duanshipinjiexi Owner: kangleizhui Summary: 一站式视频解析去水印工具，全面覆盖抖音、快手、小红书、皮皮虾4大主流内容平台，仅针对平台自带水印解析下载剪辑，一键智能去除视频平台标识水印，全程无损解析素材画质， 去水印后画面清晰无模糊、无痕迹、无压缩，完整保快速提取无水印原版视频，适配日常收藏优质内容与二次创作素材整理。 Tags: douyin:1.1.2, latest:1.7.6, tools:1.1.2, video:1.1.2 Version history: v1.7.6 | 2026-07-13T10:14:50.726Z | user 优化: 大视频(>10MB)发视频时同时附直链; ≤10MB仅反馈未收到时给直链 v1.7.5 | 2026-07-13T01:45:43.067Z | user v1.7.5: live类型素材处理明确「下载并发送」动图+静图","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":661,"uniquenessScore":54,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T12:01:35.201Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T12:01:35.201Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T23:56:55.307Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}