mcpField
V
video-fetch-and-summarize

video-fetch-and-summarize

github.com/maystudios生产力2667 次安装11 周前更新
代码仓库

关于 video-fetch-and-summarize

video-fetch-and-summarize 是一个从视频链接下载视频并通过 Gemini 生成 Markdown 摘要的 Skill,适用于整理公开视频或用户可访问的登录内容。它支持自定义提取目标,并会跳过已处理的视频以便重复运行。

主要功能

  1. 01从链接或文本文件提取视频 URL
  2. 02下载 MP4 视频
  3. 03使用 Gemini 生成 Markdown 摘要
  4. 04支持自定义提示词或提示词文件
  5. 05跳过已有输出以便重复运行

适用场景

  1. 01整理多个视频的摘要与要点
  2. 02从视频中提取工具、价格或行动项
  3. 03汇总登录后可访问的视频
  4. 04再次运行时处理新增视频

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/maystudios/claude-skills --skill video-fetch-and-summarize

安装后在 Claude Code 中输入/video-fetch-and-summarize确认已加载。

附带文件README.mdscripts/fetch_and_summarize.py

详细介绍

视频获取与摘要

从 URL 下载视频,并通过 Gemini 为每个视频生成 Markdown 摘要。完全独立,无需其他技能。

输出结构

<output_dir>/
  <Video_Title>/
      <uploader>_<id>.mp4
      summary.md

前置条件

  • 已设置 GEMINI_API_KEY 环境变量
  • yt-dlp 和 google-genai——如果缺失,将在首次运行时自动安装
  • Python 可通过 py(Windows)或 python3 使用

脚本

scripts/fetch_and_summarize.py

用法

# Direct URLs — default summary
py scripts/fetch_and_summarize.py "https://..." "https://..." -o ./output

# File containing URLs (TXT, Markdown, or any text file)
py scripts/fetch_and_summarize.py links.txt -o ./output

# Custom prompt (inline) — replaces default summary format
py scripts/fetch_and_summarize.py "https://..." --prompt "Extract all mentioned tools and prices"

# Custom prompt (from file) — replaces default summary format
py scripts/fetch_and_summarize.py links.txt --prompt-file my-prompt.txt

# With browser cookies (for private/login-required content)
py scripts/fetch_and_summarize.py links.txt --cookies-from-browser chrome

Claude 应如何处理用户参数

用户调用此技能时:

  1. 如果用户指定了自定义提示词或提取目标(例如“提取提到的所有工具”“重点总结定价”“列出待办事项”),通过 --prompt "..." 传入。
  2. 如果用户提供了提示词文件路径,通过 --prompt-file path/to/file.txt 传入。
  3. 如果用户没有提供具体指示,则运行时不使用 --prompt,采用默认格式。
  4. 自定义提示词会完全替换默认提示词,而不是在默认提示词的基础上添加内容。

工作流

  1. 从提供的参数和/或文件中提取所有 URL(基于正则表达式,适用于任何文本格式)
  2. 对于每个 URL: a. 通过 yt-dlp --dump-json 获取视频元数据,以取得文件夹名称所需的标题 b. 将最佳画质的 MP4 视频下载到 <output>/<Title>/ c. 将 MP4 上传到 Gemini Files API,并等待其状态变为 ACTIVE d. 生成 Markdown 摘要(使用自定义或默认提示词),然后从 Gemini 存储中删除文件 e. 将摘要保存为 <output>/<Title>/summary.md
  3. 如果 MP4 和 summary.md 都已存在,则跳过该视频(重复运行时保持幂等)

下载详情(yt-dlp)

  • 格式:bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best——最佳画质,始终为 MP4
  • 文件名模式:{uploader}_{video_id}.mp4——例如 DesignMotion_DUf3nehjIg7.mp4
  • 默认设置 --no-playlist(仅下载单个视频)
  • 支持的平台:YouTube、Instagram(帖子/短视频)、TikTok、Twitter/X、Facebook、Vimeo、Reddit 等 1000 多个平台
私人内容或需要登录的内容的身份验证
py scripts/fetch_and_summarize.py links.txt --cookies-from-browser chrome
# also works with: firefox, edge, safari

用户必须已在指定浏览器中登录相应平台。

摘要详情(Gemini)

  • 模型:gemini-3-flash-preview
  • 通过 Gemini Files API 上传(支持大型视频文件)
  • 生成后会自动从 Gemini 存储中删除上传的文件(无论如何最长保留 48 小时)
  • 摘要语言与视频中说出或显示的语言一致
默认输出格式(未提供自定义提示词时)
# [Video Title]

## Summary
[2-3 sentence description of the video and its main topic]

## Key Points
- key point 1
- key point 2
- ...

## Core Content & Takeaways
[Central message and most important insight, 2-4 sentences]

---
*Auto-generated with Gemini API*

备注

  • 输出目录默认为当前工作目录
  • 文件夹名称由视频标题清理生成(最多 80 个字符,特殊字符会被替换)
  • 重复运行时会跳过已处理的视频
  • 如果 Gemini API 返回 503(过载),请重新运行脚本——已完成的视频会自动跳过

评论

支持 Markdown