给 AI

YouTube社交媒体

YouTube 频道帖子 API

频道“帖子”栏(原“社区”)里的帖子,从新到旧,每页约 10 条,按频道 ID 或用户名取:正文、图片、点赞、帖子分享的视频(ext.video_id,封面在 images 里),以及大约的发布时间(YouTube 只说“4 天前”)。不存在的频道 ID 和没有帖子的频道一样,返回空结果。

GEThttps://api.okdata.online/v1/youtube/channels/posts/list

也叫油管社区帖频道社区动态YouTube 帖子栏英文名:YouTube channel posts API

价格
$0.002约 ¥0.014
/ 次 · 出错和超时不收费
返回
每页约 10 条帖子
带翻下一页的游标
调用出错时
不收费
一个数据源出错就换下一个;出错和超时都不扣费。
状态
稳定
契约已定:参数和字段不会突然改变。

参数

参数名类型说明
idstring频道 ID,UC 开头。id 和 username 二选一。 例 UCLA_DiR1FfKNvjuUpBHmylQ
usernamestring频道的用户名(@ 后面那段),带不带 @ 都行。id 和 username 二选一。 例 NASA
cursorstring上一次返回的 page.next_cursor,原样传回。每翻一页都是一次单独的调用。
viewstringcompactstandardfull返回多少字段。full 会在 ext 里带上平台特有字段。 默认 standard
fieldsstring[]只保留这些字段,按路径写(如 author.name),用来省 token。放在查询参数里时用逗号分隔。

id、username 只给一个。 所有接口的 cursor、view、fields 用法一致: 请求说明。

请求示例

cURL

curl -G "https://api.okdata.online/v1/youtube/channels/posts/list" \
  -H "Authorization: Bearer $OKDATA_API_KEY" \
  --data-urlencode 'id=UCLA_DiR1FfKNvjuUpBHmylQ'

Python

import os
import requests

resp = requests.get(
    "https://api.okdata.online/v1/youtube/channels/posts/list",
    headers={"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"},
    params={"id": "UCLA_DiR1FfKNvjuUpBHmylQ"},
    timeout=60,
)
body = resp.json()
if body["code"] != "ok":
    raise RuntimeError(f"{body['code']}: {body['message']} (charged: {body['charged']})")

for row in body["data"]["items"]:
    print(row["id"], row["metrics"]["likes"], row["text"][:60])
print("cost: $" + body["meta"]["billing"]["amount"])

TypeScript

const url = new URL('https://api.okdata.online/v1/youtube/channels/posts/list');
url.searchParams.set('id', "UCLA_DiR1FfKNvjuUpBHmylQ");

const res = await fetch(url, {
  headers: {
    Authorization: `Bearer ${process.env.OKDATA_API_KEY}`,
  },
});
const body = await res.json();
if (body.code !== 'ok') throw new Error(`${body.code}: ${body.message}`);

for (const row of body.data.items) {
  console.log(row.id, row.metrics.likes, row.text.slice(0, 60));
}
console.log('cost: $' + body.meta.billing.amount);

MCPtools/call

{
  "name": "call",
  "arguments": {
    "capability": "youtube.channels.posts.list",
    "id": "UCLA_DiR1FfKNvjuUpBHmylQ"
  }
}

返回示例

200 · application/jsonmeta.billing.amount = 0.002
{
  "code": "ok",
  "request_id": "0f6c2a8e-4b1d-4e0a-9a51-3c7d2b9e1f20",
  "data": {
    "items": [
      {
        "id": "Zx3kP9vQm2A",
        "url": "https://www.youtube.com/watch?v=Zx3kP9vQm2A",
        "type": "video",
        "title": "Two nights, one backpack: my full camping kit",
        "text": "What I packed, what I would leave at home, and what it all weighs.",
        "lang": "en",
        "published_at": "2026-11-02T09:30:00Z",
        "author": {
          "id": "UCa1b2c3d4e5f6g7h8i9j0kL",
          "username": "@trailkit",
          "name": "Trail Kit",
          "avatar_url": "https://cdn.example.com/avatar/trailkit.jpg",
          "followers": 412000,
          "verified": true
        },
        "metrics": {
          "views": 1250000,
          "likes": 48200,
          "comments": 1312,
          "shares": null,
          "favorites": null,
          "reposts": null
        },
        "images": null,
        "hashtags": [
          "camping"
        ]
      }
    ]
  },
  "page": {
    "next_cursor": "eyJvIjoyMH0",
    "has_more": true
  },
  "warnings": [],
  "meta": {
    "capability": "youtube.channels.posts.list",
    "billing": {
      "amount": "0.002",
      "currency": "USD",
      "balance_after": "9.998"
    },
    "unavailable": {
      "metrics.shares": "platform",
      "metrics.favorites": "platform",
      "metrics.reposts": "platform"
    },
    "cached": false,
    "replayed": false,
    "fetched_at": "2026-11-11T08:00:00Z"
  }
}

在线调试

这会向 https://api.okdata.online 发送一次真实调用,正常计费:最多 $0.002。失败的调用不扣费。key 只会发往这个地址,本站不保存。

已知限制

  • 每页约 10 条帖子,条数由平台决定,没有每页条数参数。
  • 翻下一页时把 page.next_cursor 作为 cursor 传回。游标 24 小时内有效。page.has_more 为 false 时就没有下一页了。
  • id、username 只给一个。
  • Post 有 3 个字段这个接口给不了

返回字段

data.items 是一组 Post。

字段类型视图说明
idstringcompact内容在平台上的 ID。
urlstringcompact内容链接。
typestringcompact内容类型。
titlestring | nullcompact标题(视频、笔记、文章才有)。
textstringcompact文案、正文或简介,纯文本;文章为 Markdown。长文本:view=compact 可能截短。
langstring | nullstandard语言代码,平台给出或检测得到。
展开全部 12 个字段收起其余 6 个
字段类型视图说明
published_atstring | nullcompact发布时间,ISO 8601,UTC;只有数据源不给时间时为 null(wechat_mp.articles.metrics、wechat_channels.videos.metrics、youtube.channels.videos.list 取 Shorts 时),并列在 meta.unavailable 里。
authorAccountRefcompact发布者。
metricsMetricscompact抓取时的数据;平台不公开的为 null。
imagesstring[] | nullstandard图文内容的图片地址。
hashtagsstring[] | nullstandard话题标签,不带 #。
extobjectfull平台特有字段,只在 view=full 时返回。

“视图”一列是字段最早出现的 view:compact 只返回 compact 字段,standard 再加上 standard 字段,full 返回全部。默认是 standard。

这个接口给不了的

Post 的这些字段在这里返回 null,meta.unavailable 会逐个列出原因。

  • metrics.shares平台不展示
  • metrics.favorites平台不展示
  • metrics.reposts平台不展示

什么时候收费

每次调用 $0.002,返回一页,约 10 条帖子。抓 1,000 条帖子大约要 100 次调用,合计 $0.20。每翻一页是一次单独的调用;失败的调用不扣费。

返回了数据$0.002,每次调用收一次

参数不合法、出错、超时不收费

情况收费
每翻一页另算一次调用:$0.002
单次最高扣费$0.002
空结果$0.002
查无此项(平台上没有)不收费
参数不合法、出错、超时不收费
24 小时内带同一个 Idempotency-Key 重试只扣一次

调用失败不收费;空结果收 $0.002;查无此项不收费。

价格取自价目表版本 1b273c48fea9634e。 这个平台的全部价格 →

常见报错

所有错误同一种结构,并写明是否扣费。这个接口可能返回的:

状态码代码含义是否扣费
400invalid_params参数缺失、类型或取值不对,或者请求方法不对。problems 列出每一处问题,param 是第一个出错的参数。能否重试:修正后重试否
400cursor_mismatchcursor 发到了别的接口,或者参数和它所在那一页不一样(view 和 fields 可以变)。能否重试:修正后重试否
401unauthorizedKey 缺失、格式不对、已撤销、已停用或已过期(知道原因时 reason 会写明)。能否重试:不要重试否
402insufficient_balance余额(available)不够这次调用的最高费用(required)。能否重试:修正后重试否
404not_found内容、账号或页面不存在或不公开。charge_when_not_found 大于 0 的接口会对这个结果计费(数据源也向我们收了钱):这时返回体里 charged 为 true,并给出 amount。能否重试:不要重试否
410cursor_expiredcursor 超过了这个接口的有效期(page.cursor_expires_at 写了到期时间)。能否重试:不要重试否
429rate_limited账号这一分钟请求太多(reason: rate),或同时进行的调用太多(reason: concurrency)。能否重试:可以重试否
500settlement_unknown数据已返回,但没能确认是否扣费。能否重试:用同一个 Idempotency-Key 重试查询后才知道
502upstream_failed这个接口的所有数据源这次都失败了。能否重试:可以重试否
503capability_paused这个接口暂时停用了,这次没有执行。能否重试:可以重试否
504timeout数据没有及时返回。预扣已退回,这次没有扣费。能否重试:可以重试否

全部错误码 →

常见问题

YouTube 频道帖子接口多少钱?

每次调用 $0.002,返回一页,约 10 条帖子。抓 1,000 条帖子大约要 100 次调用,合计 $0.20。每翻一页是一次单独的调用;失败的调用不扣费。

怎么翻页?

把返回里的 page.next_cursor 原样作为 cursor 参数传回去。page.has_more 为 false 时就没有下一页了。每一页都是一次 $0.002 的调用。

需要YouTube账号、Cookie 或扫码登录吗?

不需要。只要带上 okdata 的 API key。返回的是YouTube上的公开数据,不会用到你自己的YouTube账号。

调用失败会扣费吗?

不会。所有错误都会返回 charged: false;只有超时返回 charged: null,表示结果还没确定。带同一个 Idempotency-Key 重发,绝不会重复扣费。

YouTube不展示某个字段怎么办?

这个字段会是 null,meta.unavailable 里会列出它和原因:platform(平台本来就不展示)或 capability(我们暂时取不到)。

在你的 AI 里用

复制这段话贴给 Claude、ChatGPT、Cursor 或任何能打开网页的智能体。它会读这个接口的说明,再用你的 key 调用。

先读 https://okdata.online/zh/apis/youtube/channels/posts/list.md,再用 okdata 帮我调这个接口,key 在环境变量 OKDATA_API_KEY 里。用「YouTube 频道帖子」找出点赞最多的五条内容,附链接。

接好 MCP 服务后,直接问: 用「YouTube 频道帖子」找出点赞最多的五条内容,附链接。

YouTube的全部 10 个接口

YouTube API 总览 →YouTube API 价格 →

名称和编号

名称
YouTube 频道帖子 API · YouTube channel posts API
简称
YouTube 频道帖子
编号
youtube.channels.posts.list
地址
GET /v1/youtube/channels/posts/list
也叫
油管社区帖、频道社区动态、YouTube 帖子栏
返回
Post[]:12 个字段

接上一次,以后直接问 AI。

新 key 自带 $0.10 试用额度。贴一句话,就能接进你的智能体。

免费开始
一句话接进你的 AI

把这句话发给你的智能体

读一下 https://okdata.online/zh/agents.md,帮我把 okdata 配好;我的 key 在环境变量 OKDATA_API_KEY 里。

Claude Code、Cursor、Codex 等能打开网址的智能体,读完会自己配好。

MCP 地址https://api.okdata.online/mcp