Instagram 的 yt-dlp 指令產生器
為 Instagram 的貼文與 reels 產生 yt-dlp 指令。cookies 預設開啟,因為沒有它幾乎什麼都做不了。
Instagram 需要登入工作階段
Instagram 對未登入的請求幾乎什麼都不給,所以 --cookies-from-browser 實際上是必需的,而非選填。執行指令前請關掉瀏覽器:Chrome 與 Edge 在執行時會鎖住自己的 cookies 資料庫。
輪播貼文會被當成播放清單,所以要把播放清單處理設為整份播放清單才能取到全部內容。Stories 需要已追蹤該帳號的工作階段,而且 24 小時後就消失。
Instagram 對自動化存取越來越不信任,一次下載太多太快的工作階段會被要求重新登入——徵兆就是昨天還能用的指令今天回傳登入頁面。用專門的小帳號而不是主帳號,每隔一陣子正常登入保持 cookies 新鮮,並且接受這樣使用的帳號偶爾會被標記,無論指令寫得多小心。這是平台的代價,不是 yt-dlp 的 bug。
貼文、reels 與精選動態走同一個 extractor,但不同工作階段看到的東西不一樣。你追蹤的帳號的 reels 能正常下載;探索頁的 reels 對從未接觸過這類內容的工作階段常常拒絕。精選動態——釘在個人頁面上的那些限時動態圈——每一個都作為自己限時動態的播放清單下載。IGTV 已退役:舊連結有時還能解析,但沒有任何新東西在用它。
Instagram 的限速比 yt-dlp 日常面對的任何平台都狠。同時下載 fragment 只會讓事情更糟而不是更好;一次取一項、每次執行之間留出停頓,才是活得下去的模式。多項目的執行在中途失敗是常態——封存檔案加上出錯繼續,會讓重試變成續傳而不是從頭再來,這很重要:等執行跑完,最早那些項目的 CDN 連結通常已過期,全量重跑只會重新抓頁面而不是媒體。
無法挽回的東西:你沒追蹤的私人帳號的貼文、過了 24 小時的 Stories、以及在你執行指令之前就被刪掉的一切。抓回來的頁面裡的 CDN 連結很快就過期,一小時前還能用的媒體網址現在可能拒絕——別重試舊連結,重新抓貼文頁面。這種過期也是「儘早下載而不是以後再說」的理由:Instagram 從不承諾讓媒體一直可達,而它確實說到做到。