它解决什么问题
地方记者和居民想知道官员对某项分区调整、预算项目或学校政策说了什么。要找到答案,就得在多场会议的数小时视频里来回翻找。议程和会议纪要很少记录完整讨论,而许多地方新闻机构也已无力派记者出席每一场会议。
第一版应该包含哪些功能
- 自动导入该机构频道的每一场会议
- 说话人标签,可按官员搜索
- 跨多年会议的议题和关键词搜索
- 某个议题或地址被讨论时发送提醒
- 可分享的链接,直达录像中的精确时刻
分步实现指南
- 01
收集会议视频
解析议会的频道或会议播放列表,并持续检查新上传的视频。
- 02
带说话人转录
使用 ASR 并启用 speakerLabels,再配合已知姓名使用 speakerId,让每段内容都归属到具体发言人。会议时间长,建议先用估算接口预览费用。
- 03
按会议和发言人建立索引
将段落连同会议日期、发言人和时间戳一起存储,并加入全文搜索和语义搜索。
- 04
添加提醒
让用户保存搜索条件,如某条街道名或政策议题,当新会议中出现时通过邮件通知。
入门代码
这个创意基于“方案 3:把播放列表批量导入知识库”模式。替换成你自己的频道、提示词和存储即可。
import requests
API = "https://www.youtubetranscript.dev/api/v2"
HEADERS = {"Authorization": "Bearer yt_sk_live_YOUR_KEY"}
playlist = requests.post(f"{API}/playlists/resolve", headers=HEADERS,
json={"playlist_url": "https://www.youtube.com/playlist?list=PLAYLIST_ID",
"limit": 100}).json()
ids = [v["video_id"] for v in playlist["items"]]
batch = requests.post(f"{API}/batch", headers=HEADERS, json={
"video_ids": ids,
"format": {"timestamp": True, "paragraphs": True},
}).json()
# Large batches run async: poll GET /batch/{batch_id} until status is "completed"
for r in batch.get("results", []):
if r["status"] == "completed":
for p in r["data"]["transcript"].get("paragraphs") or []:
store(video_id=r["video_id"], start=p["start"], text=p["text"]) # your vector DB为什么值得做
地方新闻媒体、倡导团体以及房地产或政策类公司愿意为提醒和研究工具付费。公民科技项目通常依靠资助运营,或提供免费公开档案库加付费提醒。
需要避开的坑
- 对多人发言的长时间会议只依赖自动字幕:说话人标签能让档案库实用得多。
- 低估时长:会议动辄数小时,转录积压内容前先估算 ASR 额度。
- 脱离上下文发布:每句引文都链接到录像,让读者能亲耳听到。
关于这个创意的问题
能转录 YouTube 上的市议会会议吗?
能。有字幕时直接使用字幕,否则使用带说话人标签的 AI 语音识别,让长时间会议的字幕更易读。
如何识别谁在发言?
启用说话人标签来区分不同发言人,再结合已知姓名或职务列表启用说话人识别,将发言归属到具体的人。
转录一场三小时的会议要花多少钱?
AI 语音识别在不含附加功能的情况下约为每小时 40 个额度。开始之前可以用估算接口查看准确费用。