So da es hier in diesem Forum anscheinend momentan noch keine Methode existiert um den Downloadlink aus dem neuen System von Youtube zu Encodieren.
Ich habe nun dank Tsuyo, und ein bisschen Gehirn ein Tutorial gemacht.
In dem Beispiel benutze ich nun also:
Einen Button
Eine Textbox
Einen Webclient
UPDATE:
Habe nun auch möglichkeit wo Einbetten deaktiviert ist fertig gemacht. Eigentlich total einfach (einfacher als der alte code)...
Kein C&P, wer es doch macht, wird VB nie lernen sondern einfach nur so tun.
Wer die Erläuterung will sieht sich den alten Code an, wenig veränderung... !
Viel Spass damit
Alter Code:
Spoiler anzeigen
Los gehts, also ich will vorerst noch sagen, bitte kein C&P. Dieser Code ist extrem einfach gehalten und auch für alle verständnisvoll.
Fangen wir an. In der Textbox den Youtube Link, klickt man auf den Button, kriegt man den Downloadlink.
Zuerst suchen wir die ID raus. Ganz einfach:
Nun haben wir schonmal die ID des Videos.
Als nächstes fischen wir uns den Link aus dem Video raus, dazu hat Youtube für jedes Video eine generierte Datei. Die fischen wir so raus:
Hier zu beachten das fmt, dort kann man die Qualität einstellen. Hier sieht man die Qualitäten. Ich benutze HD, beziehungsweise das 'Höchste'.
Dann laden wir uns den Text erstmal als String
So nun suchen wir uns den URL, der ist versteckt und codiert, suchen wir ihn erstmal.
Er steht nach dem "url_encoded_fmt_stream_map=" Suchen wir die Stelle als Integer per:
Nun müssen wir bevor wir das Ende suchen alles codieren, Youtube hat eine Art A = B Konzept...
Sieht Kompliziert aus, guckt man aber mal genau drüber erkennt man das Youtube einfach nur versucht deren Download zu schützen.
Nun haben wir den codierten Text, jetzt fischen wir den URL raus der bei dem "&fallback_host" aufhört ebenfalls als Integer
Ok. Das wars jetzt auch schon. Der Komplizierte Teil.
Part2 ist nun träger des fast fertigen Codes.
Nun den Downloadlink als String und letzmals encodieren
Und downloaden mit dem schon vorher benutzen Webclient:
Das wars schon.
Ich hoffe ich habe es gut erklährt.
Seid nich streng, dass ist mein erstes "Tutorial".
Ich hoffe ihr könnt nun wieder Libs und YT Downloader schreiben was das Zeug hält.
Rechtschreibfehler darf man behalten ;).
Bedanken nicht vergessen !
MfG Validation
P.s. Es könnte sein das dieser Source Code durch die vielen Strings groß wird, natürlich kann man das ganze noch verkleinern, nur so kann man nach Fehlern suchen ^^.
Edit: Beispiel Projekt im Anhang.
Warnung: Beispielprojekt benutzt noch den alten Code...
Ich habe nun dank Tsuyo, und ein bisschen Gehirn ein Tutorial gemacht.
In dem Beispiel benutze ich nun also:
Einen Button
Eine Textbox
Einen Webclient
UPDATE:
Habe nun auch möglichkeit wo Einbetten deaktiviert ist fertig gemacht. Eigentlich total einfach (einfacher als der alte code)...
Kein C&P, wer es doch macht, wird VB nie lernen sondern einfach nur so tun.
VB.NET-Quellcode
- Dim inhalt As String
- inhalt = WebClient1.DownloadString(New Uri("http://www.youtube.com/watch?v=Lisa9XTRLb4")) 'Ein Beispiel Video wo Einbetten deaktiviert ist
- Dim pos As Integer = inhalt.IndexOf("url_encoded_fmt_stream_map=")
- Dim Part1 As String = inhalt.Substring(pos).Replace("%3F", "?").Replace("%3D", "=").Replace("%26", "&").Replace("%25", "%").Replace("%2C", ",").Replace("%25", "%").Replace("%3A", ":").Replace("%2F", "/").Substring(31)
- Dim Part2 As String = Part1.Substring(0, Part1.IndexOf("&fallback_host"))
- Dim end_DL_url As String
- end_DL_url = Part2.Replace("%3F", "?").Replace("%3D", "=").Replace("%26", "&").Replace("%25", "%").Replace("%2C", ",").Replace("%25", "%").Replace("%3A", ":").Replace("%2F", "/")
- WebClient1.DownloadFileAsync(New Uri(end_DL_url), "C:\Video.flv")
Wer die Erläuterung will sieht sich den alten Code an, wenig veränderung... !
Viel Spass damit
Alter Code:
Los gehts, also ich will vorerst noch sagen, bitte kein C&P. Dieser Code ist extrem einfach gehalten und auch für alle verständnisvoll.
Fangen wir an. In der Textbox den Youtube Link, klickt man auf den Button, kriegt man den Downloadlink.
Zuerst suchen wir die ID raus. Ganz einfach:
Nun haben wir schonmal die ID des Videos.
Als nächstes fischen wir uns den Link aus dem Video raus, dazu hat Youtube für jedes Video eine generierte Datei. Die fischen wir so raus:
Hier zu beachten das fmt, dort kann man die Qualität einstellen. Hier sieht man die Qualitäten. Ich benutze HD, beziehungsweise das 'Höchste'.
Dann laden wir uns den Text erstmal als String
So nun suchen wir uns den URL, der ist versteckt und codiert, suchen wir ihn erstmal.
Er steht nach dem "url_encoded_fmt_stream_map=" Suchen wir die Stelle als Integer per:
Nun müssen wir bevor wir das Ende suchen alles codieren, Youtube hat eine Art A = B Konzept...
Sieht Kompliziert aus, guckt man aber mal genau drüber erkennt man das Youtube einfach nur versucht deren Download zu schützen.
Nun haben wir den codierten Text, jetzt fischen wir den URL raus der bei dem "&fallback_host" aufhört ebenfalls als Integer
Ok. Das wars jetzt auch schon. Der Komplizierte Teil.
Part2 ist nun träger des fast fertigen Codes.
Nun den Downloadlink als String und letzmals encodieren
Und downloaden mit dem schon vorher benutzen Webclient:
Das wars schon.
Ich hoffe ich habe es gut erklährt.
Seid nich streng, dass ist mein erstes "Tutorial".
Ich hoffe ihr könnt nun wieder Libs und YT Downloader schreiben was das Zeug hält.
Rechtschreibfehler darf man behalten ;).
Bedanken nicht vergessen !
MfG Validation
P.s. Es könnte sein das dieser Source Code durch die vielen Strings groß wird, natürlich kann man das ganze noch verkleinern, nur so kann man nach Fehlern suchen ^^.
Edit: Beispiel Projekt im Anhang.
Warnung: Beispielprojekt benutzt noch den alten Code...
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Validation“ ()