工程實作 15 min read

yt-dlp「Could not copy Chrome cookie database」怎麼修?Windows Chrome 156 實測 4 種做法

Windows 上的 Chrome 和 Edge 開著時會鎖住 cookie 資料庫,yt-dlp 的 --cookies-from-browser 就會報 Could not copy Chrome cookie database。我在 Chrome 156 把四種做法各跑一次——流傳的 LockProfileCookieDatabase 旗標已經沒用,關掉瀏覽器或匯出 cookies.txt 才讀得到。

yt-dlp「Could not copy Chrome cookie database」怎麼修?Windows Chrome 156 實測 4 種做法
本文目錄 · 8
懶人包
  • Could not copy Chrome cookie database 的原因是 Windows 上的 Chrome/Edge 開著時會鎖住 cookie 資料庫,yt-dlp 複製不出來,底層是 PermissionError: [Errno 13]。
  • 我在 Chrome 156.0.8078.76 實測:issue 裡流傳的 --disable-features=LockProfileCookieDatabase 已經沒用,加了照樣被鎖。
  • 把那個 Chrome 完全關掉,同一個 profile 馬上讀得到 cookie(Extracted 1 cookies from chrome)。
  • 不想關瀏覽器,就匯出 Netscape 格式的 cookies.txt 用 --cookies 帶入;我用 --print-traffic 確認 cookie 真的有送出去。
  • 新版 Chrome 的 cookie 加密(yt-dlp issue #10927,到 2026-11-03 還 open)可能讓「關掉再讀」也失敗,cookies.txt 是最不受瀏覽器版本影響的路線。

這篇的起點是一支 Facebook Reel。我要拿 yt-dlp 抓下來轉逐字稿,但 Reel 要登入才看得到,不帶 cookie 的 yt-dlp 只回 ERROR: [facebook] 1849843922697876: Cannot parse data。照 yt-dlp 的標準做法加上 --cookies-from-browser chrome,換成另一個錯誤:

ERROR: Could not copy Chrome cookie database. See  https://github.com/yt-dlp/yt-dlp/issues/7271  for more info

我在 Windows 11 上把四種做法各跑一次,用 httpbin.org/cookies 當測試目標,看 cookie 到底有沒有被讀到、有沒有被送出。

yt-dlp 讀 Chromium 系瀏覽器的 cookie 時,會先把 profile 裡的 Network\Cookies(一個 SQLite 檔)複製到暫存資料夾再打開。Windows 版 Chrome 執行中會鎖住這個檔,複製就失敗。加 -v 可以看到完整的錯誤:

[debug] Extracting cookies from: "C:\Users\user\AppData\Local\Google\Chrome\User Data\Profile 1\Network\Cookies"
ERROR: Could not copy Chrome cookie database. See  https://github.com/yt-dlp/yt-dlp/issues/7271  for more info
  File "...\yt_dlp\cookies.py", line 1115, in _open_database_copy
PermissionError: [Errno 13] Permission denied: '...\Profile 1\Network\Cookies'

Edge 也一樣。我同時開著 Chrome 和 Edge,--cookies-from-browser edge 回的是同一句 Could not copy Chrome cookie database,因為 yt-dlp 用同一段程式處理所有 Chromium 系瀏覽器。issue #7271 的維護者說明也是這樣:這個問題影響 Windows 版 Chrome 和 Edge 等 Chromium 系瀏覽器。

我的測試環境

項目版本
作業系統Windows 11(10.0.26300)
Chrome156.0.8078.76
Edge156.0.4314.58
yt-dlp2026.03.17(pip 安裝)
為了不動到日常用的瀏覽器,第二到第三個測試另外開一個 Chrome,用 --user-data-dir 指到測試資料夾(下面指令用 C:\temp\chrome-test-profile 代表),先打開 https://httpbin.org/cookies/set?yc_test=hello123 寫一個測試 cookie。 終端機截圖:四個 yt-dlp 測試的結果,前兩個是紅色的 Could not copy Chrome cookie database,第三個關掉 Chrome 後顯示 Extracted 1 cookies,第四個用 cookies.txt 送出 Cookie 標頭

四種做法實測結果

做法結果代價
Chrome 開著直接 --cookies-from-browser chrome失敗,Errno 13無
Chrome 加 --disable-features=LockProfileCookieDatabase 啟動失敗,同一個錯誤要改捷徑、重開瀏覽器
把 Chrome 完全關掉再讀成功,讀到 1 個 cookie下載期間不能開瀏覽器
匯出 cookies.txt 用 --cookies 帶入成功,請求帶著 cookie 送出要裝匯出擴充功能,cookie 過期要重匯

LockProfileCookieDatabase 旗標在 Chrome 156 還有用嗎?

沒有。issue #7271 裡的暫時解法是用這個旗標啟動 Chrome:

& "C:\Program Files\Google\Chrome\Application\chrome.exe" --user-data-dir="C:\temp\chrome-test-profile" --disable-features=LockProfileCookieDatabase "https://httpbin.org/cookies/set?yc_test=hello123"

Chrome 開著的時候跑 yt-dlp:

yt-dlp -v --cookies-from-browser "chrome:C:\temp\chrome-test-profile\Default" --skip-download "https://httpbin.org/cookies"

結果還是 PermissionError: [Errno 13]。在 Chrome 156 上這個旗標沒有解開鎖。

profile 路徑格式錯誤:could not find chrome cookies database

chrome: 後面的 profile 路徑要用 Windows 格式(C:\...)。我第一次在 Git Bash 裡寫成 /c/Users/...,yt-dlp 回 could not find chrome cookies database,那是路徑格式錯,不是 cookie 的問題。

關掉瀏覽器再讀

把那個測試用的 Chrome 所有程序都關掉,同一行指令再跑一次:

Extracting cookies from chrome
Extracted 1 cookies from chrome
[debug] cookie version breakdown: {'v10': 1, 'other': 0, 'unencrypted': 0}

加上 --print-traffic 可以看到 yt-dlp 送出的請求真的帶著那個 cookie:

send: b'GET /cookies HTTP/1.1\r\nHost: httpbin.org\r\nCookie: yc_test=hello123\r\n...'

注意「關掉」要關乾淨。Chrome 關掉視窗後可能還有背景程序,工作管理員裡的 chrome.exe 全部消失才算。日常用的瀏覽器通常開著幾十個分頁,這條路的實際代價就是下載期間不能用它。

用 cookies.txt 帶入

不讀瀏覽器,改讀檔案。yt-dlp FAQ 的要求是 Mozilla/Netscape 格式,第一行必須是 # HTTP Cookie File 或 # Netscape HTTP Cookie File。我手寫一個測試檔:

# Netscape HTTP Cookie File
.httpbin.org	TRUE	/	TRUE	1893456000	yc_file	fromfile456

欄位之間是 tab,依序是網域、是否含子網域、路徑、是否限 HTTPS、到期時間(Unix 秒)、名稱、值。

yt-dlp --print-traffic --cookies cookies.txt --skip-download "https://httpbin.org/cookies"

送出的請求帶著 Cookie: yc_file=fromfile456。FAQ 建議 Windows 上把換行轉成 CRLF,我這個檔是 LF 換行,yt-dlp 2026.03.17 也讀得到。

實際要用時不會手寫,而是用擴充功能從已登入的瀏覽器匯出。FAQ 推薦 Chrome 用「Get cookies.txt LOCALLY」、Firefox 用「cookies.txt」,並且警告舊的「Get cookies.txt」(沒有 LOCALLY)被回報是惡意軟體。

關掉瀏覽器一定讀得到嗎?

不一定,這是我這次沒辦法驗證的部分。

yt-dlp issue #10927 回報的是另一個錯誤:Chrome 改了 Windows 上的 cookie 加密方式之後,--cookies-from-browser chrome 解密失敗。貢獻者 seproDev 在討論裡判斷這是 Chrome 的改動,全面上線後這條路在 Windows 可能會永久失效;他列的替代方案是改用 Firefox、Linux,或用擴充功能匯出 cookie 再用 --cookies 帶入。這個 issue 在 2026-11-03 還是 open。

我用 --user-data-dir 開的測試 profile 讀到的 cookie 是 v10,解密成功。日常用的主 profile 因為瀏覽器開著被鎖,我讀不到,所以不知道它是不是同樣的格式。換句話說:「關掉再讀」在測試 profile 上成功,用在你的主 profile 上仍可能撞到 #10927。

該選哪一條?

你的情況建議
偶爾抓一次、可以先關瀏覽器關掉 Chrome 再用 --cookies-from-browser,失敗就改 cookies.txt
瀏覽器要一直開著,或要排程自動抓匯出 cookies.txt 用 --cookies
已經有安裝 Firefox 並在上面登入試 --cookies-from-browser firefox,這是 #10927 列出的替代路線,我這次沒有實測
cookies.txt 裡是你的登入 session,拿到檔案的人等於登入你的帳號。它不要放進 git repo、不要傳到別人的機器,用完可以刪掉,下次再匯出。

回到那支 Facebook Reel

這次我讀不到 Chrome cookie,所以那支 Reel 最後沒有抓到。yt-dlp 不帶 cookie 回 Cannot parse data;Facebook 的官方嵌入播放器也回「此影片可能已不存在,或是你沒有瀏覽權限」。我的判斷是這支影片沒有公開,帶上 cookie 也只有在那個帳號本來就看得到時才有用。下一步是用「Get cookies.txt LOCALLY」從已登入 Facebook 的瀏覽器匯出 cookies.txt 再試一次。

延伸資源

常見問題

Edge 也會出現 Could not copy Chrome cookie database 嗎?

會。我 Edge 156 開著時跑 --cookies-from-browser edge,錯誤訊息一字不差,訊息裡寫的也是「Chrome」,因為 yt-dlp 對 Chromium 系瀏覽器共用同一段讀取程式。

用系統管理員身分執行 yt-dlp 有用嗎?

issue #7271 有人提到在某些情況要用系統管理員身分執行,我這次沒有測,沒辦法告訴你有沒有用。我實測可行的是關掉瀏覽器或改用 cookies.txt。

為什麼指定 profile 後出現 could not find chrome cookies database?

通常是路徑格式。我在 Git Bash 把 profile 寫成 /c/Users/...,yt-dlp 就回這個錯誤;改成 C:\Users\... 的 Windows 格式就找到 Network\Cookies 了。

cookies.txt 多久要重新匯出?

看網站的 session 什麼時候過期。檔案第五欄是每個 cookie 的到期時間;網站在伺服器端讓 session 失效時,檔案裡的 cookie 就沒用了,要重新匯出。

author
陳
陳彥彤

AI 工程師 · AI 顧問。Java 後端 8 年、AI 工程師 2 年。AI 內訓 · AI 導入顧問 · 前後端與雲端培訓。

support

覺得文章有用可以到 GitHub 給個 star,或是透過信箱聊聊 AI 內訓、AI 導入顧問或前後端 / 雲端培訓。

related

相關文章

[AI 教學] · 10min
Claude Code 安裝教學:macOS / Windows 完整步驟 + 4 大企業內訓常見踩坑
想裝 Claude Code 但不知道從哪開始?本文是企業內訓現場逐字稿整理,10 分鐘從零到第一個真實任務跑完。一行 curl 指令、不用 Node.js、不用 Docker。含 macOS 沒裝 Xcode CLT、Windows PowerShell ExecutionPolicy、proxy 環境、企業憑證攔截 4 大常見坑解法。
[工程實作] · 13min
企業 AI 客服的 8 層架構:只接模型 1/8、做滿 8/8,禮拜五改一行提示詞使用者看不出來
David Ooi 的 IG reel 把「公司自己的 AI」拆成 8 層:模型、提示詞、RAG、工具、權限、護欄、快取路由、可觀測性,我照著用 Claude Haiku 做了虛構家電品牌的客服 Chloe,只接模型的版本 8 題過 1 題,還主動稱讚對手。8 層全開後把提示詞改一行,5 輪重跑使用者看到的分數沒掉,護欄觸發從 8 次變 14 次——沒有可觀測性和回歸測試就看不到,而且判定式和關鍵字護欄本身也會誤判。
[工程實作] · 15min
韓國線上寺廟산사為什麼擠爆伺服器?我仿做 3D 禪堂壓測 2000 人,延遲從 4.2 秒降到 0.45 秒
산사是韓國個人開發者 10 月 28 日上線的 3D 線上寺廟,大家化身小沙彌坐在法堂裡合掌、叩拜,不能聊天,開站一天就湧進數萬人擠爆伺服器。我照它的 Three.js + WebSocket 架構仿做一間壓測 2000 人:全擠一間 p95 延遲 4.2 秒、分成 20 間只要 0.45 秒——同房廣播量跟人數平方成正比,分房才擋得住。