Как youtube-dl может загружать видео, которые требуют аутентификации пользователя и 2FA?

2715
Dave Parrish

Когда я пытаюсь загрузить одно из моих личных видео, я получаю следующее:

youtube-dl https://youtu.be/Q-xxxx-xxxx [youtube] Q-xxxx-xxxx: Downloading webpage [youtube] Q-xxxx-xxxx: Downloading video info webpage WARNING: Unable to extract video title ERROR: This video is unavailable. 

Когда я пытаюсь использовать имя пользователя и пароль, он не работает на моем 2FA.

youtube-dl --username=me@gmail.com https://youtu.be/Q-xxxx-xxxx Type account password and press [Return]:  [youtube] Downloading login page [youtube] Looking up account info [youtube] Logging in Type 2-step verification code and press [Return]:  [youtube] Submitting TFA code WARNING: Unable to submit TFA code: HTTP Error 400: Bad Request [youtube] Q-xxxx-xxxx: Downloading webpage [youtube] Q-xxxx-xxxx: Downloading video info webpage WARNING: Unable to extract video title ERROR: This video is unavailable. 

Если я пытаюсь использовать --cookiesэкспортированный с EditThisCookie в Chrome, то это также не удается. Я экспортировал, перейдя к видео в Chrome и скопировав куки в файл.

youtube-dl --cookies=cookies.txt https://youtu.be/Q-xxxx-xxxx Traceback (most recent call last): File "/usr/bin/youtube-dl", line 11, in <module> load_entry_point('youtube-dl==2018.6.14', 'console_scripts', 'youtube-dl')() File "/usr/lib/python3.6/site-packages/youtube_dl/__init__.py", line 472, in main _real_main(argv) File "/usr/lib/python3.6/site-packages/youtube_dl/__init__.py", line 439, in _real_main with YoutubeDL(ydl_opts) as ydl: File "/usr/lib/python3.6/site-packages/youtube_dl/YoutubeDL.py", line 414, in __init__ self._setup_opener() File "/usr/lib/python3.6/site-packages/youtube_dl/YoutubeDL.py", line 2303, in _setup_opener self.cookiejar.load() File "/usr/lib/python3.6/http/cookiejar.py", line 1784, in load self._really_load(f, filename, ignore_discard, ignore_expires) File "/usr/lib/python3.6/http/cookiejar.py", line 2007, in _really_load filename) http.cookiejar.LoadError: 'cookies.txt' does not look like a Netscape format cookies fil 

Как я могу скачать мое личное видео с YouTube?

РЕДАКТИРОВАТЬ:

Я также попробовал пароль приложения, но по какой-то причине мне это тоже не удалось:

youtube-dl --username=me@gmail.com --password=xxxxxxxxx youtu.be/Q-xxxxxxxx [youtube] Downloading login page [youtube] Looking up account info [youtube] Logging in WARNING: Unable to login: Invalid password [youtube] Q-xxxxxx: Downloading webpage [youtube] Q-xxxxxx: Downloading video info webpage WARNING: Unable to extract video title ERROR: This video is unavailable. 
0

1 ответ на вопрос

0
Dave Parrish

Мне удалось скачать частные видео по --cookiesмаршруту. Сначала мне нужно было отформатировать куки в формате Netscape, что является опцией в EditThisCookie. Помните, что файлы cookie нужны не только для https://youtube.com, но и для https://accounts.google.com . Вам придется сделать это вручную с помощью плагина EditThisCookie Chrome.

Затем мне нужно было исправить формат файлов cookie, созданных с помощью EditThisCookie curl. Что - то вроде: curl -b oldcookiefile.txt --cookie-jar newcookiefile.txt 'https://youtube.com'.

Затем этот --cookiesфлаг можно использовать с youtube-dl для загрузки частных видео.

Я также создал пост в блоге, описывающий то, что я узнал более подробно.

Используйте расширение Chrome "cookies.txt", это проще :-) https://chrome.google.com/webstore/detail/cookiestxt/njabckikapfpffapmjgojcnbfjonfjfg?hl=en sekmo 5 лет назад 1

Похожие вопросы