VB Download von Dateien die durch php o.ä. automatisch gedownloadet werden.

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von TheThyristor.

    VB Download von Dateien die durch php o.ä. automatisch gedownloadet werden.

    Moin,
    für ein Programm möchte ein Online-Video in eine mp3 Datei konvertieren. Dazu habe ich mir den dienst 2conv.com ausgesucht.
    Den link zu video sende ich mit einer POST anfrage an die Website, funktioniert auch so weit.Das Problem ist, das ich das fertige video nur im Browser herunterladen kann, da es keine Dateiendung etc. gibt.
    Ich vermute einfach mal das da ganze durch PHP oder JS funktioniert.
    Hinter dem Download Button versteckt sich dieser link(direkt download):2conv.com/de/download/direct/mp3/yt_bDygS0a6Tgo/

    ich weiß nur nicht wie ich die Datei durch mein Programm speichern soll.
    Download per Webclient funktioniert gar nicht,der Download über ein HttpRequest funktioniert auch nicht, da man direkt nach dem download auf die Hauptseite weitergeleitet wird schreibt er mir dann den Quellcode von der Hauptseite in die Datei, die ich mit dem Streamwriter geschrieben habe.
    Ich benutze Visual Basic noch nicht so lange, weshalb ich mich bei dem HttpRequest an dem im form existierendem Beispiel orientiert habe.
    Desweiteren habe ich noch den download über den Webbrowser gefunden. In einem Forum hat jemand vorgeschlagen, den sich öffnenden Dialog mit dem senden von Tasten zu bestätigen.
    Allerdings bin ich davon nicht sonderlich von der Lösung überzeugt(Funktioniert auch nicht wirklich ).

    Ich habe den Code mal angehängt, vielleicht kann mir da ja jemand helfen!
    Achja falls jemand den link ausprobieren sollen, der funktioniert nur einmal, daher müsst man ein neues video konvertieren.

    VB.NET-Quellcode

    1. ... Imports ...
    2. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    3. dlFile("https://2conv.com/de/download/direct/mp3/yt_bDygS0a6Tgo/")
    4. End Sub
    5. Public Function dlFile(ByVal url As String)
    6. Dim request As System.Net.WebRequest = System.Net.WebRequest.Create(url)
    7. Dim byteArray() As Byte = Encoding.UTF8.GetBytes("")
    8. request.Proxy = Nothing
    9. request.Method = "POST"
    10. request.ContentType = "application/x-www-form-urlencoded"
    11. request.ContentLength = byteArray.Length
    12. Dim DataStream As Stream = request.GetRequestStream()
    13. DataStream.Write(byteArray, 0, byteArray.Length)
    14. DataStream.Close()
    15. Dim Response As HttpWebResponse = request.GetResponse()
    16. DataStream = Response.GetResponseStream()
    17. Dim reader As New StreamReader(DataStream)
    18. Using sw As StreamWriter = New StreamWriter("test.mp3")
    19. sw.Write(reader.ReadToEnd)
    20. sw.Close()
    21. End Using
    22. reader.Close()
    23. DataStream.Close()
    24. Response.Close()
    25. Return True
    26. End Function


    Und fals es irgendetwas ausmacht: Ich benutze VB Express 2010
    Gruß,Lasse
    @TheThyristor Willkommen im Forum. :thumbup:
    MP3 ist ein Audio-Format, Du meinst waharscheinlich MP4.
    Nimm dafür FFMPEG heise.de/download/product/ffmpeg-53902
    Elementar einfacher Aufruf, gut automatisierbar.
    Schreibe eine Batch mit Deinen Dateinamen und ruf die per Process.Start(...) auf.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo @RodFromGermany,
    erstmal danke für deine Antwort! Nein ich meinte das schon richtig mit mp3. Das Problem liegt nicht beim konvertieren, sondern beim downloaden. Da hilft mir ffmpeg beim downloaden nicht sonderlich viel. Aber durch deine Idee mit einem externen Programm das video herunterzuladen habe ich ein commandline tool gefunden, was das ganze etwas einfacher macht.

    Gruß, Lasse