Explore our Marketplace to buy and sell APIs, services, and social media solutions. Connect with a vibrant community of developers, businesses, and creators!
topic_id(来自 fetch_user_collections),返回该合集内的视频列表。media(含 url / url_token / decode_key),可直接下载解密。id / topic_id 等为 64 位大整数,超出 JavaScript 安全整数范围(2^53-1)。请始终以字符串方式接收 / 传递这类 ID(解析 JSON 用 json-bigint 或按文本取值),勿让其经过 JS Number。Swagger UI 文档页对超大整数会末位舍入显示,属正常现象,不影响接口实际返回的数据。fetch_user_collections 的 topic_id)。示例 14616794565351966924(人民日报「早安中国」合集)。早安中国。v2_…@finder 格式),提高命中。down_continue 为真时,传上一页响应的 last_buffer 取下一页。fetch_user_collections 里该合集的 topic_type 对齐)。raw=false(精简,snake_case,推荐做媒体下载):#$.data.topic_id / $.data.title(合集名)$.data.total_count —— 合集总视频数;$.data.count —— 本页条数(示例 20)$.data.videos[] —— 视频数组,逐个(N 为下标):$.data.videos[N].id —— 作品 objectId(可喂 fetch_video_detail / fetch_video_comments)$.data.videos[N].username / .nickname / .title(可能为 null)/ .create_time$.data.videos[N].read_count / .like_count / .fav_count / .forward_count / .comment_count$.data.videos[N].media —— 媒体对象(单个),下载 + 解密:$.data.videos[N].media.url —— 视频 CDN 链接(不带 Token)$.data.videos[N].media.url_token —— CDN 链接 Token(防盗链)$.data.videos[N].media.full_url —— 已拼好的完整 CDN URL(= url + url_token,可直接下载)$.data.videos[N].media.decode_key —— 视频解密密钥(每次请求都不同)cover_url / duration / width / height / media_type 等$.data.down_continue —— 是否有下一页(1=有)$.data.last_buffer —— 翻页游标(传回本接口取下一页)raw=true(完整原始响应,camelCase):#$.data.totalCount → total_count$.data.object[] → videos[](完整视频对象),逐个:$.data.object[N].id → id;$.data.object[N].username → username$.data.object[N].objectDesc.media[0]: .url → url、.urlToken → url_token、.decodeKey → decode_key(full_url 为精简层拼接产物,raw 需自行 url + urlToken 拼接)$.data.downContinueFlag → down_continue(注意 raw 顶层另有 continueFlag,合集翻页以 downContinueFlag 为准)$.data.lastBuffer(别名 $.data.last_buffer)→ last_bufferfetch_video_detail:直接访问 url 可能因防盗链打不开,需用 full_url(已拼 Token)下载;MP4 不能播即为加密文件,用同一次响应的 decode_key 解密(每次请求 decode_key 都变)。topic_id (from fetch_user_collections), return the video list inside that collection.media object (url / url_token / decode_key) ready for download and decryption.id / topic_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.topic_id of fetch_user_collections). E.g. 14616794565351966924 (People's Daily "早安中国" collection).早安中国.v2_…@finder format), improves hit rate.down_continue is truthy, pass the previous page's last_buffer.topic_type from fetch_user_collections).raw=false (simplified, snake_case, recommended for media download):#$.data.topic_id / $.data.title (collection name)$.data.total_count — total videos in the collection; $.data.count — items on this page (e.g. 20)$.data.videos[] — video array, per item (N is the index):$.data.videos[N].id — video objectId (feed into fetch_video_detail / fetch_video_comments)$.data.videos[N].username / .nickname / .title (may be null) / .create_time$.data.videos[N].read_count / .like_count / .fav_count / .forward_count / .comment_count$.data.videos[N].media — media object (single), download + decrypt:$.data.videos[N].media.url — video CDN link (without Token)$.data.videos[N].media.url_token — Token of the CDN link (anti-hotlinking)$.data.videos[N].media.full_url — pre-concatenated full CDN URL (= url + url_token, ready to download)$.data.videos[N].media.decode_key — video decryption key (different on every request)cover_url / duration / width / height / media_type etc.$.data.down_continue — 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[] → videos[] (full video objects), per item:$.data.object[N].id → id; $.data.object[N].username → username$.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.downContinueFlag → down_continue (note: raw top level also has continueFlag; for collection pagination use downContinueFlag)$.data.lastBuffer (alias $.data.last_buffer) → last_bufferfetch_video_detail: accessing url directly may fail due to anti-hotlinking, 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 (the decode_key changes on every request).Authorization: Bearer ********************curl --location 'https://api.tikhub.io/api/v1/wechat_channels/v2/fetch_collection_videos' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"topic_id": "14616794565351966924",
"topic": "string",
"username": "string",
"last_buffer": "string",
"topic_type": 16,
"raw": true
}'{
"code": 200,
"request_id": "string",
"message": "Request successful. This request will incur a charge.",
"message_zh": "请求成功,本次请求将被计费。",
"support": "Discord: https://discord.gg/aMEAS8Xsvz",
"time": "string",
"time_stamp": 0,
"time_zone": "America/Los_Angeles",
"docs": "string",
"cache_message": "string",
"cache_message_zh": "string",
"cache_url": "string",
"router": "",
"params": {},
"data": null
}