ScavioScavio
产品定价文档
登录开始使用
  1. 首页
  2. 教程
  3. 如何跟踪 YouTube 播放列表删除情况
教程

如何跟踪 YouTube 播放列表删除情况

使用 Scavio 的播放列表端点监控 YouTube 播放列表中是否有已删除的视频。每日差异表面删除和可用性变化。

获取免费API密钥API文档

由于视频被删除、年龄限制或删除,依赖 YouTube 精选播放列表的频道会不断丢失内容。本教程每天通过 Scavio 的 YouTube 播放列表端点跟踪播放列表删除情况,并发出差异,以便您可以在观看者注意到之前替换已删除的视频。

前置条件

  • Python 3.10+
  • Scavio API 密钥
  • YouTube 播放列表 URL 或 ID
  • SQLite 用于每日快照

操作指南

步骤 1: 获取播放列表

Scavio 返回带有状态标志的所有视频。

Python
import requests, os
API_KEY = os.environ['SCAVIO_API_KEY']

def playlist(pid):
    r = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': API_KEY},
        json={'platform': 'youtube_playlist', 'query': pid})
    return r.json().get('videos', [])

步骤 2: SQLite 快照

每个视频每天一行。

Python
import sqlite3
conn = sqlite3.connect('pl.db')
conn.execute('CREATE TABLE IF NOT EXISTS snap (date TEXT, playlist TEXT, video_id TEXT, title TEXT, status TEXT)')

def snapshot(pid, videos):
    for v in videos:
        conn.execute('INSERT INTO snap VALUES (date(\'now\'), ?, ?, ?, ?)',
            (pid, v['id'], v['title'], v.get('status', 'available')))
    conn.commit()

步骤 3: 与昨天的差异

新搬迁=昨天-今天。

Python
def diff(pid):
    y = set(r[0] for r in conn.execute('SELECT video_id FROM snap WHERE date = date(\'now\', \'-1 day\') AND playlist = ?', (pid,)))
    t = set(r[0] for r in conn.execute('SELECT video_id FROM snap WHERE date = date(\'now\') AND playlist = ?', (pid,)))
    return y - t

步骤 4: 关于移除的警报

当移除量 > 0 时,可松弛或通过电子邮件发送。

Python
def alert(removed):
    if removed:
        print(f'ALERT: {len(removed)} videos removed: {list(removed)}')

步骤 5: 安排每日跑步

UTC 时间早上 6 点的 cron 或 GitHub Actions。

Bash
0 6 * * * /usr/bin/python3 /path/to/playlist_watch.py

Python 示例

Python
import os, requests, sqlite3

API_KEY = os.environ['SCAVIO_API_KEY']
PID = 'PLxxxxxxxx'
conn = sqlite3.connect('pl.db')
conn.execute('CREATE TABLE IF NOT EXISTS snap (date TEXT, video_id TEXT)')

r = requests.post('https://api.scavio.dev/api/v1/search',
    headers={'x-api-key': API_KEY},
    json={'platform': 'youtube_playlist', 'query': PID})
for v in r.json().get('videos', []):
    conn.execute('INSERT INTO snap VALUES (date(\'now\'), ?)', (v['id'],))
conn.commit()
print('snapshot saved')

JavaScript 示例

JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
export async function snap(playlistId) {
  const r = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST',
    headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
    body: JSON.stringify({ platform: 'youtube_playlist', query: playlistId })
  });
  return (await r.json()).videos;
}

预期输出

JSON
Daily diff per playlist, highlighting removed video IDs and titles. Typical finding: 1-5% of a 200-video playlist goes unavailable per month.

相关教程

  • 如何通过 API 获取 YouTube 视频元数据
  • 如何在 n8n 中提取 YouTube 脚本
  • 如何构建 YouTube 脚本摘要管道

常见问题

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

Python 3.10+. Scavio API 密钥. YouTube 播放列表 URL 或 ID. SQLite 用于每日快照. 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
Workflow

YouTube 网红 SERP 研究工作流

Read more
Glossary

YouTube 评论提取

Read more
Comparison

Scavio vs Apify (YouTube actors)

Read more

开始构建

使用 Scavio 的播放列表端点监控 YouTube 播放列表中是否有已删除的视频。每日差异表面删除和可用性变化。

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

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

产品

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

开发者

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

替代方案

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

工具

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

© 2026 Scavio. 保留所有权利。

Featured on TAAFT
服务条款隐私政策