reel-scout

短影音拆解 · 本機優先

v1.5.0 · MIT · OPEN SOURCE

HONEST LIST

誠實清單

這一頁只寫實際遇到過的事。「可能會有的問題」不寫—— 那會讓它從誠實清單退化成免責聲明,而免責聲明沒有人讀。 每一條都附怎麼辦,否則它只是抱怨。

還開著的

OPEN

Mac 上的轉錄是純 CPU,長片會很慢

faster-whisper 用的 CTranslate2 在 macOS 上沒有 Metal 路徑,所以它跑在 CPU 上——實測處理時間約為影片長度的 1.2 倍,比即時播放還慢。一支 3 小時 39 分的片跑了 4 小時 28 分。

怎麼辦 短片沒感覺。長片先在別處用 mlx-whisper(走 Metal,同一支片約 9–53 分鐘)轉好,再 ingest 進來。工具內建 mlx 後端是 issue #113。 #113

繁簡混雜的偵測結果拿不到

逐字稿裡出現簡繁混雜時工具會偵測到,但那個結果只印在那一次執行的 stderr 上,沒有寫進資料庫——所以事後查不到哪幾支有問題。

怎麼辦 目前只能在跑的當下看輸出。要讓它可查是 issue #114。 #114

已知且不會改的設計邊界

BY DESIGN

Instagram 有登入牆

IG 的部分影片不帶 cookies 就抓不到。

怎麼辦 從 Chrome 或 Brave 匯出 cookies,設 IG_COOKIES_FILE 或用 --cookies 指定。Safari 的 binarycookies 格式讀不了。

Threads 預設關閉——能抓,但要你自己決定冒充爬蟲

Threads 對瀏覽器回登入牆,對搜尋引擎爬蟲回完整的伺服器渲染頁——工具讀的就是後者頁內那段 JSON,裡面帶免 cookie 的影片直連。2026-10-05 實測 5/5 解析並下載成功,涵蓋單支影片、輪播、文字貼文內嵌影片三種版型。但要拿到那一頁,請求得自稱是搜尋引擎爬蟲——也就是冒充;而 Threads 的 robots.txt 開宗明義寫著未經書面許可禁止自動化蒐集。所以這個功能預設關閉。順帶,「改用 IG 網址」那招仍然不通——同一個 ID 餵給 instagram.com/p/ 會被拒,而同一次呼叫裡的 IG reel 對照組是成功的,所以那不是 cookies 問題,是兩個不同的物件庫。

怎麼辦 要用就自己在 .env 設 THREADS_USER_AGENT,後果自負,而且只拿來解析你親手挑的單則貼文——不排程、不餵程式產生的網址清單、不碰搜尋頁。量要大就走官方 Threads API。Threads 哪天不再給那一頁,工具直接報錯;那時候該停,不是去找一個更像真人的 UA。

重跑轉錄要用原本的網址,不要用本機檔案路徑

用本機路徑會被當成一支新的影片建一列新資料,於是同一支片在庫裡有兩份、分析散在兩邊。

怎麼辦 重跑一律帶原本的 URL。

MCP server 的工作目錄會決定它開哪個資料庫

在錯的目錄啟動時它會安靜地開一個空資料庫——看起來一切正常,只是什麼都查不到。

怎麼辦 設 REEL_SCOUT_DATA 指到你的資料目錄,不要靠工作目錄。

分數會隨模型與批次整體位移,而且它擠得很緊

四維評分是排序器不是成績單。換一批片、或換一顆大小不同的模型,分數會整體位移,公差大致 ±0.5 分。作者語料 190 支裡一半擠在 6.8–7.8,換一顆模型就足以洗牌。

怎麼辦 把 ±0.5 分以內當同一級。固定一套模型,要換就整批重跑;reel-scout stats 按 model_used 分組,不會把兩把尺平均成一個數。

畫面上的字有兩種,OCR 不會幫你分

入鏡的字(場景裡本來就有的)跟作者疊上去的字(他想告訴你的)。實測過一支 25 秒的咖啡拉花:OCR 讀到七條,其中六條是圍裙上印的 Coffee Master,而作者真正疊上去的是零條。把那六條當成「他想表達的重點」去讀,會得出完全相反的結論。

怎麼辦 看字有沒有跟著鏡頭動:停在畫面同一個位置的多半是疊上去的,跟著物體走的是入鏡的。

平台趨勢爬取刻意不做

「抓現在流行什麼」是最容易被平台擋掉的功能,而一個三個月後就壞掉的功能比沒有功能糟。

怎麼辦 自己決定要拆哪些片,貼網址進來。

沒有頻道這個單位

資料庫裡沒有 channel 表,唯一的把手是上傳者名稱——而那是一段自由文字,同一個人可能寫成兩種樣子。

怎麼辦 跨頻道的統計目前要自己對。

修掉的那些

FIXED

這些列出來不是炫耀,是為了讓上面兩節讀得出方向: 它們全都是「跑得動,然後結果悄悄不對」那一類—— 最難發現、也最值得當 bug 處理的那一類。

原本會發生什麼怎麼修的
抓回 AV1 編碼導致自家檢視器播不出來下載時加編碼守門
關鍵楨取樣全塌在片頭,長片只看得到開場排序後才截斷
繁體講者的逐字稿被轉成簡體從源頭給種子,不在事後轉換
挑到 YouTube 的機器翻譯字幕軌,國語片的逐字稿變成英文譯文且無警告翻譯軌一定帶第二個語言代碼,據此排除
analyze / batch 整批失敗仍然回傳成功退出碼反映實際結果
跑不成的片以 0.0 分進入語料,拉低所有統計無效片另記,統計排除並報排除數
同一個輸出目錄跑第二批就蓋掉第一批的紀錄每批獨立

全部 issue →  更新紀錄 →