media(含 url / url_token / decode_key),可直接下载解密。id 等为 64 位大整数,超出 JavaScript 安全整数范围(2^53-1)。请始终以字符串方式接收 / 传递这类 ID(解析 JSON 用 json-bigint 或按文本取值),勿让其经过 JS Number。Swagger UI 文档页对超大整数会末位舍入显示,属正常现象,不影响接口实际返回的数据。v2_…@finder 格式)。示例(有直播回放的号)v2_060000231003b20faec8cae1811ac4d5c702ea32b0771737aa785454f7f8177114cc4d248d66@finder(虎嗅)。continue_flag 为真时,传上一页响应的 last_buffer 取下一页。raw=false(精简,snake_case,推荐做媒体下载):#$.data.username$.data.count —— 本页条数;$.data.total_count —— 回放总数(无回放时为 0)$.data.lives[] —— 回放数组,每条是一个视频对象(结构同 fetch_collection_videos 的 video),逐个(N 为下标):$.data.lives[N].id —— 回放作品 objectId$.data.lives[N].username / .nickname / .title / .create_time$.data.lives[N].like_count / .fav_count / .forward_count / .comment_count 等计数$.data.lives[N].media —— 媒体对象(单个),下载 + 解密:$.data.lives[N].media.url —— 视频 CDN 链接(不带 Token)$.data.lives[N].media.url_token —— CDN 链接 Token(防盗链)$.data.lives[N].media.full_url —— 已拼好的完整 CDN URL(= url + url_token,可直接下载)$.data.lives[N].media.decode_key —— 视频解密密钥(每次请求都不同)$.data.continue_flag —— 是否有下一页(1=有)$.data.last_buffer —— 翻页游标(传回本接口取下一页)raw=true(完整原始响应,camelCase):#$.data.totalCount → total_count$.data.object[] → lives[](完整视频对象),逐个媒体在 $.data.object[N].objectDesc.media[0]: .url → url、.urlToken → url_token、.decodeKey → decode_key(full_url 为精简层拼接产物,raw 需自行 url + urlToken 拼接)$.data.continueFlag → continue_flag$.data.lastBuffer(别名 $.data.last_buffer)→ last_bufferfetch_video_detail:用 full_url(已拼 Token)下载,MP4 不能播即加密,用同一次响应的 decode_key 解密。live_id(直播间维度)可进一步喂 fetch_live_detail。media object (url / url_token / decode_key) ready for download and decryption.id in the response are 64-bit big integers beyond JavaScript's safe-integer range (2^53-1). Always receive / pass such IDs as strings (parse JSON with json-bigint or read them as text), never through JS Number. Swagger UI rounds the trailing digits of huge integers in its docs view — this is expected and does not affect the actual data returned by the API.v2_…@finder format). Example (an account with live replays): v2_060000231003b20faec8cae1811ac4d5c702ea32b0771737aa785454f7f8177114cc4d248d66@finder (Huxiu).continue_flag is truthy, pass the previous page's last_buffer.raw=false (simplified, snake_case, recommended for media download):#$.data.username$.data.count — items on this page; $.data.total_count — total replays (0 when none)$.data.lives[] — replay array, each item is a video object (same shape as videos of fetch_collection_videos), per item (N is the index):$.data.lives[N].id — replay video objectId$.data.lives[N].username / .nickname / .title / .create_time$.data.lives[N].like_count / .fav_count / .forward_count / .comment_count etc.$.data.lives[N].media — media object (single), download + decrypt:$.data.lives[N].media.url — video CDN link (without Token)$.data.lives[N].media.url_token — Token of the CDN link (anti-hotlinking)$.data.lives[N].media.full_url — pre-concatenated full CDN URL (= url + url_token, ready to download)$.data.lives[N].media.decode_key — video decryption key (different on every request)$.data.continue_flag — has next page (1=yes)$.data.last_buffer — pagination cursor (pass back to this endpoint for the next page)raw=true (full raw response, camelCase):#$.data.totalCount → total_count$.data.object[] → lives[] (full video objects), media per item at $.data.object[N].objectDesc.media[0]: .url → url, .urlToken → url_token, .decodeKey → decode_key (full_url is produced by the simplified layer; for raw, concatenate url + urlToken yourself)$.data.continueFlag → continue_flag$.data.lastBuffer (alias $.data.last_buffer) → last_bufferfetch_video_detail: download via full_url (Token already appended); if the MP4 cannot be played it is encrypted, decrypt with the decode_key from the same response.live_id of a replay (live-room dimension) can be fed into fetch_live_detail./api/pricing/v1/endpoints with this endpoint path for the current unit price.Authorization: Bearer ********************{
"username": "v2_060000231003b20faec8cae1811ac4d5c702ea32b0771737aa785454f7f8177114cc4d248d66@finder",
"last_buffer": "",
"flag": 12,
"raw": true
}curl --location 'https://api.tikomni.com/api/u1/v1/wechat_channels/v2/fetch_live_history' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"username": "v2_060000231003b20faec8cae1811ac4d5c702ea32b0771737aa785454f7f8177114cc4d248d66@finder",
"last_buffer": "",
"flag": 12,
"raw": true
}'{}