ScavioScavio
产品定价文档
登录开始使用
  1. 首页
  2. 教程
  3. 如何通过 API 获取 YouTube 视频元数据
教程

如何通过 API 获取 YouTube 视频元数据

使用 Scavio API 检索 YouTube 视频元数据,包括标题、观看次数、喜欢、频道信息和描述。无需 YouTube 数据 API 配额。

获取免费API密钥API文档

YouTube 视频元数据(标题、观看次数、点赞次数、描述、标签、频道名称和上传日期)对于内容分析、影响者研究和竞争基准测试非常有价值。 YouTube 数据 API v3 施加了严格的每日配额,限制了大规模分析。 Scavio YouTube 元数据端点按视频 ID 返回丰富的视频元数据,无需担心 YouTube API 配额问题。本教程演示如何有效地获取单个视频的元数据并批量进行多个查找。

前置条件

  • Python 3.8 或更高版本
  • 请求已安装库
  • Scavio API 密钥
  • 要查找的一个或多个 YouTube 视频 ID

操作指南

步骤 1: 获取单个视频的元数据

使用平台 youtube、操作元数据和 video_id POST 到 Scavio 端点。

Python
def get_video_metadata(video_id: str) -> dict:
    response = requests.post(
        "https://api.scavio.dev/api/v1/search",
        headers={"x-api-key": API_KEY},
        json={"platform": "youtube", "action": "metadata", "video_id": video_id}
    )
    response.raise_for_status()
    return response.json()

步骤 2: 提取关键字段

解析元数据响应以提取标题、观看次数、点赞次数和频道信息。

Python
meta = get_video_metadata("dQw4w9WgXcQ")
video = meta.get("video", {})
print("Title:", video.get("title"))
print("Views:", video.get("view_count"))
print("Likes:", video.get("like_count"))
print("Channel:", video.get("channel_name"))
print("Published:", video.get("published_at"))

步骤 3: 批量获取多个视频

循环播放视频 ID 列表并收集每个 ID 的元数据。使用 time.sleep 保持在速率限制内。

Python
import time

def batch_metadata(video_ids: list[str]) -> list[dict]:
    results = []
    for vid_id in video_ids:
        meta = get_video_metadata(vid_id)
        results.append(meta.get("video", {}))
        time.sleep(0.5)  # polite rate limiting
    return results

步骤 4: 按观看次数对视频进行排序

按观看次数对获取的视频进行排名,以确定最受欢迎的内容。

Python
videos = batch_metadata(["dQw4w9WgXcQ", "9bZkp7q19f0", "kJQP7kiw5Fk"])
sorted_videos = sorted(videos, key=lambda v: int(v.get("view_count", 0) or 0), reverse=True)
for v in sorted_videos:
    print(f"{v.get('title', 'N/A')[:50]}: {v.get('view_count')} views")

Python 示例

Python
import os
import time
import requests

API_KEY = os.environ.get("SCAVIO_API_KEY", "your_scavio_api_key")
ENDPOINT = "https://api.scavio.dev/api/v1/search"

def get_metadata(video_id: str) -> dict:
    r = requests.post(ENDPOINT, headers={"x-api-key": API_KEY},
                      json={"platform": "youtube", "action": "metadata", "video_id": video_id})
    r.raise_for_status()
    return r.json().get("video", {})

def batch(ids: list[str]) -> list[dict]:
    results = []
    for vid in ids:
        results.append(get_metadata(vid))
        time.sleep(0.3)
    return results

if __name__ == "__main__":
    ids = ["dQw4w9WgXcQ", "9bZkp7q19f0"]
    videos = batch(ids)
    for v in sorted(videos, key=lambda x: int(x.get("view_count") or 0), reverse=True):
        print(f"{v.get('title', 'N/A')[:60]}: {v.get('view_count')} views")

JavaScript 示例

JavaScript
const API_KEY = process.env.SCAVIO_API_KEY || "your_scavio_api_key";
const ENDPOINT = "https://api.scavio.dev/api/v1/search";

async function getMetadata(videoId) {
  const res = await fetch(ENDPOINT, {
    method: "POST",
    headers: { "x-api-key": API_KEY, "Content-Type": "application/json" },
    body: JSON.stringify({ platform: "youtube", action: "metadata", video_id: videoId })
  });
  const data = await res.json();
  return data.video || {};
}

async function main() {
  const ids = ["dQw4w9WgXcQ", "9bZkp7q19f0"];
  const videos = await Promise.all(ids.map(getMetadata));
  videos.sort((a, b) => (parseInt(b.view_count) || 0) - (parseInt(a.view_count) || 0));
  videos.forEach(v => console.log(`${v.title?.slice(0, 60)}: ${v.view_count} views`));
}
main().catch(console.error);

预期输出

JSON
{
  "video": {
    "video_id": "dQw4w9WgXcQ",
    "title": "Rick Astley - Never Gonna Give You Up (Official Video)",
    "channel_name": "Rick Astley",
    "channel_id": "UCuAXFkgsw1L7xaCfnd5JJOw",
    "view_count": "1547823901",
    "like_count": "17200000",
    "published_at": "2009-10-25",
    "duration": "PT3M33S",
    "description": "The official video for Rick Astley's Never Gonna Give You Up..."
  }
}

相关教程

  • 如何通过 API 获取 YouTube 脚本
  • 如何使用 YouTube 和 Google 构建趋势检测代理

常见问题

大多数开发者在15到30分钟内完成本教程。您需要一个Scavio API密钥(免费套餐即可)和可用的Python或JavaScript环境。

Python 3.8 或更高版本. 请求已安装库. Scavio API 密钥. 要查找的一个或多个 YouTube 视频 ID. Scavio API密钥注册即送50个免费积分。

可以。免费套餐注册即送50个积分,完全足够完成本教程并构建一个可运行的原型解决方案。

Scavio提供原生LangChain包(langchain-scavio)、MCP服务器以及适用于任何HTTP客户端的REST API。本教程使用 the raw REST API, 但您可以根据需要适配您选择的框架。

相关资源

Best Of

2026 年最佳 YouTube 数据 API

Read more
Best Of

无配额限制的最佳 YouTube 数据 API (2026)

Read more
Solution

API YouTube

Read more
Comparison

Scavio vs Apify (YouTube actors)

Read more
Glossary

搜索 API 供应商格局(2026)

Read more
Comparison

Octoparse (with MCP Integration) vs SERP API YouTube Endpoint (Scavio, SerpApi)

Read more

开始构建

使用 Scavio API 检索 YouTube 视频元数据,包括标题、观看次数、喜欢、频道信息和描述。无需 YouTube 数据 API 配额。

获取免费API密钥阅读文档
ScavioScavio

面向AI智能体的实时搜索API。搜索所有平台,不仅仅是Google。

产品

  • 功能
  • 定价
  • 控制台
  • 联盟计划

开发者

  • 文档
  • API参考
  • 快速开始
  • MCP集成
  • Python SDK

替代方案

  • Tavily替代方案
  • SerpAPI替代方案
  • Firecrawl替代方案
  • Exa替代方案

工具

  • JSON格式化
  • cURL转代码
  • Token计数器
  • 全部工具

© 2026 Scavio. 保留所有权利。

Featured on TAAFT
服务条款隐私政策