谷歌视频采集教程:Python批量抓取视频结果、频道和时长(附代码)

做视频运营、内容监测、竞品视频分析的同学们,应该需要过这样的数据:某个关键词下,谷歌推荐了哪些视频、来自哪个频道、多长、什么时候发的。这篇教大家用谷歌视频搜索 API 自动化采集,返回结构化 JSON,不需要解析网页,代码可直接复制。

视频采集要拿什么

谷歌视频结果页,每条结果包含:

  • 标题:视频标题
  • 频道/来源source(频道名)
  • 链接:视频链接(link
  • 时长duration(视频长度)
  • 发布时间time / published_at
  • 缩略图thumbnail_url

拿到这些,视频选题参考、竞品频道监控、内容情报都能做。

接口与准备

我用的接口是 SerpBase(官网 serpbase.dev)的 /google/videos 端点,POST JSON + X-API-Key 认证。注册送 100 次免费搜索,不需要绑卡。

一个好消息:视频端点和网页搜索一样,每次 1 credits(比图片、地图端点便宜)。

第一步:抓一个关键词的视频

核心接口:POST https://api.serpbase.dev/google/videos

import requests

API_KEY = "在这里填你的Key"
URL = "https://api.serpbase.dev/google/videos"

resp = requests.post(
    URL,
    headers={"Content-Type": "application/json", "X-API-Key": API_KEY},
    json={"q": "python asyncio tutorial", "hl": "en", "gl": "us"},
    timeout=30,
)

data = resp.json()
for v in data.get("videos", [])[:10]:
    print(v.get("rank"), "|", v.get("title"))
    print("  频道:", v.get("source"), "| 时长:", v.get("duration"), "| 时间:", v.get("time"))
    print("  链接:", v.get("link"))
    print()

返回的 videos 数组里,每条带 titlesource(频道)、durationtimelinkthumbnail_url

第二步:批量采集并导出表格

把关键词列表化,逐个抓取,汇总成 CSV:

import requests
import csv

API_KEY = "在这里填你的Key"
URL = "https://api.serpbase.dev/google/videos"

def fetch_videos(keyword, hl="en", gl="us"):
    resp = requests.post(
        URL,
        headers={"Content-Type": "application/json", "X-API-Key": API_KEY},
        json={"q": keyword, "hl": hl, "gl": gl},
        timeout=30,
    )
    return resp.json().get("videos", [])

keywords = ["python asyncio tutorial", "python web scraping", "python 爬虫教程"]
rows = []
for kw in keywords:
    for v in fetch_videos(kw):
        rows.append([
            kw,
            v.get("title", ""),
            v.get("source", ""),
            v.get("duration", ""),
            v.get("time", ""),
            v.get("link", ""),
        ])
    print(f"{kw}: 累计 {len(rows)} 条")

with open("videos.csv", "w", newline="", encoding="utf-8-sig") as f:
    writer = csv.writer(f)
    writer.writerow(["关键词", "标题", "频道", "时长", "时间", "链接"])
    writer.writerows(rows)

print(f"已导出 {len(rows)} 条视频信息")

utf-8-sig 保证 Excel 打开中文不乱码。

第三步:筛选高质量视频(一个实用场景)

拿到数据后按频道和时长过滤,快速找出值得参考的视频:

# 找出时长在 5-20 分钟、且排名靠前的视频
candidates = []
for row in rows:
    duration = row[3]
    if duration and "分钟" in duration:
        try:
            minutes = int(duration.replace("分钟", "").strip())
            if 5 <= minutes <= 20:
                candidates.append(row)
        except ValueError:
            pass

print(f"符合条件的视频 {len(candidates)} 条")
for c in candidates[:10]:
    print(" -", c[1], "|", c[2], "|", c[3])

视频时长是内容质量的一个粗筛信号,配合排名和频道,能帮你快速定位「这个关键词下谁在做、怎么做」。

费用与建议

  • /google/videos 每次 1 credits
  • 注册送 100 次免费搜索,够跑一个完整流程
  • 标准包 $10 买 2 万次($0.50/千次),永不过期
  • 批量前先小样本验证字段,再放大规模

常见问题

Q:sourceduration 有时是空的?
A:这两个字段是从谷歌元数据文本解析的,属于可选字段,代码里用 .get() 兜底就行。

Q:没有视频卡片时返回什么?
A:文档说明,如果谷歌没渲染专门的视频卡片,接口会按新闻式结构做兼容提取,返回字段可能不同,同样用 .get() 兜底。

Q:能抓 YouTube 的完整信息吗?
A:这里拿到的是视频链接和元数据,具体视频页详情需要另查。

结语

视频采集的核心价值,是把「搜关键词、翻视频结果」变成「批量拿到结构化列表」。视频运营和竞品分析最缺的就是「这个领域谁在出内容、出的什么」——这份数据正好补上。

完整参数见 SerpBase 官方文档。先跑通第一步,看看你的行业关键词下都有哪些视频。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值