SaveFileDialog in YouTube-Downloader ersetzten

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von unknown identity.

    SaveFileDialog in YouTube-Downloader ersetzten

    Hallo liebes Forum :)
    Ich habe hier einen Code und komme seit einigen Stunden nicht weiter, es wird ein SaveFileDialog aufgerufen und das Video wird am gewählten Ort gespeichert.
    Nun möchte ich den sfd durch eine normale Adresse in Textbox3 ersetzen, zusätzlich soll dazu noch die Dateiendung, welche man
    in Combobox1 auswählt, angehängt werden. Ich habe schon einiges probiert, aber es klappt nicht.
    Da wir schon dabei sind und ich euch warscheinlich schon verwirrt habe, hätte ich noch eine Bitte, nämlich ob mir
    jemand erklären kann, wie ich anhand des Videos den Namen auslesen kann. Sollte dies nur mit Quelltextarbeit möglich sein,
    versucht es bitte nicht mir zu erklären :D

    Hier der bisherige Code:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    4. SaveFileDialog1.Title = "YouTube-Downloader"
    5. SaveFileDialog1.Filter = "mp3 (*.mp3) | .mp3 |" _
    6. & "Alle Dateien (*.*) | *.* "
    7. SaveFileDialog1.ShowDialog()
    8. End Sub
    9. Private Sub SaveFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles SaveFileDialog1.FileOk
    10. WebClient1.DownloadFileAsync(New Uri(TextBox2.Text), SaveFileDialog1.FileName) '<-- war vorher, aber musste ich ja rausnehmen?
    11. Button2.Enabled = False
    12. End Sub
    13. Private Sub WebClient1_DownloadProgressChanged(ByVal sender As System.Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles WebClient1.DownloadProgressChanged
    14. ProgressBar1.Value = e.ProgressPercentage
    15. Label2.Text = e.ProgressPercentage & "%"
    16. End Sub
    17. Private Sub WebClient1_DownloadFileCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles WebClient1.DownloadFileCompleted
    18. Dim i As Integer = MessageBox.Show("Das Video wurde erfolgreich heruntergeladen, wollen sie dieses nun öffnen ?", "Download Fertig", MessageBoxButtons.YesNo)
    19. If i = 6 Then
    20. Try
    21. Dim file As String = SaveFileDialog1.FileName
    22. Process.Start(SaveFileDialog1.FileName)
    23. Catch ex As Exception
    24. MsgBox("Datei konnte nicht geöffnet werden.")
    25. End Try
    26. End If
    27. Application.Exit()
    28. End Sub
    29. Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    30. If TextBox1.Text.Contains("youtube.com/watch") = False Then
    31. MsgBox("Link nicht gültig")
    32. Exit Sub
    33. End If
    34. TextBox1.Enabled = False
    35. Dim inhalt As String = WebClient1.DownloadString(New Uri(TextBox1.Text))
    36. Dim pos1 As Integer = inhalt.IndexOf("url_encoded_fmt_stream_map=url%3D")
    37. Dim link1 As String = inhalt.Substring(pos1 + 33)
    38. Dim pos2 As Integer = link1.IndexOf("%26fallback_host")
    39. link1 = link1.Substring(0, pos2)
    40. link1 = link1.Replace("%3F", "?").Replace("%3D", "=").Replace("%26", "&").Replace("%25", "%").Replace("%2C", ",").Replace("%25", "%").Replace("%3A", ":").Replace("%2F", "/")
    41. link1 = link1.Replace("%3F", "?").Replace("%3D", "=").Replace("%26", "&").Replace("%25", "%").Replace("%2C", ",").Replace("%25", "%").Replace("%3A", ":").Replace("%2F", "/")
    42. TextBox2.Text = link1


    Ich hoffe ihr versteht mein problem und könnt mir helfen?.

    PS: Wie viele Beiträge darf man pro tag posten ? :P
    also hier ist ein kleines Beispiel zum Titel auslesen
    1). Testprojekt erstellen und einen Button und einen Webbrowser auf die Form ziehen
    2). Diesen Quelltext einfügen:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. 'Hier dein Video angeben^^
    4. WebBrowser1.Navigate("http://www.youtube.com/watch?v=ZPJlyRv_IGI&feature=g-vrec&context=G225edb2RVAAAAAAAAAA")
    5. End Sub
    6. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    7. Dim Titel As String = WebBrowser1.DocumentTitle 'Den Titel in eine Variable schreiben
    8. Titel = Titel.Replace(" - YouTube", "") 'Den Titel auf den Titel des Videos reduzieren
    9. MsgBox(Titel) 'Ausgeben...
    10. End Sub
    11. End Class

    Telcrome schrieb:

    also hier ist ein kleines Beispiel zum Titel auslesen
    1). Testprojekt erstellen und einen Button und einen Webbrowser auf die Form ziehen
    2). Diesen Quelltext einfügen:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. 'Hier dein Video angeben^^
    4. WebBrowser1.Navigate("http://www.youtube.com/watch?v=ZPJlyRv_IGI&feature=g-vrec&context=G225edb2RVAAAAAAAAAA")
    5. End Sub
    6. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    7. Dim Titel As String = WebBrowser1.DocumentTitle 'Den Titel in eine Variable schreiben
    8. Titel = Titel.Replace(" - YouTube", "") 'Den Titel auf den Titel des Videos reduzieren
    9. MsgBox(Titel) 'Ausgeben...
    10. End Sub
    11. End Class


    Danke nur ist das mit weinem webbrowser in meinem Programm sehr schlecht :D
    Du kannst den Titel auch mit RegEx aus dem QuellText auslesen

    VB.NET-Quellcode

    1. Dim Title As String = Regex.Matches(w.DownloadString("http://www.youtube.com/watch?v=qZ5mvwUSyyQ&feature=g-vrec&context=G224a8beRVAAAAAAAAAQ"), "<span id=""eow-title"" class=""long-title"".*?title=""(?<title>.*?)"">")(0).Groups("title").Value