Communitygithub.com

kaustubhupadhyaya/phone-reel-pipeline

從手機素材自動生成 Instagram Reels 的端到端管線:檢查 Android 裝置、解鎖、選擇性獲取靈感、拉取媒體到 PC、剪輯影片、推送回手機並交給使用者發布。

phone-reel-pipeline 是什麼?

phone-reel-pipeline 是一個協調型 AI 代理技能,專門負責將 Android 手機上的原始影片素材,透過 PC 完整剪輯成 Instagram Reels 格式的影片,並推送回手機讓使用者手動發布。它本身不包含任何剪輯邏輯,而是依賴三個兄弟技能:phone-media-bridge(裝置連接、解鎖與媒體傳輸)、ig-edits-inspiration(從 Edits 應用程式獲取趨勢靈感)、reel-maker(在 PC 上進行完整剪輯)。此技能支援 Windows 平台(透過 ADB 與 PowerShell),工作流程包含五個階段:裝置檢查與解鎖、選擇性靈感獲取、媒體拉取、PC 剪輯、推送與發布交棒。關鍵特性包括自主解鎖手機(不需使用者觸碰螢幕)、可恢復的媒體傳輸、嚴格的推送審核閘道(絕不自動推送)以及詳實的階段報告。不支援純 PC 剪輯(應直接呼叫 reel-maker)、純靈感獲取(應直接呼叫 ig-edits-inspiration)或自動發布。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/kaustubhupadhyaya/editor-pack/tree/HEAD/skills/phone-reel-pipeline

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

phone-reel-pipeline 是做什麼的?

Android 手機到 Instagram Reels 的端到端管線。手機提供素材(以及選擇性的趨勢靈感);PC 負責所有剪輯;手機接收完成的 Reel 讓使用者手動發布。此技能負責協調其兄弟技能——它本身不包含任何腳本,也不重複任何邏輯。一次呼叫即可執行完整鏈條:代理程式自行解鎖手機(使用保管庫 PIN,使用者無需觸碰手機)並在需要靈感時自行導航 Edits 應用程式。

此儲存庫中的兄弟技能——phone-reel-pipeline 會路由到它們,請勿重新實作:phone-media-bridge 負責裝置連接、鎖定螢幕解鎖以及媒體拉取/推送,ig-edits-inspiration 負責 Edits 應用程式的靈感(唯讀擷取以及在已解鎖手機上的自主導航),reel-maker 負責 PC 端的 Reel 建置(其本身會委派給 clip-picker 和 video-tool-router——請勿直接從此處呼叫這兩個技能)。請在每個階段前閱讀位於其相對路徑的兄弟技能 SKILL.md;它們的文件對於標誌、路徑和注意事項具有權威性。

使用時機

觸發條件:「從手機製作端到端 Reel」、「從我的手機素材製作 Reel」、「手機到 Reel」、「從手機拉取並製作 Reel」,或任何在一次執行中跨越裝置 → PC → 裝置的任務。

不適用於:

  • 純 PC 剪輯,素材已在磁碟上且不涉及手機 → 直接呼叫 reel-maker。
  • 僅獲取靈感(「什麼是趨勢」、「此剪輯的路線圖」,尚未建置) → 直接呼叫 ig-edits-inspiration。
  • 發布 → 始終由使用者在手機上手動完成。此儲存庫中沒有任何技能會發布、排程或上傳任何內容——自動發布已被明確拒絕。

工作流程

階段 0 — 裝置檢查 + 解鎖

執行 adb devices -l。透過橋接腳本的鏈結(--adb 標誌、ADB 環境變數、PATH,然後是 WinGet platform-tools 後備方案)定位 adb。如果裝置列表為空,則停止並列印此使用者檢查清單:

  1. 無線:手機與 PC 連接到相同 Wi-Fi,無線偵錯已開啟(如果連線已中斷,請使用代碼重新配對並執行 adb connect <ip>:<port>)。
  2. USB:使用支援資料傳輸的傳輸線(非僅充電),檔案傳輸(MTP)模式,USB 偵錯已啟用,並在手機上接受 RSA 指紋提示。

如果裝置顯示為 unauthorized,請勿繼續——要求使用者在手機上接受 RSA 提示,然後重新執行 adb devices -l。僅在裝置列表顯示為 device 時才繼續。然後為自主執行解鎖(無需使用者觸碰):

C:\Python314\python.exe %USERPROFILE%\GitHub\editor-pack\skills\phone-media-bridge\scripts\unlock.py

ALREADY_UNLOCKED → 繼續。VAULT_ENTRY_MISSING → 透過保管庫彈出視窗收集 phone-1:password(python "%USERPROFILE%\.agents\skills\secure-vault\vault.py" gui --request "phone-1:password"),然後重新執行。完整規則請參閱 phone-media-bridge 的階段 0b。

階段 1 — 靈感(選擇性,僅在使用者想要趨勢導向剪輯時)

詢問一個問題:趨勢導向(Edits 靈感)還是直接建置(參考連結或自由形式)?如果使用者想要趨勢導向,則交棒給 ig-edits-inspiration:它會從 Edits 應用程式擷取內容(偏好唯讀擷取;根據其原則,允許在已解鎖手機上進行自主 UI 導航)並返回一個符合 reel-maker 格式的配方。該配方將成為階段 3 的建置規格。要求使用者自行導航 Edits 是快速路徑的後備方案,並非必要條件——當使用者未導航時,代理程式會驅動。如果使用者跳過靈感,則直接進入階段 2——reel-maker 的階段 1 已接受參考連結,因此使用者提供的任何連結都會原封不動地傳遞。

階段 2 — 媒體拉取

交棒給 phone-media-bridge:執行其庫存步驟,然後向使用者顯示一個精簡的每個資料夾摘要(資料夾名稱、片段數量、總大小——非完整檔案列表)並詢問一個問題(多選)要拉取哪些資料夾/片段。然後執行其拉取步驟。拉取的素材會放在連結點 skills\phone-media-bridge\scripts\phone_pull(實體路徑在 D:\EditorPackArchive)。素材保留在 D: 磁碟機——編輯器從那裡讀取,絕不複製到 C: 磁碟機。可恢復:如果手機在拉取過程中斷線,重新執行拉取步驟;請參閱注意事項。

階段 3 — PC 建置

使用階段 1 的配方(或參考連結)以及階段 2 的素材資料夾呼叫 reel-maker 流程。reel-maker 本身會委派給 clip-picker + video-tool-router——請勿在此處重複該路由。需要明確傳遞的兩件事:(a) 手機素材通常是 HEVC/HDR,因此適用 video-tool-router 的 HLG 10-bit 防護(在調色/字幕燒錄之前進行色調映射,否則顏色會沖淡);(b) HEVC 解碼速度慢,因此階段 3 將佔據大部分執行時間(請參閱 clip-picker 的注意事項)。

階段 4 — 推回(審核閘道)

嚴格規則:未經使用者明確核准本次執行中的該特定檔案,絕對不要將任何內容推送到手機。 階段 3 完成並不代表允許推送。在階段 3 結束時停止,報告本機 PC 路徑、時長和大小;詢問「推送到手機?」並僅在使用者同意時繼續。籠統的「製作 Reel」指令絕不代表推送核准。

一旦核准,交棒給 phone-media-bridge 的推送步驟(push_reel.py):將完成的 reel_<name>_vN.mp4 推送到手機上的 /sdcard/Movies/Reels。驗證檔案存在於裝置上(adb shell ls)並報告其位元組數與 PC 副本進行比對。

階段 5 — 交棒(使用者發布)

執行 phone-media-bridge 中開啟手機上 Instagram 的步驟(push_reel.py --open-app)。然後停止:使用者手動在 Instagram 應用程式中發布。絕不自動發布——已被明確拒絕。報告:Reel 路徑(手機路徑 + PC 路徑)、版本號碼以及發布前應檢查的簡短清單(字幕可讀、音訊存在、長寬比正確)。

輸出

  • 手機上的 reel_<name>_vN.mp4(/sdcard/Movies/Reels/)+ 保留在專案資料夾中的 PC 副本(有版本控制;絕不覆寫 v1)。
  • 端到端狀態報告:每個階段的通過 / 跳過 / 失敗、每個階段的實際耗時、每個階段由哪個兄弟技能處理,以及誠實的注意事項(請參閱下方)。範例格式:階段 0 通過(裝置 <serial>,透過保管庫解鎖,5 秒)→ 階段 1 跳過(使用者選擇直接建置)→ 階段 2 通過(3 個片段,1.2 GB,4 分鐘)→ 階段 3 通過(reel_<name>_v1.mp4,22 分鐘)→ 階段 4 通過(推送已驗證,大小相符)→ 階段 5 已交棒(Instagram 已開啟,使用者待發布)。

注意事項

  • 重新克隆後連結點遺失:skills\phone-media-bridge\scripts\phone_pull 是 D:\EditorPackArchive 的連結點,重新克隆後不會保留——請在階段 2 之前根據 phone-media-bridge 的文件重新建立。
  • 手機在執行中斷線:拉取可恢復(重新執行拉取步驟);推送不可恢復——重新執行 push_reel.py 並使用 adb shell ls 重新驗證。
  • 手機在執行中重新鎖定:unlock.py 會設定保持喚醒 + 30 分鐘逾時,但重新啟動或手動鎖定會重新啟動鎖定畫面——重新執行 unlock.py(PIN 保留在保管庫中,無需使用者操作)並繼續。
  • HEVC 解碼速度慢(clip-picker 的注意事項):手機素材的縮圖和動作評分比 H.264 花費更長時間——請事先說明,不要為了補償而減少取樣。
  • 絕不自動發布:不進行 Instagram 發布流程的 UI 自動化,不排程,不上傳。為使用者開啟應用程式是最後一個自動化步驟。

誠實報告規則

  • 報告每個階段實際驗證的內容 vs 假設的內容:在 adb devices -l 中看到的裝置序號(而非「手機已連接」)、透過 dumpsys 驗證的解鎖狀態(而非「手機已開啟」)、比對過的拉取位元組數(而非「檔案已複製」)、使用 adb shell ls + 大小比對驗證的推送、Instagram 已開啟(而非「Reel 已發布」)。
  • 如果某個階段被跳過(例如沒有靈感),請明確說明——絕不要暗示其輸出存在。
  • 時間誠實:報告每個階段的實際耗時;HEVC 轉碼/評分時間是真實工作,不是需要隱藏的開銷。
  • 標記品質注意事項,而不是默默地輸出:晃動的選取、沖淡的 HDR、借用音訊的重新發布限制(適用 reel-maker 階段 5 規則)。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相關技能