跳至內容
yt-dlp

Facebook 的 yt-dlp 指令產生器

為 Facebook 影片產生 yt-dlp 指令,含大多數影片都需要的 cookies 選項。

選填。留空的話指令會以 URL 結尾,由你自己填。

你的指令

yt-dlp -f 'bv*[height<=1080]+ba/b[height<=1080]' --merge-output-format mp4 --no-playlist --cookies-from-browser chrome 'https://www.facebook.com/watch/?v=1234567890'
基本

僅音訊會擷取聲音軌並捨棄影像串流。

影片與畫質

限制高度上限。yt-dlp 仍會挑該上限以下最好的一路串流。

把分離的影像與音訊串流合併進去的檔案類型。

進階選項(3)

會取代畫質下拉選單。給已經熟悉 format 語法的人用。

不重新編碼,只重新封裝。快而且無損。

重新編碼影片。慢而且有損 —— 只在 remux 行不通時才用。

音訊

音訊要轉換成的檔案類型。

VBR 的檔案大小與品質之比最好;固定 bitrate 比較好預估大小。

字幕

內嵌會把字幕放進影片裡;另存則在旁邊寫一個獨立的 .srt 檔。

用逗號分隔。想要所有可用語言就寫 all。

播放清單與頻道

當網址同時屬於一支影片和一份播放清單時該怎麼做。

範圍與清單都可以,例如 1-10,15,或用 -5::2 表示從尾端起每隔一項取一項。

進階選項(1)

記下已經下載過的項目,於是重新執行會跳過它們。這就是讓一個頻道保持同步的做法。

片段與章節
進階選項(2)

像 *00:01:30-00:03:00 這樣的時間範圍,或章節名稱。開頭的星號表示這是時間點。

中繼資料與封面
進階選項(3)
SponsorBlock

依 SponsorBlock 資料,把社群標記的片段直接從檔案裡剪掉。

進階選項(1)

片段保留,但會被標出來,讓你自己跳過。

檔案與資料夾

欄位名稱寫在 %(...)s 裡。斜線會建立資料夾。

進階選項(4)

檔案要寫到哪裡。搭配上面的範本可以產生子資料夾。

檔名最大長度,以字元計。

篩選
進階選項(5)

YYYYMMDD,或像 now-1month 這樣的相對日期。

YYYYMMDD,或相對日期。

跳過更小的檔案。可以寫 5M、500K 之類。

跳過更大的檔案。

停下來之前要下載的檔案數量。

網路

例如 2M 或 500K。當你需要把剩下的頻寬留給別的事情時很有用。

進階選項(5)

能加快分片串流的下載。從 4 開始比較合適。

失敗的片段要重試幾次。也可以寫 infinite。

HTTP、HTTPS 或 SOCKS proxy 的網址。

讓請求看起來來自真正的瀏覽器。突然出現 403 時,這是最常見的解法。

登入與 cookies

直接讀取你的登入工作階段。私人、年齡限制或會員專屬內容都需要它。

進階選項(1)

從瀏覽器匯出的 Netscape 格式 cookies.txt。

直播
進階選項(2)

反覆檢查直到預定的直播開始。MIN-MAX 是兩次檢查之間的秒數。

疑難排解
進階選項(3)

已淘汰,應改用 --add-headers。之所以保留,是因為很多舊教學還在用它。

已淘汰,應改用 --add-headers。

依網站區分的專用選項,例如 youtube:player_client=web。

輸出與除錯
進階選項(2)
重設

Facebook 注意事項

Facebook 有很大一部分在未登入時無法存取,而較高畫質的版本往往只給已登入的工作階段。提供 cookies 能一次解決這兩件事。

如果結果看起來比你在瀏覽器裡看到的差,先列出格式看看 —— 你的工作階段能拿到的畫質階梯,通常比網頁播放器用的那一套短。

Facebook 的網址形態比 yt-dlp 處理的任何平台都多:/watch/?v=…/reel/…、社團貼文、粉專影片,還有 fb.watch 短連結。它們都落進同一個 extractor,但包著頁面的那些有時需要先把影片展開。可靠的形式是永久連結——右鍵貼文的時間戳複製那個位址;它直指媒體頁面,而不是恰好包含這支影片的動態消息。

同一支影片可以同時以三個獨立項目存在於粉專、社團和個人頁面上,畫質階梯在它們之間並不相同:粉專上傳通常帶最高版本,轉貼次之。社團影片需要是該社團成員的帳號的 cookies——看不到貼文的工作階段無法下載它,沒有選項能改變這一點。Marketplace 商品是另一套系統,yt-dlp 完全不支援。

直播重播在播完之後就像普通影片一樣,用正常選項下載即可——只有一個注意點:重播不是直播,「從頭錄製」不適用,檔案的開頭就是 Facebook 保留下來的部分。如果重播從活動中間開始,那更早的部分從未被存成影片,沒有任何設定能夠碰到平台從未儲存過的媒體。

真正行不通的有兩樣,直說比讓誰折騰一晚上便宜:Marketplace 商品,和已經過期的 Stories。其餘的失敗多半敗在存取而不是格式——這就是為什麼先查 cookies,第二步才是 -F。如果格式列表出來了但每一檔都很低,那就是你的工作階段被分到的階梯;換個帳號有時能看到更多,但沒有任何旗標能憑空造出平台不提供的更高版本。

常見問題

yt-dlp 能下載私人的 Facebook 影片嗎?
只能下載你的帳號本來就看得到的那些,用 --cookies-from-browser。你沒有的權限,是繞不過去的。
沒有 cookies 時 Facebook 會出錯。
Facebook 有很大一部分在未登入時不可用。用 --cookies-from-browser chrome 提供你的工作階段,並保持瀏覽器關閉。
為什麼畫質比瀏覽器裡看到的差?
Facebook 只把較高畫質提供給部分工作階段。用 -F 看看那個網址上有什麼可用,如果清單很短就提供 cookies。