主题
获取 YouTube 视频结果(按任务 ID,Advanced)
通过本接口可根据任务 ID 获取已完成的 YouTube 视频抓取结果。
接口说明
请求方式: GET请求地址:
https://api.seermartech.cn/v3/serp/youtube/video_info/task_get/advanced/$id
说明:
$id:任务唯一标识,UUID 格式- 任务提交成功后,可在 30 天 随时通过该 ID 获取结果
- 账户在创建任务时扣费;结果查询本身在 30 天
- 实扣费以响应头
X-SeerMarTech-Charge-CNY为准
参考价格
该接口结果查询本身不额外收费;费用通常发生在对应任务提交阶段。 若异步任务单价为 USD 计费,请按以下规则估算:
- 参考价约 ¥0.0000 / 次(当前结果获取接口通常不额外计费)
- 实扣费以响应头
X-SeerMarTech-Charge-CNY为准
路径参数
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务 ID,UUID 格式的唯一标识符。可在任务创建后的 30 天用于获取结果。 |
Sandbox
如需查看该端点可返回的完整字段结构,可使用 Sandbox 地址:
https://sandbox.本平台.com/v3/serp/youtube/video_info/task_get/advanced/00000000-0000-0000-0000-000000000000
说明:
- Sandbox 返回的是示例结构与模拟数据
- 可用于联调字段解析逻辑
- 调用 Sandbox 不扣费
响应结构
接口返回 JSON 数据,顶层 tasks 数组。
顶层字段
| 字段 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本。 |
status_code | integer | 通用状态码。完整错误码请参考 /v3/appendix/errors。建议对异常与错误状态做好处理。 |
status_message | string | 通用状态信息。 |
time | string | 请求执行耗时,单位秒。 |
cost | float | 本次请求总成本,单位 USD。 |
tasks_count | integer | tasks 数组中的任务数量。 |
tasks_error | integer | tasks 数组中返回错误的任务数量。 |
tasks | array | 任务结果数组。 |
tasks[] 字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务 ID,UUID 格式。 |
status_code | integer | 任务状态码,范围通常为 10000-60000。完整列表参考 /v3/appendix/errors。 |
status_message | string | 任务状态说明。 |
time | string | 任务执行耗时,单位秒。 |
cost | float | 单个任务成本,单位 USD。 |
result_count | integer | result 数组中的结果数量。 |
path | array | 请求路径。 |
data | object | 创建任务时传的原始参数。 |
result | array | 结果数组。 |
tasks[].result[] 字段
| 字段 | 类型 | 说明 |
|---|---|---|
video_id | string | 创建任务时传的视频 ID。 |
se_domain | string | 创建任务时指定的搜索引擎域名。 |
location_code | integer | 创建任务时指定的位置编码。 |
language_code | string | 创建任务时指定的语言编码。 |
check_url | string | 指向搜索结果页的直达链接,可用于人工校验结果准确性。 |
datetime | string | 结果采集时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00。 |
spell | object | 搜索引擎自动纠错信息。如发生纠错,将返回纠错后的词及纠错类型。 |
refinement_chips | object | 搜索细化项。该字段固定为 null。 |
item_types | array | 当前 SERP 中出现的结果类型列表。 |
items_count | integer | items 数组中的结果数量。 |
items | array | 搜索结果项数组。 |
item_types 可能值
| 值 | 说明 |
|---|---|
youtube_video_info | YouTube 视频结果 |
items[] 字段说明
items[] 中每个代表一个视频结果项。
| 字段 | 类型 | 说明 |
|---|---|---|
type | string | 结果类型,固定为 youtube_video_info。 |
rank_group | integer | 同类型结果的组排名。不同 type 间的位置不会计该值。 |
rank_absolute | integer | 在整个 SERP 中的绝对排名。 |
video_id | string | 视频 ID。 |
title | string | 视频标题。 |
url | string | 视频链接。 |
thumbnail_url | string | 缩略图所在页面 URL。 |
channel_id | string | 发布该视频的频道 ID。 |
channel_name | string | 频道名称。 |
channel_url | string | 频道链接。 |
channel_logo | string | 频道头像图片所在页面 URL。 |
description | string | 视频描述。 |
views_count | integer | 视频观看次数。 |
likes_count | integer | 视频点赞数。 |
comments_count | integer | 视频评论数。 |
channel_subscribers_count | object | 频道订数信息。 |
publication_date | string | 视频发布日期,按页面展示文本返回。 |
timestamp | string | 视频发布时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00。 |
keywords | array | 与视频的。 |
category | string | 视频所属分类。 |
is_live | boolean | 是否为直播。 |
is_embeddable | boolean | 是否支持嵌。 |
duration_time | string | 视频时长,文本格式。 |
duration_time_seconds | integer | 视频时长,单位秒。 |
subtitles | array | 字幕属性数组。 |
streaming_quality | array | 可用流媒体晰度信息数组。 |
channel_subscribers_count 字段
| 字段 | 类型 | 说明 |
|---|---|---|
displayed_count | string | 页面展示的订数文本,例如 478K subscribers。 |
count | integer | 标准化后的订数值。 |
subtitles[] 字段
| 字段 | 类型 | 说明 |
|---|---|---|
language | string | 字幕语言。 |
is_translatable | boolean | 字幕是否支持翻译。 |
is_auto_generated | boolean | 是否为自动生成字幕。 |
streaming_quality[] 字段
| 字段 | 类型 | 说明 |
|---|---|---|
type | string | 素类型,固定为 streaming_quality_element。 |
label | string | 晰度标签。 |
width | integer | 视频宽度,单位像素。 |
height | integer | 视频高度,单位像素。 |
bitrate | integer | 视频码率。 |
mime_type | string | 视频媒体类型。 |
fps | integer | 帧率。 |
调用示例
cURL
bash
id="02261816-2027-0066-0000-c27d02864073"
curl --location --request GET "https://api.seermartech.cn/v3/serp/youtube/video_info/task_get/advanced/${id}" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json"Python
python
import requests
task_id = "02231256-2604-0066-2000-57133b8fc54e"
url = f"https://api.seermartech.cn/v3/serp/youtube/video_info/task_get/advanced/{task_id}"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers)
print(response.status_code)
print(response.json)TypeScript
typescript
import axios from "axios";
const taskId = "02231256-2604-0066-2000-57133b8fc54e";
axios({
method: "get",
url: `https://api.seermartech.cn/v3/serp/youtube/video_info/task_get/advanced/${taskId}`,
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
},
})
.then((response) => {
// 返回结果
console.log(response.data);
})
.catch((error) => {
console.error(error);
});结合 tasks_ready 获取结果
在批量任务场景中,通常建议调用:
GET /v3/serp/youtube/video_info/tasks_ready
获取所有已完成任务,再逐个请求:
GET /v3/serp/youtube/video_info/task_get/advanced/$id
这样可以减少无效轮询,提高结果拉取效率。
Python 示例:查已完成任务,再获取结果
python
import requests
base_url = "https://api.seermartech.cn"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
# 1. 获取已完成任务列表
ready_resp = requests.get(
f"{base_url}/v3/serp/youtube/video_info/tasks_ready",
headers=headers
)
ready_data = ready_resp.json
results = []
if ready_data.get("status_code") == 20000:
for task_group in ready_data.get("tasks", []):
for task in task_group.get("result", []) if isinstance(task_group, dict) else []:
task_id = task.get("id")
if not task_id:
continue
# 2. 按任务 ID 获取 Advanced 结果
result_resp = requests.get(
f"{base_url}/v3/serp/youtube/video_info/task_get/advanced/{task_id}",
headers=headers
)
results.append(result_resp.json)
print(results)响应示例
json
{
"version": "0.1.20240801",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0529 sec.",
"cost": 0,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"data": {
"api": "serp",
"function": "task_get",
"se": "youtube",
"se_type": "video_info",
"language_code": "en",
"location_code": 2840,
"video_id": "vQXvyV0zIP4",
"device": "desktop",
"os": "windows"
},
"result": [
{
"items_count": 1,
"items": [
{
"views_count": 5582858,
"likes_count": 100649,
"comments_count": 4367,
"channel_subscribers_count": {
"displayed_count": "478K subscribers",
"count": 478000
},
"publication_date": "Premiered Jan 26, 2021",
"timestamp": "2021-01-26 23:00:09 +00:00",
"keywords": [],
"category": "Autos & Vehicles",
"is_live": false,
"is_embeddable": true,
"duration_time": "02:09",
"duration_time_seconds": 129,
"subtitles": null,
"streaming_quality": []
}
]
}
]
}
]
}错误处理建议
建议至少处理以下几类:
| 场景 | 建议处理方式 |
|---|---|
status_code != 20000 | 按失败处理,并记录 status_message。 |
tasks_error > 0 | 遍历 tasks,检查失败任务。 |
result 为空 | 可能任务尚未完成、已过期或无可用结果。 |
items 为空 | 表示当前视频未抓取到有效结果。 |
| 过 30 天后查询 | 任务结果可能不可再获取,建议重新创建任务。 |
使用说明
- 本接口是按任务 ID 获取结果的接口,不负责创建任务
- 使用前请通过对应的 POST 接口提交 YouTube Video Info 任务
- 若需批量获取完成任务,建议合
/v3/serp/youtube/video_info/tasks_ready使用 - 若需校验采集结果,可使用返回中的
check_url
实用场景
- 监控视频表现:定期抓取指定视频的播放量、点赞数、评论数,评估传播效果与用户互动质量。
- 分析频道影响力:结合
channel_subscribers_count、频道名称与频道链接,评估视频发布方的账号体量与合作价值。 - 校验视频可投放性:通过
is_embeddable、is_live、duration_time_seconds等字段,筛选适合落地页嵌或广告投放的视频素材。 - 提取标签:利用
keywords、category、description等字段构建视频主题标签体系,用于 SEO研究与竞品分析。 - 评估多语言与分发能力:基于
subtitles和streaming_quality判断视频是否支持字幕翻译及多晰度分发,化运营。