主题
按任务 ID 获取 YouTube 自然搜索结果(高级版)
接口信息
GET https://api.seermartech.cn/v3/serp/youtube/organic/task_get/advanced/$id
根据任务 ID 获取 YouTube 自然搜索结果。任务结果自发布任务之日起保留 30 天,在此期间可重复查询。
计费说明
- 在提交任务时计费。
- 查询已提交任务的结果不额外收费。
- 任务结果可在 30 天获取。
- 实扣费以响应头
X-SeerMarTech-Charge-CNY为准。
请求参数
任务 ID 通过 URL 路径传递。
| 参数 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识符,UUID 格式。任务提交成功后,可在 30 天使用该 ID 随时查询结果。 |
请求示例
cURL
bash
id="02261816-2027-0066-0000-c27d02864073"
curl --location --request GET \
"https://api.seermartech.cn/v3/serp/youtube/organic/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 = (
"https://api.seermartech.cn"
f"/v3/serp/youtube/organic/task_get/advanced/{task_id}"
)
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
}
response = requests.get(url, headers=headers)
response.raise_for_status()
result = response.json()
print(result)TypeScript
typescript
import axios from "axios";
const taskId = "02231256-2604-0066-2000-57133b8fc54e";
axios
.get(
`https://api.seermartech.cn/v3/serp/youtube/organic/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.response?.data || error.message);
});响应说明
接口返回 JSON 数据,顶层 tasks 数组。每个任务对象任务状态、请求参数及 YouTube 搜索结果。
顶层响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本。 |
status_code | integer | 通用响应状态码。完整状态码列表请参考错误码文档。建议客户端针对异常和错误状态设计专门的处理逻辑。 |
status_message | string | 通用状态说明。 |
time | string | 接口执行耗时,单位为秒。 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
tasks_count | integer | tasks 数组中的任务数量。 |
tasks_error | integer | tasks 数组中返回错误的任务数量。 |
tasks | array | 任务结果数组。 |
任务对象字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识符,UUID 格式。 |
status_code | integer | 任务状态码,通常为 10000–60000。 |
status_message | string | 任务状态说明。 |
time | string | 任务执行耗时,单位为秒。 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
result_count | integer | result 数组中的结果数量。 |
path | array | 请求路径信息。 |
data | object | 提交任务时使用的请求参数。 |
result | array | 搜索结果数组。 |
data 字段
data 通常提交任务时的参数,例如:
| 字段 | 类型 | 说明 |
|---|---|---|
api | string | API 模块名称,例如 serp。 |
function | string | 接口功能名称,例如 task_get。 |
se | string | 搜索引擎类型,例如 youtube。 |
se_type | string | 搜索结果类型,例如 organic。 |
language_code | string | 语言代码。 |
location_code | integer | 地区代码。 |
keyword | string | 查询。 |
priority | integer | 任务优级。 |
device | string | 设备类型,例如 desktop。 |
os | string | 操作系统,例如 windows。 |
搜索结果字段
SERP 结果字段
| 字段 | 类型 | 说明 |
|---|---|---|
keyword | string | POST 请求中的。返回时会对编码进行解码,+ 会被解码为空格。 |
se_domain | string | POST 请求中的搜索引擎域名。 |
location_code | integer | POST 请求中的地区代码。 |
language_code | string | POST 请求中的语言代码。 |
check_url | string | 搜索结果页的直接 URL,可用于核验返回结果的准确性。 |
datetime | string | 获取搜索结果的时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00。示例:2019-11-15 12:57:46 +00:00。 |
spell | object | 搜索引擎自动纠错信息。如果搜索引擎对进行了纠正,将返回纠正后的及纠错类型。 |
refinement_chips | object | 搜索筛选项。当前返回 null。 |
item_types | array | 搜索结果类型。可能 youtube_channel、youtube_video、youtube_video_paid、youtube_playlist。 |
se_results_count | integer | SERP 中的结果总数。 |
items_count | integer | items 数组中返回的结果数量。 |
items | array | SERP 中的搜索结果。 |
搜索结果
YouTube 频道:youtube_channel
| 字段 | 类型 | 说明 |
|---|---|---|
type | string | 素类型,固定为 youtube_channel。 |
rank_group | integer | 分组排名。同一 type 的在组的排名;不同类型之间不计该排名。 |
rank_absolute | integer | 在整个 SERP 中的绝对排名。 |
block_rank | integer | 在整个 SERP 结果区块中的排名。 |
block_name | string | SERP 区块名称,例如 People also watched。 |
channel_id | string | 频道 ID。 |
name | string | 频道名称。 |
url | string | 频道 URL。 |
logo | string | 频道 Logo 图片地址。 |
video_count | integer | 频道中统计到的视频数量。 |
is_verified | boolean | 是否带有已验证标识。 |
description | string | 频道描述。 |
highlighted | array | 描述中被高亮的。 |
YouTube 视频:youtube_video
| 字段 | 类型 | 说明 |
|---|---|---|
type | string | 素类型,固定为 youtube_video。 |
rank_group | integer | 同类型的分组排名。 |
rank_absolute | integer | 在整个 SERP 中的绝对排名。 |
block_rank | integer | 在整个 SERP 结果区块中的排名。 |
block_name | string | SERP 区块名称。 |
title | string | 视频标题。 |
url | string | 视频 URL。 |
video_id | string | 视频 ID。 |
thumbnail_url | string | 视频缩略图地址。 |
channel_id | string | 发布该视频的频道 ID。 |
channel_name | string | 发布该视频的频道名称。 |
channel_url | string | 频道 URL。 |
channel_logo | string | 频道 Logo 图片地址。 |
description | string | 视频描述。 |
highlighted | array | 描述中被高亮的。 |
badges | array | 视频标识,例如 New、CC、4K。 |
is_live | boolean | 是否为直播。 |
is_shorts | boolean | 是否为 Shorts 短视频。 |
is_movie | boolean | 是否为电影。 |
views_count | integer | 视频播放次数。 |
publication_date | string | 视频发布日期。 |
timestamp | string | 结果发布时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00。示例:2022-11-15 12:57:46 +00:00。 |
duration_time | string | 视频时长,例如 23:26。 |
duration_time_seconds | integer | 视频时长,单位为秒。 |
付费 YouTube 视频:youtube_video_paid
该用于表示 SERP 中的付费视频结果,字段结构与 youtube_video 基本一致。
| 字段 | 类型 | 说明 |
|---|---|---|
type | string | 素类型,固定为 youtube_video_paid。 |
rank_group | integer | 同类型的分组排名。 |
rank_absolute | integer | 在整个 SERP 中的绝对排名。 |
block_rank | integer | 在整个 SERP 结果区块中的排名。 |
block_name | string | SERP 区块名称。 |
title | string | 视频标题。 |
url | string | 视频 URL。 |
video_id | string | 视频 ID。 |
thumbnail_url | string | 视频缩略图地址。 |
channel_id | string | 发布该视频的频道 ID。 |
channel_name | string | 发布该视频的频道名称。 |
channel_url | string | 频道 URL。 |
channel_logo | string | 频道 Logo 图片地址。 |
description | string | 视频描述。 |
highlighted | array | 描述中被高亮的。 |
badges | array | 视频标识,例如 New、CC、4K。 |
is_live | boolean | 是否为直播。 |
is_shorts | boolean | 是否为 Shorts 短视频。 |
is_movie | boolean | 是否为电影。 |
views_count | integer | 视频播放次数。 |
publication_date | string | 视频发布日期。 |
timestamp | string | 结果发布时间,UTC 格式。 |
duration_time | string | 视频时长。 |
duration_time_seconds | integer | 视频时长,单位为秒。 |
YouTube 播放列表:youtube_playlist
| 字段 | 类型 | 说明 |
|---|---|---|
type | string | 素类型,固定为 youtube_playlist。 |
rank_group | integer | 同类型的分组排名。 |
rank_absolute | integer | 在整个 SERP 中的绝对排名。 |
block_rank | integer | 在整个 SERP 结果区块中的排名。 |
block_name | string | SERP 区块名称。 |
title | string | 播放列表标题。 |
url | string | 播放列表 URL。 |
playlist_id | string | 播放列表 ID。 |
thumbnail_url | string | 播放列表缩略图地址。 |
channel_id | string | 所属频道 ID。 |
channel_name | string | 所属频道名称。 |
channel_url | string | 所属频道 URL。 |
channel_logo | string | 所属频道 Logo 图片地址。 |
videos_count | integer | 播放列表中的视频数量。 |
preview_videos | array | 播放列表预览区中的视频信息。 |
preview_videos 子字段
| 字段 | 类型 | 说明 |
|---|---|---|
video_id | string | 视频 ID。 |
title | string | 视频标题。 |
url | string | 视频 URL。 |
duration_time | string | 视频时长。 |
duration_time_seconds | integer | 视频时长,单位为秒。 |
响应示例
json
{
"version": "0.1.20221214",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0791 sec.",
"cost": 0,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "02261816-2027-0066-0000-c27d02864073",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0500 sec.",
"cost": 0,
"result_count": 1,
"path": [
"v3",
"serp",
"youtube",
"organic",
"task_get",
"advanced"
],
"data": {
"api": "serp",
"function": "task_get",
"se": "youtube",
"se_type": "organic",
"language_code": "en",
"location_code": 2840,
"keyword": "audi",
"priority": 2,
"device": "desktop",
"os": "windows"
},
"result": [
{
"keyword": "audi",
"se_domain": "youtube.com",
"location_code": 2840,
"language_code": "en",
"check_url": "https://www.youtube.com/results?search_query=audi",
"datetime": "2022-12-30 14:12:23 +00:00",
"spell": null,
"refinement_chips": null,
"item_types": [
"youtube_video",
"youtube_channel",
"youtube_playlist"
],
"se_results_count": 32447281,
"items_count": 3,
"items": [
{
"type": "youtube_video",
"rank_group": 1,
"rank_absolute": 1,
"block_rank": 1,
"block_name": null,
"title": "示例视频标题",
"url": "https://www.youtube.com/watch?v=example",
"video_id": "example",
"thumbnail_url": "https://i.ytimg.com/vi/example/hqdefault.jpg",
"channel_id": "UCexample",
"channel_name": "示例频道",
"channel_url": "https://www.youtube.com/channel/UCexample",
"channel_logo": null,
"description": "示例视频描述",
"highlighted": [],
"badges": [
"4K"
],
"is_live": false,
"is_shorts": false,
"is_movie": null,
"views_count": 1004,
"publication_date": "43 minutes ago",
"timestamp": "2022-12-30 14:12:23 +00:00",
"duration_time": "23:26",
"duration_time_seconds": 1406
},
{
"type": "youtube_channel",
"rank_group": 1,
"rank_absolute": 9,
"block_rank": 1,
"block_name": null,
"channel_id": "UCexample",
"name": "示例频道",
"url": "https://www.youtube.com/@example",
"logo": "https://yt3.googleusercontent.com/example",
"video_count": 120,
"is_verified": true,
"description": "示例频道描述",
"highlighted": []
},
{
"type": "youtube_playlist",
"rank_group": 2,
"rank_absolute": 3,
"block_rank": 3,
"block_name": null,
"title": "示例播放列表",
"url": "https://www.youtube.com/playlist?list=example",
"playlist_id": "example",
"thumbnail_url": "https://i.ytimg.com/vi/example/hqdefault.jpg",
"channel_id": "UCexample",
"channel_name": "示例频道",
"channel_url": "https://www.youtube.com/channel/UCexample",
"channel_logo": null,
"videos_count": 81,
"preview_videos": []
}
]
}
]
}
]
}错误处理
请根据以下字段判断请求和任务是否成功:
- 顶层
status_code:判断整体请求状态。 - 任务级
tasks[].status_code:判断任务状态。 status_message:获取对应的状态说明。tasks_error:确认返回错误的任务数量。- 当任务状态码表示错误,或
result为空时,应记录任务 ID、状态码和状态说明,并执行重试或异常处理。
实用场景
- 监控排名:定期查询 YouTube 自然搜索结果,跟踪视频、频道和播放列表的排名变化,评估 SEO 优化效果。
- 分析竞争频道:统计目标下竞争频道的出现位置、视频数量和验证状态,竞品研究与布局。
- 挖掘视频机会:提取排名靠前的视频标题、描述、徽章、播放量和时长,发现高表现主题与制作特征。
- 识别 Shorts 与直播结果:区分普通视频、Shorts、直播和付费视频,优化不同类型的投放策略。
- 评估播放列表覆盖:分析结果中的播放列表及预览视频,完善频道分类和视频串联策略。