Communitygithub.com

gergobalogh/finding-video

製作關於真實素材(數據、照片、衛星影像、菜單、文件)發現的短垂直影片(TikTok、Reels、Shorts),引發討論並引導用戶前往你的頁面。素材填滿畫面,網站僅作為來源顯示。

finding-video 是什麼?

此技能「gergobalogh/finding-video」旨在自動化製作關於真實世界發現的短垂直影片,適用於 TikTok、Reels 和 Shorts 等平台。其核心哲學是:產品是發現本身,而非網站。影片透過全螢幕展示真實素材(如衛星影像、菜單截圖或數據圖表)來證明一個論點,網站僅在片尾作為來源出現。技能支援多種素材類型,包括照片、掃描文件、圖表,甚至可透過第三方技能製作插畫場景。它提供了一套嚴謹的製作流程,包含三步快速審批(故事、視覺、分鏡)以確保品質,並內建多項檢查(如尺寸、色彩、音量、循環相似度、安全區域)。生成的影片規格為 1080×1920、30 fps,並輸出兩種剪輯版本(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/<專案>-finding-<日期>/);分鏡圖、腳本和素材裁切在專案的 reports/finding-<日期>/ 中,並附有 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.mjs使用 node 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 <輸出目錄> --name <名稱>(從此技能的資料夾執行)(命名剪輯為 <名稱>-A.mp4 / <名稱>-B.mp4):檢查大小、幀率、色彩、響度、循環 SSIM、安全區域和聯絡表。它會報告而不會失敗:請逐行閱讀,並親自檢查每個數字是否達到目標。
  • 查看安全區域工作表:確保沒有字幕、數字或來源行在紅色區域下。
  • 在聯絡表上以手機尺寸(360 像素寬)閱讀每條字幕。
  • 為每個主要節奏命名主角,並檢查其高度至少佔畫面高度的 40%,然後命名轉折(references/craft.md)。說明哪些節奏不符合。
  • 宣稱表格:每個螢幕上的數字都要追溯到一個檔案;每個比較都要說明其基礎(哪些披薩、哪個日期、多少數量)。
  • 逐個節奏測量聲音,包括全頻率和 250 Hz 以上(手機喇叭播放的範圍)。重點部分必須在兩者中都最大聲,而接近靜音的部分必須安靜。然後如果可能,聽一次;否則說明你沒聽過。使用 frames.mix 為重點部分設定其自己的音量,然後使用 frames.level;在披薩試點項目中,舊的壓縮器讓嗡嗡聲比重擊聲還大。

注意事項

  • 字幕如果緊鄰數字,會繼承其單位。 "the biggest gap" 放在 "4 lei" 下方會被解讀為雷伊;應說 "în procente" 或刪除它。(Treponti 在百分比上是最大的,La Crosta 在雷伊上是最大的。)

  • 不要重複使用應用程式的產品照片或 UI(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 的動態圖表規則和 vox-explain 規則(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.

相關技能