哼哼猫文档
本页内容

错误码

错误格式

所有非 200 的响应体都是同一种 JSON 结构:

{
  "message": "该内容已被删除或不存在",
  "code": "content_deleted",
  "retryable": false
}
字段说明
message给人看的说明,语言由 Accept-Language 请求头决定。不要拿它做逻辑判断,措辞会调整。
code机器可读的错误码。提取失败的 400 一定带,429 固定为 too_many_requests401402422500 不带,用状态码本身判别。请求体不是合法 JSON 时只有 message
retryable同一链接稍后重试是否可能成功,随 code 一起出现
detail422 有,是请求体校验问题的列表

HTTP 状态码

状态码含义常见原因处理
200成功-响应体即提取结果,此时才扣费
400提取失败链接无效、内容不可访问、平台限制等;请求体不是合法 JSON 也是 400,但只带 messagecode 处理,见下表。不扣费。
401鉴权失败Authorization 请求头或不是 Bearer 方案、API Key 错误或已重置开发者管理中心 核对 Key
402额度用尽剩余次数为 0开发者管理中心 充值
422请求体不合法urlurl 不是字符串、Content-Type 不是 JSON(此时请求体按空对象校验)detail,修正请求
429触发限流超过每个 Key 每分钟 1200 次,codetoo_many_requests退避后重试。MCP 与 REST 共用这份配额。
500服务器错误服务内部异常稍后重试,持续出现请联系我们

提取错误码

提取失败返回 HTTP 400code 取自下面 18 个值之一。这些都是业务失败,不扣费

code含义常见原因怎么办retryable
invalid_url链接格式不对传的不是 URL,或没有可识别的链接修正 URLfalse
unsupported_url不是帖子 / 视频链接URL 合法但不是内容页,如站点首页、搜索页换用单个帖子或视频的分享链接false
unsupported_site该站点暂不支持平台不在支持列表联系我们提需求false
invalid_playlist_url不是主页 / 频道 / 播放列表链接主页批量接口收到了单帖链接或非列表页换用公开的作者主页、频道或播放列表 URLfalse
playlist_not_supported把列表链接传给了单帖接口/extract/post 收到了主页 / 播放列表链接改调 /extract/playlist,或传单个帖子链接false
content_deleted内容已删除或不存在帖子被删、链接错误、从未存在无内容可提取false
user_not_found找不到该用户账号已注销、改名或被平台限制核对用户名false
no_story该账号当前没有可看的快拍快拍 24 小时后消失稍后有新快拍时再试false
private_content私密内容私密账号或仅关注者可见无法提取false
members_only_content付费或会员专享内容需要订阅、付费或会员身份无法提取false
age_restricted年龄限制平台要求登录验证年龄无法提取(见下方说明)false
region_restricted地区限制内容仅特定地区可见无法提取(见下方说明)false
not_premiered内容尚未发布预约首映 / 定时发布尚未到时间到点后再试false
live_stream_not_supported该站点的直播暂不支持直播进行中等直播转为回放后再试(见下方说明)false
extract_failed提取失败站点改版,或该内容当前无法正常访问稍后重试true
retryable临时失败提取过程中的瞬时错误稍等片刻后重试true
timeout提取超时本次提取耗时超出限制稍等片刻后重试true
unknown未归类的失败未预期的错误先重试一次,反复出现请带上请求时间联系我们true

age_restrictedregion_restrictedlive_stream_not_supported 这三个码只在少数平台上出现。年龄限制、地区限制的资源我们大多能正常提取,直播也支持很多平台(如 Twitch、TikTok)。收到这三个码只说明这个平台的这类资源当前拿不到,不代表不支持这类资源。

retryable 的语义

retryable 是对「同一个链接稍后重试有没有意义」的回答,和错误码一起下发:

  • true:临时性失败,同一链接过一会儿重试有可能成功。建议指数退避,从几秒开始,重试两三次仍失败就放弃并记录。
  • false:关于内容本身的确定性结论(已删除、私密、不支持……),重试多少次结果都一样,不要重试
  • 没有这个字段:按 false 处理

错误码会随时间新增。遇到不在上表里的 code,按永久失败处理并记录日志,不要循环重试。同一个平台持续返回 extract_failed、或 unknown 反复出现,请带上请求时间联系我们。

retryable 表示的是「可以重试」,不是「一定会成功」;表格里的值是各错误码的典型值,请以响应里实际下发的为准。