diff --git a/CHANGELOG.md b/CHANGELOG.md index d6e6446..5dff8eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,9 @@ ## [Unreleased] ### Added +- `POST /api/resolve` 新增 `download_mode` 参数:`audio` 返回原生音频轨(YouTube 经 TikHub 取最高码率纯音频轨)或 Cobalt 音频直链(Twitter / TikTok / Instagram / Pinterest / Facebook),无音频路径的平台返回 HTTP 400。 +- `POST /api/resolve` 新增 `quality` 参数:清晰度封顶(如 `720p`),不超过 cap 取最高档、全部高于 cap 取最低超档,显式覆盖平台默认选流;与 `download_mode=audio` 组合返回 HTTP 422。 +- X(Twitter)video 模式的 resolve 响应新增 `data.variants`:全部 mp4 档位(`url` / `bitrate` / `width` / `height` / `quality`)按码率升序透出,供下游(如 ASR)自选低码率流。 - X(Twitter)公开视频解析:支持 x.com / twitter.com status URL,TikHub 获取元数据并以 Cobalt 兜底。 - 翻译结果状态、模型备用名单、翻译熔断与 `/health/translation` 健康口;翻译失败不再写入响应译文或缓存。 - README 补齐下游接入文档:环境变量表(含 `PUBLIC_BASE_URL`)、视频号 `video_url` 必须带 `X-API-Key` 的差异说明,以及 Python / JavaScript / cURL 的视频号两步下载示例。 diff --git a/README.md b/README.md index 0520076..7a13385 100644 --- a/README.md +++ b/README.md @@ -241,6 +241,18 @@ audio 模式不代表 MP3 或其他容器格式,服务不做转码;请使用 | `data.provider` | string \| null | 实际使用的数据源:`tikhub` 或 `cobalt` | | `error` | string \| null | 错误信息(`success=false` 时) | +`data.variants` 数组元素的字段(仅 X(Twitter)video 模式透出): + +| 元素字段 | 类型 | 说明 | +|------|------|------| +| `url` | string | 该档 mp4 直链 | +| `bitrate` | int \| null | 视频总码率(bps,含音频轨);源站未返回或值非法时为 `null`,此类档排在数组末尾 | +| `width` | int | 宽度(像素);未知为 `0` | +| `height` | int | 高度(像素);未知为 `0` | +| `quality` | string \| null | 档位名(如 `270p`);分辨率未知时为 `null` | + +数组按 `bitrate` 升序、同码率按短边升序,`variants[0]` 即最低码率档——只需要完整音频轨的下游(如 ASR)取首条最省流量。数组仅含 mp4 档,不含 HLS(m3u8)。 + > **注意:** 部分字段可能为 `null`,取决于平台和数据源的返回情况。通过 Cobalt 解析的视频通常只有基础信息(直链、标题),缺少统计数据。 #### 失败响应