Wie kann youtube-dl Videos herunterladen, die eine Benutzerauthentifizierung und 2FA erfordern? [geschlossen]


4

Wenn ich versuche, meine privaten Videos herunterzuladen, erhalte ich Folgendes:

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.

Wenn ich versuche, Benutzername und Kennwort zu verwenden, schlägt dies auf meinem 2FA fehl.

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.

Wenn ich versuche, --cookiesexportiert mit EditThisCookie in Chrome zu verwenden, schlägt dies ebenfalls fehl. Ich exportierte, indem ich zum Video in Chrome ging und die Cookies in eine Datei kopierte.

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

Wie kann ich mein privates Video mit youtube-dl herunterladen?

BEARBEITEN:

Ich habe auch ein App-Passwort ausprobiert, aber aus irgendeinem Grund ist dies auch für mich fehlgeschlagen:

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.

Antworten:


7

Ich konnte private Videos über die --cookiesRoute herunterladen . Ich musste die Cookies zuerst auf das Netscape-Format formatieren, eine Option in EditThisCookie. Denken Sie daran, dass Sie die Cookies nicht nur für https://youtube.com, sondern auch für https://accounts.google.com benötigen . Sie müssen dies manuell mit dem EditThisCookie Chrome-Plugin tun.

Ich musste dann das Format der mit EditThisCookie erzeugten Cookies mit korrigieren curl. Etwas wie: curl -b oldcookiefile.txt --cookie-jar newcookiefile.txt 'https://youtube.com'.

Die --cookiesFlagge kann dann mit youtube-dl verwendet werden, um private Videos herunterzuladen.

Ich habe auch einen Blog-Beitrag erstellt, der beschreibt, was ich genauer gelernt habe.


2
Verwenden Sie die Chrome-Erweiterung "cookies.txt", es ist einfacher :-) chrome.google.com/webstore/detail/cookiestxt/…
sekmo

Genial, danke Dave. Ich bin dem anderen Kommentar gefolgt und habe 'cookies.txt' verwendet. Das ging zu youtube.com, drückte den Knopf für cookies.txt und speicherte alles ab. Sie nur für youtube.com. Das folgte dem Rest deines Blogposts.
HankCa
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.