iT邦幫忙

2025 iThome 鐵人賽

DAY 19
0
IT 管理

《把瑣事交給 n8n:零基礎自動化工作流實戰》系列 第 19

Day 19: 【n8n x Debug 篇 - 下】自動化影音上傳:從卡關到完整跑通

  • 分享至 

  • xImage
  •  

昨天,我們嘗試挑戰把「圖文工作流」升級成「影音工作流」,並且遇到三個常見難題:

  1. 如何修改節點,讓工作流支援影片上傳?
  2. 如何避免 Supabase duplicate(重複檔案)錯誤?
  3. 如何解決 IG / Threads 的 container 尚未完成(not ready)問題?

昨天我並沒有放完整設定,只貼了 API 文件相關截圖、節點排序的截圖,算是一個「小提示」:希望可以先動手練習,感受一下 debug 的過程。

今天,就是下集啦 —— 我會公開完整的設定流程,讓你對照看看是否和你的做法一致,或者找到新的啟發。


一、影片上傳的完整設定流程

FB 粉專 :直接發布影片

昨天所貼的官方 API 文件雖然將影片分成上傳以及發文這兩個階段,但我按照官方的方式卻一直都沒有成功,後來查閱了其他網站後(包含 YT 以及 ChatGPT),其實發現粉專的部分也可以直接利用單一節點進行上傳,像貼文一樣直接利用 Binary File 上傳即可,節點設定如下:
https://ithelp.ithome.com.tw/upload/images/20251003/20178017i9OMQJ1jNg.png

所以有時候官方文件不一定是唯一方法,可以善用各種查資料的資源!


IG Reels:修改參數支援影片

  • container 產生時:

    • media_typeREELS
    • image_url → 改為 video_url
      https://ithelp.ithome.com.tw/upload/images/20251003/20178017AMoUQVkwaA.png
  • container 發佈時:

    • Host URL → 從 default 改成 Video uploads
      https://ithelp.ithome.com.tw/upload/images/20251003/20178017q252OqUzVW.png

用 default 高機率出錯,如果沒出錯也可以用 default


Threads:影片上傳調整

  • container 產生時:
    • media_typeVIDEO
    • image_url → 改為 video_url

同樣,等到 container 建立完成後,再發佈。
https://ithelp.ithome.com.tw/upload/images/20251003/201780177tfTekbW9S.png


小補充:YouTube 上傳影片節點

想到上傳影音,肯定少不了 YouTube,而 n8n 有提供 YouTube 節點可以直接上傳影片:

  • 連接 OAuth 憑證 (參考 Google 系列憑證設定,開啟 YouTube API)
  • 節點: Upload Video
  • 參數設定
    • Title → 影片標題
    • Description → 影片描述
    • Tags → 標籤 (可以用 JSON array 格式: ["n8n","automation"])
    • Privacy Statuspublic / unlisted / private
    • Video Path → 你要上傳的影片檔案路徑(例如:/data/test.mp4
      • 如果影片是 workflow 中前一個節點產生的檔案,就用 Binary Data → Binary Property → data

二、避免 Supabase duplicate

如果你重複執行同一份檔案上傳的節點(例如測試單一節點的時候),Supabase 會回傳 duplicate 錯誤。

解法流程:

我的作法如下:

  1. 先檢查檔案是否存在 → 如果已存在(duplicate)→ 表示已存在 → 直接「取得 URL 節點」
  2. 如果未存在 → 正常上傳並取得新 URL
    https://ithelp.ithome.com.tw/upload/images/20251003/20178017CJK50lUpmm.png
  • 檢查是否存在的節點:
    https://ithelp.ithome.com.tw/upload/images/20251003/20178017pxZ29zoHsM.png

https://ithelp.ithome.com.tw/upload/images/20251003/20178017mllUPtzW8O.png

利用 supabase 的 search 方法去查,並使用 code 節點檢查回傳的 item 長度是否 =0,若 =0 表示不存在,code 設定如下:

https://ithelp.ithome.com.tw/upload/images/20251003/20178017wd9lKysWBK.png

有很多種接法,可以成功就好


三、解決 IG / Threads Container Not Ready

有時候 container 成功建立,但直接發布可能報錯,原因是:影片檔案還沒完全打包好

解法流程:

  1. 使用 HTTP Request 節點查詢 container 狀態
    • endpoint:/{container_id}?fields=status_code
  2. 如果 status_code 還不是 FINISHED,就等待幾秒鐘(我個人是等 30 秒,可以利用內建的 wait 節點)再查一次( wait 節點放在檢查後面或是 if 後面都可以)
  3. 當 status_code = FINISHED → 才發布 container
    https://ithelp.ithome.com.tw/upload/images/20251003/20178017eR3nQpVu6P.png

https://ithelp.ithome.com.tw/upload/images/20251003/201780173LG695yqUT.png

  • IG Check status HTTP Request 如下:

    • URL : https://graph.facebook.com/v23.0/{container ID}
    • fieldsstatus_code 或(status
      https://ithelp.ithome.com.tw/upload/images/20251003/201780172wwyMHhlBF.png
  • Threads Check status HTTP Request 如下:

    • URL : https://graph.threads.net/v1.0/{container ID} 注意是.net不是 .com
    • fieldsstatus_code 或(status
      https://ithelp.ithome.com.tw/upload/images/20251003/20178017BRALEThUJr.png

👉 小提醒

  • 也可以考慮加上 retry 次數上限,避免無限等待
  • 如果影片太大,等待時間可能要調整
  • status、status_code 都可以

五、結語

這兩天的內容,把「圖文」升級到「影音」,而且完整跑通了 FB、IG、Threads、YouTube 的影片上傳流程。重點其實不只是「設定成功」,而是學會了:

  • 參考各方資源,修改參數來支援新需求
  • 遇到錯誤時,先拆解流程,找出可能的解法
  • 用 Debug 迭代,讓流程從能跑 → 跑穩 → 跑順

這就是自動化的真實樣貌。設計一個工作流不是一次設定好就一勞永逸,而是持續調整,直到整個工作流足夠穩定。

到目前為止,我們的自動化重心放在「內容產生與發布」。但在實際專案裡,有時候會需要一個「中繼站」來記錄上傳結果(成功 / 失敗)、保存檔案資訊(URL、檔名、時間戳記)或是做簡單的數據分析。明天,我會帶你把 Google Sheet 變身成自動化的資料庫,讓你的內容發布流程不只是「丟出去」,還能被完整追蹤與管理。

明天,我們要解鎖 Google Sheet 在 n8n 中的應用!


上一篇
Day 18: 【n8n Debug 篇 - 上】解決 supabase 重複檔案與 Container Not Ready
下一篇
Day 20: 【n8n x Google Sheet】打造社群發文自動化儀表板
系列文
《把瑣事交給 n8n:零基礎自動化工作流實戰》20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言