YouTube API:按关键词搜视频并读评论
要从关键词查到一条 YouTube 视频下的评论,分三步:先按关键词搜索视频,拿到 video_id;再读这条视频的详情;最后读它的一级评论。下面每一步都是真实的接口和参数。
新账号有 50 次试用调用,之后按成功调用从预充值余额扣费,详见 定价。
三步从搜索读到评论
示例里的 nike 换成你要搜的关键词。第二、三步里的 EXAMPLE_v01 是占位符,要换成第一步结果里的 video_id(也就是 youtube.com/watch?v= 后面那 11 位,或记录的 extra.source_id)。需要 API Key,新账号有 50 次试用调用;试用调用用完后,YouTube 接口按余额计费。
按关键词搜索视频
keyword 是搜索词。可选 upload_date 按上传时间窗口筛选:hour、today、week、month(默认)、year(这是上传时间范围,不是排序)。每页约 20 条,每条的 video_id(extra.source_id)和链接用于后面的步骤。翻页时把上一页返回的 cursor 传回,has_more 为 false 时停止;没有结果时返回空结果。
YouTube 视频搜索
GET /v1/raw/youtube/searchcurl 'https://api.qovia.ai/v1/raw/youtube/search?keyword=nike' \ -H "Authorization: Bearer $QOVIA_KEY"
import os import requests resp = requests.get( "https://api.qovia.ai/v1/raw/youtube/search", params={"keyword": "nike"}, headers={"Authorization": f"Bearer {os.environ['QOVIA_KEY']}"}, timeout=30, ) resp.raise_for_status() body = resp.json() print(body["meta"]["charged_usd"], body["data"])
返回的 data 部分。示例取自接口目录,不是实时数据;列表只保留前两条,图片链接省略:
{ "data": { "items": [ { "id": "soc_you_7c265a093c9a", "src": "social", "platform": "youtube", "lang": null, "text": "Nike’s Worsening Slump Forces CEO to Rethink Turnaround\nNike Inc. is cutting jobs and embarking on a sweeping overhaul of the business as results deteriorate and test Wall Street's ...", "author": { "uid_hash": "6586b6e1f98e", "followers": null, "nickname": "Bloomberg Television", "uid": "UCIALMKvObZNtJ6AmdCLP7Lg", "unique_id": null }, "metrics": { "plays": 89001 }, "extra": { "source_id": "RTZP4M8gN0U", "title": "Nike’s Worsening Slump Forces CEO to Rethink Turnaround", "published_at": "2026-10-07T00:00:00+00:00", "video_dur_s": 358, "content_type": "video", "url": "https://www.youtube.com/watch?v=RTZP4M8gN0U" }, "prov": { "hash": "0xb3d4cc9aa6b75e13", "ts": "2026-10-22T03:30:00+08:00", "source": "live" } }, { "id": "soc_you_8ec9fc0734c3", "src": "social", "platform": "youtube", "lang": null, "text": "Rapid Recap: Nike's stock has struggled as it faces stiff competition - here’s what experts say\nCNBC's Jim Cramer, BTIG's Bob Drbul, Evercore ISI's Michael Binetti, and Permanent Portfolio's Michael Cuggino weigh in on ...", "author": { "uid_hash": "d567d3852b43", "followers": null, "nickname": "CNBC Television", "uid": "UCrp_UI8XtuYfpiqluWLD7Lw", "unique_id": null }, "metrics": { "plays": 55577 }, "extra": { "source_id": "tjeur2Hdh8w", "title": "Rapid Recap: Nike's stock has struggled as it faces stiff competition - here’s what experts say", "published_at": "2026-10-07T00:00:00+00:00", "video_dur_s": 167, "content_type": "video", "url": "https://www.youtube.com/watch?v=tjeur2Hdh8w" }, "prov": { "hash": "0x97a713ff74381ed4", "ts": "2026-10-22T03:30:00+08:00", "source": "live" } } ], "cursor": "EpEFEgRuaWtlGowDRWdRSUJCQUJTQlNDQVF0SFYxOWpSMTg0UXpkd1VZSUJDMmxxUzBNeE4w", "has_more": true, "prov": { "hash": "0x5bee0e0b8c810cc0", "ts": "2026-10-22T03:30:00+08:00", "source": "live" } } }读视频详情
video_id 是 youtube.com/watch?v= 后面那 11 位字符,可以取自上一步的结果(extra.source_id)。返回标题、简介、频道(名称、@handle、订阅数)、点赞/评论/播放数、时长、发布时间等。示例里的 EXAMPLE_v01 是占位符;视频不存在时返回 404。
YouTube 视频详情
GET /v1/raw/youtube/videocurl 'https://api.qovia.ai/v1/raw/youtube/video?video_id=EXAMPLE_v01' \ -H "Authorization: Bearer $QOVIA_KEY"
读视频的一级评论
参数同样是 video_id,示例里的仍是占位符。可选 sort:top(默认)或 newest。每页约 20 条;翻页时把上一页的 cursor 传回,has_more 为 false 时停止。没有评论或视频不存在时返回空结果。某条评论下的回复用 raw.youtube.comment_replies,传评论的 reply_cursor。
YouTube 视频评论
GET /v1/raw/youtube/commentscurl 'https://api.qovia.ai/v1/raw/youtube/comments?video_id=EXAMPLE_v01' \ -H "Authorization: Bearer $QOVIA_KEY"
更多相关接口
常见问题
video_id 从哪里来?
来自搜索(raw.youtube.search)结果里的 extra.source_id,也就是视频链接 youtube.com/watch?v=<ID> 里那 11 位字符。视频详情记录的 author.uid 是频道 ID,不要和 video_id 搞混。
怎么读一条评论下的回复?
评论接口只返回一级评论。取某条评论的 reply_cursor,传给 raw.youtube.comment_replies 的 cursor(第一页约 10 条,之后约 50 条),再按返回的 cursor 翻页,has_more 为 false 时停止。
能从频道开始吗?
可以。raw.youtube.channel 按 channel_id(UC 开头的 24 位,来自视频记录的 author.uid 或 youtube.com/channel/<ID>)读频道资料;raw.youtube.channel_videos 列出该频道的视频,拿到 video_id 后再读详情和评论。
怎么计费?
新账号有 50 次试用调用,之后从预充值余额按次扣费,只对返回了数据的成功调用收费;空结果和报错不扣费,每次返回的 meta.charged_usd 写着这次扣了多少。各接口单价见 API 参考,套餐见定价页。