Youtube Download URl Aus Link extrahiren

  • VB.NET

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

    Youtube Download URl Aus Link extrahiren

    Hallo Zusammen, Ich weiss das Thema wurde schon oft behandelt aber habe keine Funktionierende Lösung gefunden.

    Da Youtube-mp3.org jetzt ein Download-Limit hat muss ich den scheiss selber herunterladen. Habe es mit diesem Code versucht:

    VB.NET-Quellcode

    1. Imports System.Net
    2. Imports System.IO
    3. Imports System.Text.RegularExpressions
    4. Public Class Form1
    5. Public Sub Get_Video_Info(ByVal Link As String)
    6. Dim Request As HttpWebRequest = HttpWebRequest.Create(Link)
    7. Dim Response As HttpWebResponse = Request.GetResponse()
    8. Dim reader As StreamReader = New StreamReader(Response.GetResponseStream)
    9. Dim httpContent As String
    10. httpContent = reader.ReadToEnd
    11. Dim TitleRegEx As New Regex("title=""(?<Title>(.*))"" />")
    12. Dim title As String
    13. title = TitleRegEx.Match(httpContent).Groups("Title").ToString
    14. Dim AutorRegEx As New Regex("data-discoverbox-username=""(?<Autor>(.*))"" >")
    15. Dim Autor As String
    16. Autor = AutorRegEx.Match(httpContent).Groups("Autor").ToString
    17. Dim ViewRegEx As New Regex("<span id=""watch-views""><span id=""watch-view-count"">(?<Views>(.*))</span> Aufrufe</span>")
    18. Dim Views As String
    19. Views = ViewRegEx.Match(httpContent).Groups("Views").ToString
    20. Dim RateNum As New Regex("<span class=""smallText"">(?<Rates>(.*))</span>")
    21. Dim RateNums As String
    22. RateNums = RateNum.Match(httpContent).Groups("Rates").ToString
    23. Dim tRegEx As New Regex("""t"": ""(?<t>(.*)) """)
    24. Dim t As String
    25. t = (Mid$(tRegEx.Match(httpContent).Groups("t").ToString, 1, 46))
    26. Dim i As ListViewItem
    27. i = ListView1.Items.Add(Link)
    28. With i
    29. .SubItems.Add(title)
    30. .SubItems.Add(Autor)
    31. .SubItems.Add(RateNums)
    32. .SubItems.Add(Views)
    33. .Tag = t
    34. End With
    35. End Sub
    36. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    37. If ListView1.SelectedItems.Count <> 1 Then
    38. MsgBox("Bitte ein Video auswählen!")
    39. Else
    40. Dim t As String = ListView1.FocusedItem.Tag
    41. Dim ID As String = ListView1.FocusedItem.Text
    42. ID = ID.Replace("https://www.youtube.com/watch?v=", "")
    43. MsgBox(ID)
    44. Dim DownloadURL As String = "https://www.youtube.com/get_video?fmt=18&video_id=" & ID & "&t=" & t
    45. MsgBox("Downloadlink: " & DownloadURL)
    46. TextBox1.Text = DownloadURL
    47. Dim myWebClient As New Net.WebClient
    48. myWebClient.DownloadFile(DownloadURL, "Mien Pfad") '(Dein Link, Speicherort)
    49. End If
    50. End Sub
    51. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    52. Dim Link As String
    53. Link = InputBox("Bitte einen Link eingeben")
    54. Get_Video_Info(Link)
    55. End Sub



    Der haut aber nicht hin. Kann mir jemand sage worasu sich die neue Download-Url zusammensetzt und wo ich die Parameter her kriege ?

    Oder hat jemand eine bessere Idee ?

    MFG Mischa
    Hier ist ein Sample dazu - ist aber kein leichter Stoff: YTInformation-Dings

    Das basiert auf der Youtube-Api, das ist ein Dienst, der von utube bereitgestellt wird, der Zugriff auf die utube-Db gewährt, und zwar unabhängig vom utube-Web-Auftritt.

    Abgerufen wird die Api-Funktion mit dieser Url: "http://youtube.com/get_video_info?&video_id=" & videoId
    Aber sie dir das Dingens selber an, und versuch, schlau draus zu werden.

    Alternativ kannste glaub auch nach youtube-api-dokumentation googeln, oder mal auf Codeprojekt gucken.