Skip to content

提交 YouTube 视频评论抓取任务

本接口用于创建 YouTube 视频评论采集任务。创建任务后,系统会抓取指定视频下的评论数据,返回该视频的前 20 条评论,并附带评论信息及评论指标。

接口支持两种执行优级:

  • 1:普通优级(默认)
  • 2:高优级(更快执行,费用更高)

接口说明

请求方式: POST请求地址: https://api.seermartech.cn/v3/serp/youtube/video_comments/task_post

计费与并发限制

  • 创建任务时扣费
  • 参考价约 ¥0.0096 / 次
  • 高优级任务会产生额外费用
  • 实扣费以响应头 X-SeerMarTech-Charge-CNY 为准

请求限制:

  • 每分钟最多可发起 2000 次 API 调用
  • 每个 POST 请求最多 100 个任务
  • 若单次请求中任务数 100,出部分会返回错误 40006

结果获取方式

任务创建后,可通过返回的唯一任务 ID id 获取结果。你也可以在创建任务时以下回调方式:

  • pingback_url:任务完成后,系统向该地址发送 GET 通知
  • postback_url:任务完成后,系统向该地址发送结果的 POST 请求,结果为 gzip 压缩格式

注意事项:

  • 若你的服务器在 10 秒未响应,连接会因时被中断
  • 这类任务仍会 /v3/serp/youtube/video_comments/tasks_ready/ 列表,可后续主动拉取
  • 回调请求中的错误码和错误信息取决于你的服务器

请求体格式

所有 POST 数据使用 JSON(UTF-8 编码),并采用数组格式提交:

json
[
 {
 "language_code": "en",
 "location_code": 2840,
 "video_id": "vQXvyV0zIP4"
 }
]

主要参数

字段名类型说明
video_idstring视频 ID。。可从视频 URL 中获取,或从 /v3/serp/youtube/organic/live/advanced/ 返回结果中的 youtube_video 项提取。示例:vQXvyV0zIP4
location_codeinteger搜索引擎地区代码。未指定 location_name。使用该字段时无需再传 location_name。地区列表可通过 /v3/serp/youtube/locations 获取。示例:2840
language_codestring搜索引擎语言代码。未指定 language_name。使用该字段时无需再传 language_name。语言列表可通过 /v3/serp/youtube/languages 获取。示例:en
depthinteger抓取深度,可选。表示返回的评论数量。默认 20,最大 700注意: 每最多 20 条结果按一个 SERP 单计费;当 depth 大于 20 且平台返回 20 条结果时,可能产生额外费用;若设置值高于结果数量,差额会自动退回余额。
priorityinteger任务优级,可选。1=普通优级(默认),2=高优级。高优级会额外计费。
devicestring设备类型,可选。支持:desktop
pingback_urlstring任务完成通知地址,可选。任务完成后,系统会向该地址发起 GET 请求。可在 URL 中使用 $id$tag 占位符,发送前会替换为真实值。示例:http://your-server.com/pingscript?id=$idhttp://your-server.com/pingscript?id=$id&tag=$tag注意: 特殊字符会被 URL 编码,例如 # 会编码为 %23
postback_urlstring结果回传地址,可选。任务完成后,系统会向该地址发送结果的 POST 请求,数据为 gzip 压缩格式。可使用 $id$tag 占位符。示例:http://your-server.com/postbackscript?id=$idhttp://your-server.com/postbackscript?id=$id&tag=$tag注意: 特殊字符会被 URL 编码。
postback_datastringpostback_url 返回数据类型。指定 postback_url。可选值:advanced

附加参数

字段名类型说明
location_namestring搜索引擎地区完整名称。未指定 location_code。使用该字段时无需再传 location_code。可通过 /v3/serp/youtube/locations 获取可用值。示例:United States
language_namestring搜索引擎语言完整名称。未指定 language_code。使用该字段时无需再传 language_code。可通过 /v3/serp/youtube/languages 获取可用值。示例:English
osstring设备操作系统,可选。可选值:windowsmacos。默认:windows
tagstring自定义任务标识,可选。最大长度 255 字符。可用于请求与结果的业务侧;响应中的 data 对象会原样返回该值。

响应结构

接口返回 JSON 数据,顶层 tasks 数组,用于描述本次提交的任务信息。

顶层字段

字段名类型说明
versionstring当前 API 版本
status_codeinteger通用状态码。完整错误码请参考 /v3/appendix/errors
status_messagestring通用状态说明
timestring执行耗时,单位秒
costfloat本次请求总费用,单位 USD
tasks_countintegertasks 数组中的任务数量
tasks_errorinteger返回错误的任务数量
tasksarray任务结果数组

tasks 数组中的字段

字段名类型说明
idstring平台唯一任务 ID,UUID 格式
status_codeinteger任务状态码,范围通常为 10000-60000
status_messagestring任务状态说明
timestring任务执行耗时,单位秒
costfloat单个任务费用,单位 USD
result_countintegerresult 数组中的数量
patharray请求路径
dataobject创建任务时传的参数集合
resultarray | null任务创建接口中该值通常为 null

请求示例

cURL

bash
curl --location --request POST "https://api.seermartech.cn/v3/serp/youtube/video_comments/task_post" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
 {
 "language_code": "en",
 "location_code": 2840,
 "video_id": "vQXvyV0zIP4"
 },
 {
 "language_name": "English",
 "location_name": "United States",
 "video_id": "vQXvyV0zIP4",
 "priority": 2,
 "tag": "some_string_123",
 "pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
 }
]'

Python

python
import requests

url = "https://api.seermartech.cn/v3/serp/youtube/video_comments/task_post"

payload = [
 {
 # 示例 1:最简任务,指定语言、地区和视频 ID
 "language_code": "en",
 "location_code": 2840,
 "video_id": "vQXvyV0zIP4"
 },
 {
 # 示例 2:附加参数任务
 # 高优级执行更快,但费用更高
 # 任务完成后会向 pingback_url 发送 GET 通知
 "language_name": "English",
 "location_name": "United States",
 "video_id": "vQXvyV0zIP4",
 "priority": 2,
 "tag": "some_string_123",
 "pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
 }
]

headers = {
 "Authorization": "Bearer smt_live_YOUR_KEY",
 "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)
print(response.status_code)
print(response.json)

TypeScript

typescript
import axios from "axios";

const postArray = [
 {
 language_code: "en",
 location_code: 2840,
 video_id: "vQXvyV0zIP4",
 },
 {
 language_name: "English",
 location_name: "United States",
 video_id: "vQXvyV0zIP4",
 priority: 2,
 tag: "some_string_123",
 pingback_url: "https://your-server.com/pingscript?id=$id&tag=$tag",
 },
];

axios({
 method: "post",
 url: "https://api.seermartech.cn/v3/serp/youtube/video_comments/task_post",
 headers: {
 Authorization: "Bearer smt_live_YOUR_KEY",
 "Content-Type": "application/json",
 },
 data: postArray,
})
 .then((response) => {
 // 返回任务创建结果
 console.log(response.data);
 })
 .catch((error) => {
 console.error(error.response?.data || error.message);
 });

响应示例

json
{
 "version": "0.1.20220819",
 "status_code": 20000,
 "status_message": "Ok.",
 "time": "0.0495 sec.",
 "cost": 0.0006,
 "tasks_count": 1,
 "tasks_error": 0,
 "tasks": [
 {
 "data": {
 "api": "serp",
 "function": "task_post",
 "se": "youtube",
 "se_type": "video_comments",
 "language_code": "en",
 "location_code": 2840,
 "video_id": "vQXvyV0zIP4",
 "device": "desktop",
 "os": "windows"
 },
 "result": null
 }
 ]
}

状态码与错误处理

  • 20000:请求成功
  • 40006:单次 POST 请求中任务数 100
  • 状态码请参考 /v3/appendix/errors

建议在接时同时处理两层状态:

  1. 顶层 status_code / status_message
  2. 每个任务的 tasks[].status_code / tasks[].status_message

这样可以更准确地识别部分任务失败、参数错误、限流或回调异常等。

使用建议

  • 批量提交时,建议单次控制在 100 个任务
  • 如果你需要异步处理结果,优 postback_urlpingback_url
  • 当评论抓取数量需求 20 条时,可通过 depth 控制,但需额外计费
  • 若需要稳定业务单号,建议使用 tag 进行映射

实用场景

  • 监控视频舆:定期抓取品牌官方视频或投放视频下的评论,快速发现负面反馈、用户疑问与高频诉求。
  • 分析竞品互动质量:采集竞品视频评论及信息,评估互动深度和用户参与度。
  • 识别高价值用户反馈:结合评论指标筛选高热度评论,优化、FAQ 建设和转化话术迭代。
  • 追踪区域化评论差异:按不同 location_codelanguage_code 创建任务,对比不同国家/语言环境下的评论表现。
  • 构建视频 SEO助数据集:将评论数据纳视频分析,挖掘用户真实表达中的主题词、问题词和需求词。

统一入口:官网 · LLM API · 控制台