它解决什么问题
事实核查人员可以搜索文字平台,但视频在很大程度上是不透明的。同一个说法会以略有不同的措辞在几十个频道中反复出现,要记录它的传播就得观看数小时的视频。研究人员需要可搜索的字幕、能匹配改写的语义搜索,以及每次出现的可核实记录。
第一版应该包含哪些功能
- 监控一组确定的频道
- 语义搜索说法的各种改写,而不只是精确措辞
- 展示首次出现和传播过程的时间线
- 附时间戳链接的引文,便于核实
- 可导出的证据,用于报告和发表
分步实现指南
- 01
采集字幕
解析研究范围内的频道,批量处理该时间段内的视频。如果是持续性研究,就继续监控新上传的视频。
- 02
为分段生成嵌入
为每个字幕段落生成向量嵌入,以便查找含义相近的表述。
- 03
搜索说法
为该说法的几种表述生成嵌入,检索相似段落,再由审核人员或 LLM 确认哪些段落确实提出了这一说法。
- 04
生成时间线
按发布日期排列确认的匹配项,并连同频道、引文和时间戳链接一起导出。
入门代码
这个创意基于“方案 2:监控频道,新视频上传即提醒”模式。替换成你自己的频道、提示词和存储即可。
import requests
API = "https://www.youtubetranscript.dev/api/v2"
HEADERS = {"Authorization": "Bearer yt_sk_live_YOUR_KEY"}
WATCHLIST = ["@somechannel", "@anotherchannel"]
KEYWORDS = ["your brand", "competitor"]
seen = set() # persist this in a database in production
for handle in WATCHLIST:
latest = requests.post(f"{API}/channels/resolve", headers=HEADERS,
json={"handle": handle, "limit": 10}).json()
for video in latest["items"]:
if video["video_id"] in seen:
continue
seen.add(video["video_id"])
t = requests.post(f"{API}/transcribe", headers=HEADERS,
json={"video": video["video_id"]}).json()
text = t.get("data", {}).get("transcript", {}).get("text", "").lower()
hits = [k for k in KEYWORDS if k in text]
if hits:
print(f"ALERT {video['title']}: {hits}")为什么值得做
事实核查机构和研究团队能获得速度和可核实的证据。信任与安全团队以及媒体监测公司愿意为覆盖视频的工具付费。
需要避开的坑
- 把自动匹配结果当作结论:发布前务必由人工确认。
- 只搜索精确短语:说法会变形,应使用多种表述进行语义搜索。
- 丢失出处信息:为每句引文保留视频 ID、时间戳和获取日期。
关于这个创意的问题
事实核查人员如何搜索 YouTube 视频?
先转录视频,再搜索文本。语义搜索能找到关键词搜索会漏掉的改写表述。
能证明某个说法最早何时出现在 YouTube 上吗?
你可以记录在所监控频道范围内最早的出现,包括发布日期和时间戳。覆盖范围决定了这幅图景有多完整。
没有字幕的视频怎么办?
启用 AI 语音识别,没有字幕的视频也能被转录和搜索。