From a 345-video YouTube playlist to a news digest grouped by topic
说明与用途
该工作流处理 345 条 YouTube 视频,使用 Supadata 获取字幕,缺失字幕时使用语音转文本,利用 LLM 对每个视频进行摘要,并按主题聚合,最终生成单一 HTML 页面。
问题
Watching all videos in a large YouTube playlist is impossible, so a pipeline is needed to summarize each video and group the summaries by topic for quick consumption.
结果
The pipeline summarized 343 of 345 videos, identified 43 topics, and produced a quick‑read HTML digest.
工作流
- 1. Retrieve playlist videos and native captions via Supadata API using its Python SDK; cache transcripts on disk.
- 2. For videos lacking captions, download audio with yt-dlp and transcribe locally with faster-whisper (large‑v3‑turbo) on a 6 GB RTX 3060.
- 3. Summarize each transcript in Italian with an LLM (GLM 5.3 Flash), processing four videos at a time and splitting long transcripts into 6,500‑word chunks; optionally re‑summarize key videos.
- 4. Group summaries in batches of 20, then merge batches into a final list; large merge calls timed out, so the final merge was performed with Claude.
- 5. Convert the Markdown digest into a single HTML page with light and dark themes using a small script.
证据
The playlist IDs and the native captions come from the Supadata API through its Python SDK (client.youtube.playlist.videos() and client.transcript(..., mode="native", lang=...)).
Only those get their audio downloaded with yt-dlp and transcribed locally with faster-whisper (large-v3-turbo), batched, on a 6 GB RTX 3060: about 13 seconds for 12 minutes of audio.
Each transcript is summarized in Italian by an LLM (GLM 5.3 Flash in my setup), four videos at a time. Long transcripts are split into 6,500-word chunks.
The single merge call got too big and timed out twice, so for this run I did the final merge with Claude instead.
- 记录日期: 2026-10-08T23:40:49.700Z