Posts
列出 YouTube 视频:某频道的上传、一次搜索、某话题标签、相关视频,或热门榜单。
GET | POST /v1/youtube/posts参数可以用 GET 的查询字符串发送,也可以用 POST 的 JSON 请求体发送,两者等价。
传入内容
| 传入 | 读取内容 | 说明 |
|---|---|---|
username 或 userId | 某频道的上传 | type:videos(默认)、shorts、live、community |
query | 视频搜索 | type:videos(默认)或 shorts |
hashtag | 某话题标签下的视频 | |
relatedTo | YouTube 在某个视频旁推荐的视频 | |
| 不传 | 热门榜单 | country(默认 US);2 个单位 |
每次调用只传一个来源。所有标识符也都接受页面 URL。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
country | string | Default feed only: the country whose trending feed to read (ISO alpha-2, default US). | |
cursor | string | Opaque cursor from the previous page's cursor. Pass it alone for the next page. | |
hashtag | string | Videos under a hashtag, with or without #. | |
query | string | Search videos by keyword. | |
relatedTo | string | A video id or URL; returns the videos YouTube recommends beside it. | |
type | enum | username/userId: which channel tab — videos (default), shorts, live or community · query: videos (default) or shorts. videos shorts live community | |
userId | string | Channel id (UC…). | |
username | string | Channel @handle (with or without @), or the channel URL (/@handle, /channel/UC…, /c/…, /user/…). |
请求
curl "https://gateway.apinoa.com/v1/youtube/posts?username=%40mkbhd&type=shorts" \
-H "x-api-key: $APINOA_API_KEY"响应
在 data 中返回 Post Page。 真实响应的节选:数组只保留前几项,长文本已截断。
{
"success": true,
"data": {
"platform": "youtube",
"items": [
{
"platform": "youtube",
"id": "_4ELeWAgMwo",
"url": "https://www.youtube.com/watch?v=_4ELeWAgMwo",
"author": {
"platform": "youtube",
"id": "UCBJycsmduvYEL83R_U4JriQ",
"handle": "mkbhd",
"displayName": "Marques Brownlee",
"url": "https://www.youtube.com/channel/UCBJycsmduvYEL83R_U4JriQ",
"avatarUrl": "https://yt3.googleusercontent.com/qu4TmIaYUlS41-dJ9gZ7DUR3nilvmB5_11i6OKSdvNnBNiyOusZP1bMN6ICnuxtjFBb6ioKgRQ=s900-c-k-c…"
},
"title": "ASMR iPhone Duo Unboxing",
"media": [
{
"type": "video",
"url": "https://www.youtube.com/watch?v=_4ELeWAgMwo",
"thumbnailUrl": "https://i.ytimg.com/vi/_4ELeWAgMwo/oar3.jpg?sqp=-oaymwEdCJUDENAFSFWQAgHyq4qpAwwIARUAAIhCcAHAAQY=&rs=AOn4CLDEzqDprq0dEj0…"
}
],
"metrics": {
"views": 2100000
},
"ext": {
"isShort": true
}
}
],
"cursor": "4PUpJI-hNYFf8QYTuifBDYgNyLZERTjzoZKnbWwvxtxd6TFzjKx55Gw3YS9-IN4MUE1IAmpHzO19I7UGyZlIYr_d0r7eOHkiDMA6R0H8z6gujuSriodxpkF…"
}
}错误
| 状态 | 代码 | 含义 |
|---|---|---|
| 400 | INVALID_CURSOR | 该 cursor 不是本操作返回的。请不带它重新开始。 |
| 400 | INVALID_PARAMS | 参数缺失、未知或超出范围。消息中会指出是哪一个。 |
| 401 | UNAUTHORIZED | 缺少 x-api-key 请求头,或密钥已吊销或未知。 |
| 402 | INSUFFICIENT_BALANCE | 余额不足以支付本次调用。请在控制台充值。 |
| 404 | NOT_FOUND | 账号、帖子或分组不存在,或为私密、已删除、有年龄限制。 |
| 429 | MARKETPLACE_SATURATED | 并发调用过多。请等待 Retry-After 秒后重试。 |
| 502 | UPSTREAM_ERROR | 平台返回了无法使用的内容。请退避后重试。 |
全部错误代码见 Errors。失败的调用不计费。
价格
价格 每次调用 $0.001,每多一次调用加 $0.001——最多再加 1 次,合计最多 $0.002。标价;单日调用超过 1,000 次后单价下调。