youtube-dl 登入並下載影片
帳號密碼登入
某些內容會指定必須要認證身分(登入)後,才能觀看
這種情況下, youtube-dl 有提供輸入簡單的帳號密碼的參數
-u
, --username
USERNAME 輸入帳號
-p
, --password
PASSWORD 輸入密碼
範例
youtube-dl --username "your_mail@gmail.com" --password "P@ssw0rd" "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
|
目前只剩部分網站可以用這種方法登入。
Google 有更新過 youtube 帳號的取用安全性,只能用下面的 Cookie 方式登入。
使用 Cookie 登入
Youtube-dl 可以使用 Netscape 格式的 cookie 檔案,讓伺服器端認定為已登入帳號的瀏覽器
匯出 cookie
我們可以用 EditThisCookie 幫我們匯出 Cookie
EditThisCookie Chrome擴充商店
安裝完後,進入 EditThisCookie 的設定
將輸出格式選擇 Netscape 格式
接著建立 cookie.txt 文字檔
建立完後我們到 https://youtube.com
用 EditThisCookie 插件的匯出功能複製所有 cookie
將複製到的文字貼到 cookie.txt
貼完後照前面的步驟,抓出 https://accounts.google.com 的 cookie
都完成後 cookie.txt 大概會長這個樣子
# Netscape HTTP Cookie File # http://curl.haxx.se/rfc/cookie_spec.html # This file was generated by Cookie Editor .youtube.com TRUE / TRUE 1712544730 __Secure-1PAPISID XXXXX .youtube.com TRUE / TRUE 1712544730 __Secure-1PSID XXXXX .youtube.com TRUE / TRUE 1712544730 __Secure-3PAPISID XXXXX .youtube.com TRUE / TRUE 1712544730 __Secure-3PSID XXXXX .youtube.com TRUE / TRUE 1681127908 __Secure-3PSIDCC XXXXX .youtube.com TRUE / FALSE 1687764170 _ga XXXXX .youtube.com TRUE / FALSE 1654529554 _gcl_au XXXXX .youtube.com TRUE / FALSE 1712544730 APISID XXXXX .youtube.com TRUE / FALSE 1712544730 HSID XXXXX .youtube.com TRUE / TRUE 1664713150 LOGIN_INFO XXXXX .youtube.com TRUE / TRUE 1712663916 PREF XXXXX .youtube.com TRUE / TRUE 1712544730 SAPISID XXXXX .youtube.com TRUE / FALSE 1712544730 SID XXXXX. .youtube.com TRUE / FALSE 1681127908 SIDCC XXXXX .youtube.com TRUE / TRUE 1712544730 SSID XXXXX .youtube.com TRUE / TRUE 1665142416 VISITOR_INFO1_LIVE XXXXX .youtube.com TRUE / FALSE 0 wide 0 .youtube.com TRUE / TRUE 0 YSC XXXXX
# Netscape HTTP Cookie File # http://curl.haxx.se/rfc/cookie_spec.html # This file was generated by Cookie Editor .google.com TRUE / TRUE 1712494597 __Secure-1PAPISID XXXXX .google.com TRUE / TRUE 1712494597 __Secure-1PSID XXXXX .google.com TRUE / TRUE 1712494597 __Secure-3PAPISID XXXXX .google.com TRUE / TRUE 1712494597 __Secure-3PSID XXXXX .google.com TRUE / TRUE 1681128005 __Secure-3PSIDCC XXXXX .google.com TRUE / TRUE 1652183330 1P_JAR XXXXX .google.com TRUE / TRUE 1663206405 AEC XXXXX .google.com TRUE / FALSE 1712494597 APISID XXXXX .google.com TRUE / FALSE 1712494597 HSID XXXXX .google.com TRUE / TRUE 1665402835 NID XXXXX .google.com TRUE / FALSE 1651150185 OGP XXXXX .google.com TRUE / FALSE 1651150184 OGPC XXXXX .google.com TRUE / TRUE 1712494597 SAPISID XXXXX .google.com TRUE / FALSE 1712494597 SID XXXXX .google.com TRUE / FALSE 1681128005 SIDCC XXXXX .google.com TRUE / TRUE 1712494597 SSID XXXXX myaccount.google.com FALSE / TRUE 1712544729 __Secure-OSID XXXXX myaccount.google.com FALSE / TRUE 1712544729 OSID XXXXX myaccount.google.com FALSE / TRUE 1652064730 OTZ XXXXX
|
重整格式
接著我們將剛剛的 cookie.txt 用 curl 重新整理格式
curl -b cookie.txt --cookie-jar ytcookie.txt 'https://youtube.com'
|
若是 Windows 的用戶,可以使用 Windows subsystem linux 2 (WSL2) 跑 Linux 的程式
執行完後 cookie.txt 就可以刪了,我們只要 ytcookie.txt 這個檔案
ytcookie.txt 要取甚麼名字都可以
使用 cookie 登入
用 --cookie
設定我們剛剛做好的 ytcookie.txt 就可以了
youtube-dl --cookie ./ytcookie.txt "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
|
接下來只要你沒在瀏覽器內登出帳號,ytcookie.txt 理論上就能一直使用
當然,網站那邊可能也會紀錄是這個帳號在下載影片…