Communitygithub.com

发现视频(Finding Video)

制作一个关于真实素材(数据、照片、卫星图像、文档等)发现的短视频(TikTok、Reels、Shorts),引发讨论并引导用户访问你的页面。素材充满画面,网站仅显示为来源。当视频的重点是用户发现了什么(价格差距、城市扩张、令人惊讶的数字),而不是如何使用网站时使用。如需展示应用如何工作(如聊天机器人回答),请改用demo-video。

发现视频(Finding Video) 是什么?

该技能旨在帮助用户从真实素材(如数据、照片、卫星图像、菜单、文档等)中提炼出令人惊讶的发现,并制作成适合 TikTok、Reels、Shorts 的垂直短视频。其核心理念是:视频的主角是“发现”本身,而非展示网站或应用。素材应充满画面、清晰呈现,并保持一个恒定要素以便观众识别变化,最后以一个问题结束,引导用户在评论区互动。网站或来源信息仅在视频末尾以水印形式出现。该技能支持多种素材类型,包括照片、扫描件、卫星帧、文档截图、图表以及动态插画场景。对于图表和数字动画,它采用基于HTML和JavaScript的渲染器(源自 charlie947/motion-graphics-skills 的 animated-chart,MIT 许可),每个帧完全由时间参数 t 计算得出。技能提供了完整的检查流程(包括尺寸、帧率、色彩、响度、循环SSIM、安全区、联系表等),并强调严格的工作流:通过三次廉价审批(故事、画面、故事板)避免长时间渲染。注意:AI生成的素材不得用于真实地点或价格的视频,合成语音读数字常常出错,需要人工审听。最终交付物包括两个不同剪辑(A版和B版)、发布说明文本(post.txt),以及一份详细说明每个画面上数字来源的声明表格。

兼容平台~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/gergobalogh/claude-skills/tree/HEAD/skills/finding-video

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

发现视频

产品是发现,而不是网站。视频展示证明这一发现的真实素材——大而清晰,保持一个要素恒定,让观众看到变化,最后以一个人们会在评论区回答的问题结束。网站仅作为来源出现在末尾。

这个做法来源于克卢日卫星片段(同一地点,1968 → 2025,全帧图像,年份标签,两行文字,没有网站),其效果远好于在网站上漫游。

交付物

  • 两个剪辑,1080×1920,30 fps,H.264 + AAC,15–25 秒:A 以问题或第一张图像开头并可循环播放;B 直接以高潮部分开始。两者都有封面。
  • post.txt:文件与规格、发布说明、声明表格(屏幕上每个数字和线条 → 其来源文件或 URL)、图像来源、音频来源。除非用户要求,否则不包含帖子正文(代理不会起草帖子)。
  • 视频存放在仓库外的文件夹中(~/Videos/<project>-finding-<date>/);分镜、脚本和素材裁剪存放在项目的 reports/finding-<date>/ 目录下,并附带 README:包含什么内容、媒体存放位置、脚本需要什么。
  • 发布由用户负责:永远不要替用户发布。

工作流程:长时间渲染前的三次廉价审批

  1. 发现。 从项目自身数据中列出 2–4 个候选发现,每个附带其张力和基准。选择最有吸引力(金钱、城市、共同烦恼)的那个。对照数据验证每一个数字,而不是对照总结数据的页面。
  2. 素材。 针对所选发现,找到最能展示它的真实事物:保存的菜单截图、卫星帧、文档、照片、数据本身制成的图表。记录每项素材的版权(参见 references/craft.md,素材部分)。裁剪必须严格保持原样:不修饰,不添加价格。
  3. 故事检查(审批 1)。 一张拍子表:时间、画面内容、字幕、声音,以及每个拍子所陈述的主张及其来源。命名恒量(其余变化时保持不变的东西)和手法(可以用一句话概括的中心思想)。等待用户的同意或修改。
  4. 画面检查(审批 2)。 使用页面当前的设计:每次从站点源码读取其颜色、字体和图表风格,因为页面会重新设计(2026-11-06)。渲染 2–3 个全尺寸帧(frames.py --stills,或 seek_capture.mjs ... stills)并展示。等待每帧的点赞。
  5. 分镜(审批 3)。 使用 scripts/storyboard.py 绘制:按实际大小比例每个拍子一个关键帧,附带时间、声音和过渡到下一个拍子的方式。展示并等待确认。用户要求了这个检查:在获得确认之前不渲染视频(2026-11-06)。
  6. 构建。 渲染,然后运行下面的检查并自行查看每一张帧。
  7. 交付。 提供 post.txt、分镜板,并告知用户你无法检查的内容(至少用耳朵听声音),以及 2 秒停顿、观看时长和评论才是真正的评判标准。

仅当用户为本次视频说明可以跳过某个审批时才能跳过。

渲染器

根据素材选择;所有渲染器都输出 1080×1920 PNG 帧,并使用 tv-range BT.709 yuv420p 编码。

素材渲染器方式
照片、扫描件、卫星帧、文档裁剪scripts/frames.py(源自卫星片段)一个 Python frame_fn(t),它合成全帧图像,在字幕后添加 shade_top,使用 overlay/text 作为字幕;使用 synth 作为声音事件;render() 进行编码
图表或移动的数字一个具有 window.seek(t) 的 HTML 页面(下面的图表方法)+ scripts/seek_capture.mjsnode seek_capture.mjs <page.html> <out> stills 用于检查帧,然后用于视频的帧;使用 ffmpeg 编码,如 frames.encode 中所示
插图场景(氛围、隐喻)可选:cth9191/animate(MIT),第三方技能安装前询问

图表方法(来自 charlie947/motion-graphics-skills 的 animated-chart,MIT):四个状态——开始、一个变化(没有淡出和替换)、保持带有标注的高价值、返回以便循环无跳跃。每个帧完全由 t 计算。标题、标签和坐标轴从不移动。永远不要四舍五入、重新格式化或添加一个数字。构建后,在 0、1、2、4 和 7 秒处捕获帧,并在视频前检查重叠或截断的文本。

需要 numpy 和 Pillow(用于 frames.py),Playwright(用于 seek_capture.mjs,如果无法解析,则将 PLAYWRIGHT= 设置为其 node_modules/playwright),以及 ffmpeg。

检查

  • python3 ../demo-video/scripts/check.py <out dir> --name <name>(从该技能的文件夹中运行)(将剪辑命名为 <name>-A.mp4 / <name>-B.mp4):大小、帧率、色彩、响度、循环 SSIM、安全区和联系表。它会报告但不失败:阅读每一行,并对照目标自行检查每个数字。
  • 查看安全区帧:确保没有字幕、数字或来源行位于红色之下。
  • 在联系表上以手机尺寸(360 像素宽)阅读每个字幕。
  • 命名每个主要拍子的主角,并检查其高度至少占据帧高的 40%,同时命名转折点(references/craft.md)。指出那些缺少的拍子。
  • 声明表格:每个屏幕上的数字都要追溯到一个文件;每个比较都要说明其基础(哪个披萨、哪个日期、多少)。
  • 逐拍子测量声音,包括全频段和 250 Hz 以上(手机扬声器能播放的频段)。高潮部分在这两个频段都必须是最大的,而接近静音的部分必须很安静。然后如果可以的话听一遍;否则说明你没有听。使用 frames.mix 为高潮部分设置独立的音量级别,然后使用 frames.level;在披萨测试版本中,旧的压缩器让嗡嗡声比打击声更响。

注意事项

  • 字幕旁边的数字会继承其单位。 在“4 列伊”下面的“最大差距”读作列伊;请用“百分比”或去掉该字幕。(Treponti 在百分比上是最大的,La Crosta 在列伊上是最大的。)

  • 不要重复使用应用的产品照片或用户界面(Wolt 和 Glovo 的条款保留了图像权利)。将列表转录到你自己的、带有日期的中性卡片中,或者仅裁剪你需要的文本作为证据并说明其来源。

  • AI 生成的素材不得用于关于真实地点或真实价格的视频;它会被看作摆拍。氛围来自用户自己的素材、公共领域档案(检查每个项目的权利)或清晰的插画风格。

  • ElevenLabs 的“Chris”在朗读罗马尼亚数字时会出错,即使作为数字也是如此(披萨视频中的 49 和 67,许可证视频中的 88,2026-11-06)。转录无法捕捉到这一点。审听每一个朗读的数字,并在混音之前让用户先听。

  • 发布前,页面必须处于在线状态,并且如果数据发生变化,需要重新检查数字。

  • 合成语音经常会读错数字,而且转录也无法发现。 拼写出来的“optzeci”被读成了“opt zece”,转录仍然显示“Optzeci”,而带有数字的片段则是正确的。同一个数字的下一个片段再次出错,因此生成结果不一致:一旦用户批准了一个片段,就将该音频剪辑进去,不要重新生成。只有人耳可以检查发音(2026-11-06)。

规则来源

references/craft.md 包含了技巧:发现拍子表、故事规则、字幕、素材和版权、声音。来源:克卢日-纳波卡的卫星图像片段(2026-11-03)、demo-video 的技巧笔记、cth9191/animate 的故事语法(MIT)、charlie947 的 animated-chart 和 vox-explainer 规则(MIT)、StewdioAI/blank-page 的帧和转折规则(MIT),以及一次 Codex 咨询(2026-11-04)。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能