youtube-dl über Proxy (muss @ -Zeichen entgehen)

2469
Charm_quark

Ich versuche, youtube-dl mit dem folgenden Befehl in Windows 7 zu verwenden.

youtube-dl.exe --proxy "http://a12345:A@1@proxy.com:8080/" https://www.youtube.com/watch?v=XzZJuEDQ1a0 

Benutzername: a12345

Passwort: A @ 1

Proxy: Proxy.com

Das ist die Antwort, die ich bekomme.

 [youtube] Confirming age WARNING: Unable to confirm age: <urlopen error [Errno 10013] An attempt was made to access a socket in a way forbidden by its access permissions> [youtube] XzZJuEDQ1a0: Downloading webpage ERROR: Unable to download webpage: <urlopen error [Errno 10013] An attempt was m ade to access a socket in a way forbidden by its access permissions> (caused by URLError(error(10013, 'An attempt was made to access a socket in a way forbidden by its access permissions'),)) 

Ich vermute, dass es das @ -Zeichen im Passwort ist, aber ich kann es nicht zu umgehen scheinen, dass es als normaler Charakter behandelt wird.

mit verbose

[debug] System config: [] [debug] Benutzerkonfiguration: [] [debug] Befehlszeile

args: ["--proxy", " http: // a12345: A%401@proxy.com: 8080 / ",

" https://www.youtube.com/watch?v=2bZd5r0iPGc ", "--verbose"] [debug]

Kodierungen: locale cp1252, fs mbcs, out cp437, pref cp1252 [debug]

youtube-dl version 2014.11.27 [debug] Python version 2.7.8 -

Windows-7-6.1.7601-SP1 [Debug] Exe-Versionen: ffmpeg N-68102-, ffprobe N-68102- [Debug] Proxyzuordnung: [youtube] Bestätigung des Alters

WARNUNG: Alter kann nicht bestätigt werden:

Es wurde versucht, auf einen Socket zuzugreifen, der durch seinen Zugriff verboten ist

Berechtigungen> [youtube] 2bZd5r0iPGc: Herunterladen der Webseite FEHLER: Kann nicht

um die Webseite herunterzuladen:

um auf einen Socket zuzugreifen, der durch seine Zugriffsberechtigungen verboten ist>

(verursacht durch URLError (Fehler (10013, 'Es wurde versucht, auf a zuzugreifen

Socket auf eine Weise, die durch seine Zugriffsberechtigungen verboten ist '),))

Datei "youtube_dl \ extractor \ common.pyo", Zeile 273, in _request_webpage

Datei "youtube_dl \ YoutubeDL.pyo", Zeile 1321, in urlopen
Datei "urllib2.pyo", Zeile 404, in open> Datei "urllib2.pyo", Zeile 422, in _open
Datei "urllib2.pyo", Zeile 382, ​​in _call_chain
Datei "youtube_dl \ utils.pyo", Zeile 410, in https_open Datei "urllib2.pyo", Zeile 1184, in do_open

1
Nein, funktioniert nicht. Charm_quark vor 9 Jahren 0
Entschuldigung, ich habe gerade den Kommentar entfernt, um ihn als Antwort zu stellen. Und da es für 'wget' funktioniert, gehe ich davon aus, dass es ein Fehler in youtube-dl ist Dmitry Grigoryev vor 9 Jahren 0

2 Antworten auf die Frage

1
Dmitry Grigoryev

Sie sollten das @Zeichen in Ihrem Kennwort %40gemäß dem URI-Standard kodieren :

http://a12345:A%401@proxy.com:8080/ 

Da Sie berichten, dass dies in youtube-dl nicht funktioniert, besteht die einzige Lösung darin, URI-Sonderzeichen in Ihrem Kennwort zu vermeiden. Ändern Sie Ihr Passwort so, ALPHA / DIGIT / "-" / "." / "_" / "~"dass Sie es hinzufügen können.

Ich bin nicht sicher, wo das Problem liegt, da urllib2 das Kennwort vor der Übergabe an den Proxy ankündigt:

 if '@' in host: user_pass, host = host.split('@', 1) user_pass = base64.encodestring(unquote(user_pass)).strip() req.add_header('Proxy-Authorization', 'Basic '+user_pass) 

und urllib2.unquote("A%401")kehrt A@1wie erwartet zurück. Vielleicht sollten Sie dies youtube-dl devs melden.

Entschuldigung Kumpel, es hat nicht funktioniert. Charm_quark vor 9 Jahren 0
Abhilfemaßnahme: Ändern Sie Ihr Passwort Skaperen vor 9 Jahren 0
haha, ok, werde das versuchen, es kann mit einer anderen Anwendung verbunden sein, die Teil des Domänenkontos ist. Charm_quark vor 9 Jahren 1
Ich kann dieses System der Kodierung des @ bestätigen, da% 40 in einem Nutzernamen mit meinem Proxy und youtube-dl funktioniert. Das Problem muss auf dem Server liegen. Wenn ich jetzt nur https zum Laufen bringen könnte. gmlime vor 8 Jahren 0
-2
Inemesit Affia

Prüfen Sie, ob Youtube-dl von Ihrer Firewall blockiert wird, wenn Sie eine Firewall auf Anwendungsebene verwenden. Da es nicht digital signiert ist, kann es von einigen Firewalls standardmäßig blockiert werden

Der Fehler, der als Dateisystemzugriffsproblem auftaucht, hat mit der Tatsache zu tun, dass es sich um eine von UNIX portierte App handelt, bei der der Netzwerkzugriff möglicherweise als Dateien dargestellt wird (ich nehme an, Sie haben keine Änderungen an den Dateisystemberechtigungen vorgenommen.)

Siehe https://unix.stackexchange.com/questions/157351/why-are-are-tcp-ip-sockets-considered-open-files

Ich hatte dieses Problem und dieses Problem wurde für mich behoben Inemesit Affia vor 9 Jahren 0
Da "youtube-dl" in Python geschrieben ist, ist das, was Sie zu "Netzwerkzugriff möglicherweise als Dateien dargestellt haben", höchstwahrscheinlich falsch. geek1011 vor 9 Jahren 0
Ich hatte diesen Fehler heute, versehentlich blockierte die App mit einer Firewall, starte meinen Computer mehrmals neu, ich verwende Windows 10 Inemesit Affia vor 9 Jahren 0
Ich denke, es ist eine erste Linux-App. Wenn Sie Windows verwenden, können Sie versuchen, die App an Ihrer Firewall zu blockieren und die Ausgabe zu lesen. Sie können meine Bearbeitung auf den Link überprüfen: Von einem Kommentar aus sind Sockets Dateien. Sie bieten Zugriff auf Byteströme über die Lese- / Schreibschnittstelle, die das Herzstück dessen ist, was es heißt, eine Datei zu sein Inemesit Affia vor 9 Jahren 0