Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 的视频号两步下载示例。
Expand Down
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 解析的视频通常只有基础信息(直链、标题),缺少统计数据。

#### 失败响应
Expand Down