如何获取视频号账号的全部作品
用 1 个接口:微信视频号用户作品。下面的示例一共 2 次调用,合计 $0.0400;失败的调用不收费。
拿到一个视频号账号发过的作品,从新到旧,一页一页往前翻:每条作品的编号、文案、发布时间,以及点赞、评论、转发、收藏数。
第 1 步:微信视频号用户作品
按账号编号(以 @finder 结尾的那串)取作品列表。每条的 id 是作品编号,取作品详情和评论时要用;metrics 里是互动数。翻下一页时把 page.next_cursor 作为 cursor 传进去,直到 page.has_more 为 false。
curl -G "https://api.dataxapi.com/v1/wechat_channels/users/videos/list" \ --data-urlencode "id=v2_060000231003b20faec8c5e5811dc3ddce02ec30b0772029a703e1b9f446ba147658bbcfab81@finder" \ -H "Authorization: Bearer $DATAXAPI_API_KEY"
# pip install dataxapi from dataxapi import DataXAPI dx = DataXAPI() # reads DATAXAPI_API_KEY result = dx.wechat_channels.users.videos.list(id="v2_060000231003b20faec8c5e5811dc3ddce02ec30b0772029a703e1b9f446ba147658bbcfab81@finder") print(result["data"]["items"])
// npm i @dataxapi/sdk import { DataXAPI } from "@dataxapi/sdk"; const dx = new DataXAPI(); // reads DATAXAPI_API_KEY const result = await dx.wechat_channels.users.videos.list({ id: "v2_060000231003b20faec8c5e5811dc3ddce02ec30b0772029a703e1b9f446ba147658bbcfab81@finder" }); console.log(result.data.items);
dataxapi call wechat_channels.users.videos.list id=v2_060000231003b20faec8c5e5811dc3ddce02ec30b0772029a703e1b9f446ba147658bbcfab81@finder
录制的返回
{
"code": "ok",
"request_id": "2143009c-a56e-4423-a070-e4b13334cc49",
"data": {
"items": [
{
"id": "14031298325505939525",
"type": "video",
"text": "周末露营|第一次尝试就爱上了,清单放评论区",
"published_at": "2026-10-17T04:01:50.000Z",
"author": {
"id": "v2_060000231003b20feb309ebc5d518611c23f3acfd8710c36fa0cf94a87b33dd1af62d903a6@finder",
"name": "老周说装备"
},
"metrics": {
"likes": 4,
"comments": 0,
"shares": 8,
"favorites": 13
}
},
// … 另有 14 条
]
},
"page": {
"next_cursor": "c1.F0ZqnT3QiojAZwQ9pjt4q0VB88XXKYhLbBXIaplQ",
"cursor_expires_at": "2026-10-17T11:14:05.000Z",
"has_more": true,
"returned": 15
},
"warnings": [],
"meta": {
"capability": "wechat_channels.users.videos.list",
"result_status": "complete",
"fetched_at": "2026-10-17T10:14:05.000Z",
"cached": false,
"replayed": false,
"unavailable": {
"url": "platform",
"title": "platform",
"lang": "capability",
"author.username": "platform",
"author.avatar_url": "capability",
"author.verified": "capability",
"author.followers": "capability",
"metrics.views": "capability",
"metrics.reposts": "platform",
"images": "capability",
"hashtags": "capability",
"mentions": "capability",
"is_pinned": "capability",
"post_id": "platform",
"parent_id": "platform",
"root_id": "platform"
},
"billing": {
"amount": "0.02",
"currency": "USD",
"balance_after": "9.98"
}
}
}取自 2026-10-17 10:14 UTC 录下的真实返回。名字、正文和编号是示例,链接也是,都不是录到的原文(页面不展示任何人的个人信息);数字是原样。长列表做了截断。请求号、游标和余额是示意。
微信视频号用户作品 · $0.0200 / 一次 · 参数、字段和报错见接口页 →
示例花多少钱
一个账号的两页作品
价格是生成本页时的现行价格。失败的调用不收费。
在 AI 里做(MCP)
把 DataXAPI 接进你的 AI 客户端,只要接一次。之后直接说要什么,代理自己找到这些接口、看好价格,用你的余额调用。
这样说: 用 DataXAPI 取这个视频号账号最近的作品,每条带点赞和评论数,整理成一张表。
代理发给 call 工具的参数
{
"capability": "wechat_channels.users.videos.list",
"id": "v2_060000231003b20faec8c5e5811dc3ddce02ec30b0772029a703e1b9f446ba147658bbcfab81@finder",
"idempotency_key": "<a new UUID>"
}要知道的
page.next_cursor一小时内有效,要接着翻就在这之内用。- 没有作品的账号返回空结果;空结果和有数据的一页一样收费。
完整脚本
上面这件事写成一个能直接跑的脚本:Python,用 SDK,Key 从 DATAXAPI_API_KEY 读。它写出一个 CSV 文件,最后打印调了几次、取到几条、扣了多少。
Python
# pip install dataxapi # export DATAXAPI_API_KEY=dx_... (your key) import csv from decimal import Decimal from dataxapi import DataXAPI dx = DataXAPI() calls, fetched, charged = 0, 0, Decimal("0") def run(capability, params): """One call; counts it and what it was charged.""" global calls, charged result = dx.call(capability, params) calls += 1 charged += Decimal(str(result["meta"]["billing"]["amount"])) return result ACCOUNT = "v2_060000231003b20faec8c5e5811dc3ddce02ec30b0772029a703e1b9f446ba147658bbcfab81@finder" PAGES = 2 # The account's videos, newest first, page after page. rows, cursor = [], None for _ in range(PAGES): page = run("wechat_channels.users.videos.list", {"id": ACCOUNT, **({"cursor": cursor} if cursor else {})}) for video in page["data"]["items"]: counts = video.get("metrics", {}) rows.append([video["id"], video.get("published_at"), counts.get("likes"), counts.get("comments"), counts.get("shares"), counts.get("favorites"), video.get("text")]) cursor = page["page"]["next_cursor"] if not page["page"]["has_more"]: break fetched = len(rows) with open("channels-videos.csv", "w", newline="", encoding="utf-8") as file: csv.writer(file).writerows([["id", "published_at", "likes", "comments", "shares", "favorites", "text"], *rows]) print(f"calls: {calls}, items: {fetched}, charged: ${charged}")
2026-10-29 真实跑过一次:调用 2 次,写出 30 行,扣费 $0.0400。失败的调用不收费。