Video downloaden

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von Infinity.

    Video downloaden

    Hallo,

    Gleich mal vorneweg:
    Ich möchte keinen Youtube-Downloadlink erzeugen! Sondern den stream (Weis nicht wie man das nennt) speichern.


    Kurz erklärt:
    Youtube, myvidoe,... schicken sicher einen stream (Weis nicht wie man das nennt) und denn müsste man ja irgentwie abfangen können, und speichern. Somit müsste ja dieser Downloader alle Videoportale unterstützen, oder?


    Doch leider habe ich keinen Plan, wie ich das anstelle.

    Könnte mir da jemand auf die Sprünge helfen?


    Mit freundlichen Grüßen
    Mit freundlichen Grüßen



    GVI (Teil1/2): 80%
    Um an den Stream zu kommen, benötigst du den Downloadlink und der ist bei jedem Videoportal anders. Zu Youtube gibt es hier im Forum auch schon viele Erklärungen (auch schon teilweise von mir) und bei MyVideo ist der Downloadlink auch sehr einfach zu finden.

    Es gibt aber auch noch eine 2.te Möglichkeit, den gedownloadeten Stream abzufangen. Einfach im Browsercash nach FLV/MP4/MP3/MKV/AVI...-Dateien suchen. Dort werden die Videos meistens auch noch abgelegt. Das ist dann (vom Format abgesehen) Videoportalunabhängig.
    Das Video muss zuerst vollständig im Browser heruntergeladen werden. Das Cache-Verzeichnis kannst du in Opera z. B. mit "opera:about" anzeigen. Die Dateinamen haben zumindest bei Opera allerdings keine Endungen mehr, aber es sollte kein Problem sein, das Dateiformat anhand der ersten paar Bytes zu ermitteln.
    Firefox macht das genauso wie Opera und speichert es im Cache zwischen. Deswegen muss das Video wenn man es mehr als 1mal anschaut auch nur 1mal geladen werden, da er es nun aus dem Cache abspielt.

    Bei Firefox gibts ein addon mit dem du den Cache auslesen kannst, weiß aber gerad enicht wie das heißt.

    Bei allen anderen Browsern ist es genauso wie bei firefox oder Opera!

    Oder du nimmst einfach bit.ly/OOMqHh

    FuFu^^ schrieb:

    responsestream mit einem htttprequest selber lesen
    Hallo!

    Leider hab ich überhaubt keinen Plan, wie das funktioniert:S

    Ich habe bei msdn nachgeschaut, und bin irgentwie daraus auch nicht schlauer geworden...

    Könntest du/oder wer anderer mir das irgentwie genauer erleutern?


    Mit freundlichen Grüßen
    Mit freundlichen Grüßen



    GVI (Teil1/2): 80%
    du forderst die gewünschte datei über das http-protokoll an (dabei sollte dir der httpwebrequest helfen) und bekommst dann einen TCP-stream als "antwort" (response), mit dem du dann in deinem programm tun kannst was immer du möchtest.

    mir ist jodch spontan keine komponente bekannt, die so einfach einen flashvideo-stream in einem vb.net programm wiedergibt.

    //edit: vllt auch System.Net.WebRequest schau dir einfach beide klassen an.
    Ich habe jetzt diesen Code gefunde, weis aber nicht genau, was der macht, und ob dies schon ist, was ich gesucht habe...

    VB.NET-Quellcode

    1. Dim myWebRequest As WebRequest = WebRequest.Create("http://www.youtube.com/watch?v=IwZ29-YcNaw&feature=g-all-xit")
    2. Dim myWebResponse As WebResponse = myWebRequest.GetResponse()
    3. Dim ReceiveStream As Stream = myWebResponse.GetResponseStream()
    4. Dim encode As Encoding = System.Text.Encoding.GetEncoding("utf-8")
    5. Dim readStream As New StreamReader(ReceiveStream, encode)
    6. Console.WriteLine(ControlChars.Cr + "Response stream received")
    7. Dim read(256) As [Char]
    8. Dim count As Integer = readStream.Read(read, 0, 256)
    9. Console.WriteLine("HTML..." + ControlChars.Lf + ControlChars.Cr)
    10. While count > 0
    11. Dim str As New [String](read, 0, count)
    12. Console.Write(str)
    13. count = readStream.Read(read, 0, 256)
    14. End While
    15. Console.WriteLine("")
    16. readStream.Close()
    17. myWebResponse.Close()



    Mit freundlichen Grüßen
    Mit freundlichen Grüßen



    GVI (Teil1/2): 80%
    Wie "läd" dann aber z.B.: Firefox ein video herunter?


    Firefox lädt die Seite z. B. "http://www.youtube.com/watch?v=IwZ29-YcNaw&feature=g-all-xit". Hier ist aber noch nicht das Video enthalten! Auf der Seite (in HTML geschrieben) wird das Video über ein Flash-Object eingebunden. Der Link, mit dem der Browser das Plugin downloaden kann steht natürlich im HTML-Quellcode genauso wie einige Parameter die dem Flash-Object übergeben werden. Das Flash-Object wird dann vom Flash-Plugin ausgeführt, und an dieser Stelle erfolgt auch der Download des Videos.

    Der ResponseStream den du empfängst enthält also nur den HTML-Code, aber nicht das Video. Wo du den Downloadlink für das Video bei Youtube herunterladen kannst, hab ich hier schon einmal beschrieben:
    [VB 2010] YouTube-Downloader