X(Twitter)的 yt-dlp 指令產生器
為 X 上的影片產生 yt-dlp 指令,檔名可預測,並帶上敏感內容所需的選項。
X 注意事項
x.com 與 twitter.com 的網址都可以用。大家在 X 上叫作 GIF 的其實是短 MP4 影片,所以它們和一般影片一樣下載;真的需要 GIF 就事後再轉。
敏感內容的貼文需要開啟了相應設定的登入工作階段。預設範本用作者與貼文 id 命名檔案,這樣即使一個資料夾裡放滿這類檔案也還翻得動。
X 已多次改換它的 API 表面,實際後果是 extractor 修復會在幾天內隨 yt-dlp 更新送達——「X 壞了」的報告大多出自幾週以上的舊安裝。先更新再排查:yt-dlp -U。訪客存取時有時無;被收回時,帶 cookies 的登入工作階段就是能走的路,也是到敏感內容的唯一一條路。
討論串與引用貼文是網址最容易搞混的地方。帶影片的推文把影片嵌在裡面;同一支影片出現在個人頁面媒體分頁上則是另一個項目。要抓整個帳號,媒體分頁的網址會分頁取走所有帶媒體的貼文;封存檔案加上出錯繼續,則能處理活躍帳號必然累積的已刪貼文。搜尋網址的下載在這裡被有意排除:結果會在請求間漂移,對一條會移動的搜尋做封存毫無意義。
X 大多數情況下以 HLS 分片加 MP4 後備的方式提供影片,所以合併很常見,ffmpeg 是第一個該檢查的相依。 「GIF」 貼文是值得知道的例外:它們和其他內容一樣以 MP4 到手,之後轉成真正的 GIF 是 ffmpeg 的活,不是 yt-dlp 的活——而一個能循環的 WebM 往往更接近傳送者的本意。
年齡限制和敏感貼文是硬牆:設定在帳號裡,不在指令裡。在瀏覽器裡登入一次、打開敏感內容設定、交出 cookies,就能用了——不存在繞開 cookies 的辦法,因為 X 在伺服器端驗證工作階段。已刪貼文和別處一樣:沒了就是沒了,從前保存鏡像的站幾年前就關閉了。