ScavioScavio
产品定价文档
登录开始使用
  1. 首页
  2. 教程
  3. 如何构建 YouTube 脚本摘要管道
教程

如何构建 YouTube 脚本摘要管道

构建一个管道,通过 Scavio API 获取 YouTube 成绩单并通过法学硕士对它们进行总结。批量处理多个视频以进行内容研究。

获取免费API密钥API文档

YouTube 视频包含以音频格式锁定的有价值的信息。文字记录解锁此内容以进行搜索索引、摘要、知识库摄取和内容重新利用。本教程构建了一个完整的管道,该管道获取 YouTube 视频 URL 列表,通过 Scavio API 获取文字记录,将它们发送到 LLM 进行摘要,并输出带有关键点和时间戳的结构化摘要。

前置条件

  • Python 3.10 或更高版本
  • pip 安装请求 openai
  • Scavio API 密钥
  • OpenAI API 密钥(或任何 LLM 提供商)

操作指南

步骤 1: 从 URL 中提取视频 ID

解析 YouTube URL 以提取视频 ID。处理 youtube.com/watch 和 youtu.be URL 格式。

Python
from urllib.parse import urlparse, parse_qs

def extract_video_id(url: str) -> str:
    parsed = urlparse(url)
    if parsed.hostname in ("youtu.be",):
        return parsed.path.lstrip("/")
    return parse_qs(parsed.query).get("v", [url])[0]

步骤 2: 从 Scavio 获取成绩单

使用视频 ID 调用 Scavio YouTube 转录端点。响应包含带时间戳的文本段。

Python
def fetch_transcript(video_id: str) -> list[dict]:
    r = requests.post(
        "https://api.scavio.dev/api/v1/search",
        headers={"x-api-key": API_KEY},
        json={"platform": "youtube", "action": "transcript", "video_id": video_id}
    )
    r.raise_for_status()
    return r.json().get("transcript", [])

def segments_to_text(segments: list[dict]) -> str:
    return " ".join(seg["text"] for seg in segments)

步骤 3: 用LLM总结一下

将完整的成绩单发送给法学硕士,并附上说明以生成包含要点的结构化摘要。

Python
from openai import OpenAI

client = OpenAI()

def summarize(text: str, title: str = "") -> str:
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[
            {"role": "system", "content": "Summarize this YouTube transcript. Output: 1) One paragraph summary. 2) 5 key takeaways as bullet points."},
            {"role": "user", "content": f"Title: {title}\n\nTranscript:\n{text[:15000]}"}
        ],
        temperature=0
    )
    return response.choices[0].message.content

步骤 4: 处理一批视频

跨多个视频运行完整的管道并将结果保存到 JSON 文件。

Python
import json

def process_batch(urls: list[str]) -> list[dict]:
    results = []
    for url in urls:
        vid = extract_video_id(url)
        segments = fetch_transcript(vid)
        text = segments_to_text(segments)
        summary = summarize(text)
        results.append({"video_id": vid, "url": url, "word_count": len(text.split()), "summary": summary})
    return results

with open("summaries.json", "w") as f:
    json.dump(process_batch(URLS), f, indent=2)

Python 示例

Python
import os
import requests
from urllib.parse import urlparse, parse_qs
from openai import OpenAI

SCAVIO_KEY = os.environ.get("SCAVIO_API_KEY", "your_scavio_api_key")
client = OpenAI()

def get_video_id(url: str) -> str:
    parsed = urlparse(url)
    if parsed.hostname == "youtu.be":
        return parsed.path.lstrip("/")
    return parse_qs(parsed.query).get("v", [url])[0]

def get_transcript(vid: str) -> str:
    r = requests.post("https://api.scavio.dev/api/v1/search",
                      headers={"x-api-key": SCAVIO_KEY},
                      json={"platform": "youtube", "action": "transcript", "video_id": vid})
    r.raise_for_status()
    segments = r.json().get("transcript", [])
    return " ".join(s["text"] for s in segments)

def summarize(text: str) -> str:
    resp = client.chat.completions.create(
        model="gpt-4o", temperature=0,
        messages=[{"role": "system", "content": "Summarize this transcript in 3 bullet points."},
                  {"role": "user", "content": text[:15000]}])
    return resp.choices[0].message.content

if __name__ == "__main__":
    vid = get_video_id("https://youtube.com/watch?v=dQw4w9WgXcQ")
    text = get_transcript(vid)
    print(f"Transcript: {len(text.split())} words")
    print(summarize(text))

JavaScript 示例

JavaScript
const SCAVIO_KEY = process.env.SCAVIO_API_KEY || "your_scavio_api_key";
const { OpenAI } = require("openai");
const client = new OpenAI();

function getVideoId(url) {
  const u = new URL(url);
  if (u.hostname === "youtu.be") return u.pathname.slice(1);
  return u.searchParams.get("v") || url;
}

async function getTranscript(vid) {
  const res = await fetch("https://api.scavio.dev/api/v1/search", {
    method: "POST",
    headers: { "x-api-key": SCAVIO_KEY, "Content-Type": "application/json" },
    body: JSON.stringify({ platform: "youtube", action: "transcript", video_id: vid })
  });
  const data = await res.json();
  return (data.transcript || []).map(s => s.text).join(" ");
}

async function main() {
  const vid = getVideoId("https://youtube.com/watch?v=dQw4w9WgXcQ");
  const text = await getTranscript(vid);
  console.log(`Transcript: ${text.split(" ").length} words`);
  const resp = await client.chat.completions.create({
    model: "gpt-4o",
    messages: [{ role: "user", content: `Summarize in 3 points:\n${text.slice(0, 15000)}` }]
  });
  console.log(resp.choices[0].message.content);
}
main().catch(console.error);

预期输出

JSON
Transcript: 2847 words

Summary:
- The video discusses the evolution of web frameworks in 2026,
  highlighting FastAPI and Next.js as the leading choices for
  API-first development.
- Key takeaway: server components have fundamentally changed
  how developers think about frontend architecture.
- The speaker recommends starting with FastAPI for backend
  services and Next.js for full-stack applications.

相关教程

  • 如何通过 API 获取 YouTube 脚本
  • 如何通过 API 将实时 Web 内容输入 GPT

常见问题

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

Python 3.10 或更高版本. pip 安装请求 openai. Scavio API 密钥. OpenAI API 密钥(或任何 LLM 提供商). 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 成绩单并通过法学硕士对它们进行总结。批量处理多个视频以进行内容研究。

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

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

产品

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

开发者

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

替代方案

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

工具

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

© 2026 Scavio. 保留所有权利。

Featured on TAAFT
服务条款隐私政策