Es gibt einen sehr beliebten Open-Source-Befehlszeilen-Downloader youtube-dl
, der genau das tut. Es ermittelt die tatsächlichen Video- und Audiodateilinks von einem bestimmten YouTube-Link - oder einer anderen beliebten Webvideo-Site wie Vimeo, Yahoo! Video, uStream usw.
Sehen Sie sich den YouTube-Extraktor an , um zu sehen, wie das gemacht wird . Das ist einfach zu viel, um es hier zu zeigen. Für einfachere Sites gibt es andere Extraktoren . Steven Penny hat auch einen einfachen JavaScript-Downloader für YouTube, der etwas unkomplizierter ist.
Grundsätzlich muss ein Flash-Videoplayer jedoch über JavaScript initialisiert und konfiguriert werden. Einfach ausgedrückt, der Player des Flash-Objekts erhält eine URL eines zu ladenden Videostreams.
Um den Videostream zu finden, müssen Sie den HTML- und JS-Code der Videoseite analysieren, um den entsprechenden Initialisierungscode zu finden, und von dort aus versuchen, den Link zur eigentlichen MP4-Datei zu finden. Es könnte im Klartext vorliegen, aber es könnte auch im laufenden Betrieb mit bestimmten Download-Tokens generiert werden. Häufig wird das JavaScript verschleiert, um das Neuentwickeln zu erschweren. Die Videoinformationen können auch in einer XML-Datei enthalten sein, die von JS asynchron geladen wird.
Bei progressiven HTML5-Downloadvideos wird die eigentliche Quelldatei normalerweise direkt im untergeordneten source
Element des video
Tags angegeben. Wenn Sie also auf der Seite nach mp4
oder ähnlichem suchen möchten, müssen Sie dies tun . In der deutschen Nachrichtensendung Tagesschau 100 finden Sie beispielsweise:
<source src="http://media.tagesschau.de/video/2014/0626/TV-20140626-1649-5801.webl.h264.mp4" type="video/mp4">
Für fortgeschrittenere Wiedergabetechnologien wie MPEG DASH oder das HTTP Live Streaming (HLS) von Apple müssen Sie eine Metainformationsdatei analysieren, um den tatsächlichen Videostream zu erhalten. Die Metadatei ( .mpd
z. B. in DASH und .m3u8
für HLS) enthält Links zu Video- und Audiosegmenten, die Sie später kombinieren müssen, um eine abspielbare Datei zu erhalten.
Dafür gibt es keine generelle Lösung. Dies erfordert eine sorgfältige Überprüfung und Fehlerbehebung des Zielstandorts.
YouTube-Lesezeichen
So habe ich es mit JavaScript gemacht
Beginnen Sie mit dem
ytplayer.config.args
Objekt. Dieser enthält alle URLs für das Video. Es ist aufgebrochen inJedes von diesen ist ein durch Kommas getrenntes Array dessen, was ich als "Stream-Objekte" bezeichnen würde. Jedes "Stream-Objekt" enthält Werte wie diesen
Jede URL wird verschlüsselt, sodass Sie sie entschlüsseln müssen. Nun der knifflige Teil.
YouTube hat mindestens 3 Sicherheitsstufen für ihre Videos
Die RTMPE-Videos werden in der Regel für offizielle Filme in voller Länge verwendet und sind mit der SWF-Überprüfung Typ 2 geschützt. Dies gibt es seit 2011 und muss erst noch rückentwickelt werden .
Die Videos des Typs "s" sind die schwierigsten, die tatsächlich heruntergeladen werden können. Sie werden diese typischerweise auf VEVO-Videos und dergleichen sehen. Sie beginnen mit einer Unterschrift wie
Dann wird die Signatur mit einer solchen Funktion verschlüsselt
Diese Funktion ist dynamisch und ändert sich normalerweise täglich. Um es schwieriger zu machen, wird die Funktion unter einer URL wie gehostet
Dies führt zu dem Problem der Politik des gleichen Ursprungs . Grundsätzlich können Sie diese Datei nicht herunterladen,
www.youtube.com
da es sich um unterschiedliche Domänen handelt. Eine Umgehung dieses Problems ist CORS . Mit CORSs.ytimg.com
könnte dieser Header hinzugefügt werdenund es würde das JavaScript erlauben, von herunterzuladen
www.youtube.com
. Natürlich machen sie das nicht. Eine Problemumgehung für diese Problemumgehung besteht darin, einen CORS-Proxy zu verwenden. Dies ist ein Proxy, der auf alle Anfragen mit dem folgenden Header antwortetNachdem Sie also Ihre JS-Datei als Proxy gespeichert und die Funktion zum Verschlüsseln der Signatur verwendet haben, können Sie diese Funktion im Querystring zum Herunterladen eines Videos verwenden.
quelle
s
Typ Video undRTMPE
Typ Video geben?Meine Antwort: Ab dem 22. Januar 2019 kann die Verwendung dieser Methoden abgefangen werden, wenn Sie versuchen, diese zu umgehen, ohne auch Ihre Benutzerinformationen zu verknüpfen.
Warum? Da ich ein neuer Benutzer dieser Plattform bin, kann ich für die von @ Daniel-B angegebene Regel keine Kommentare abgeben . Laut neuem ToS für YouTube unter $ 6.1 G $:
Jetzt können sie die Zeitdauer für jede Anfrage herausfinden und nachverfolgen, ob Sie gegen diese Regeln verstoßen. Wie ist es jetzt möglich, wenn dieses Szenario gegeben ist und Ihre externe IP-Adresse bekannt ist, auch wenn Sie ein VPN verwenden, um sich zu schützen, ohne Benutzerdetails mit einem Dienst zu verknüpfen.
quelle