Problem beim Programm, Downloaden nicht möglich.

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von der_Kurt.

    Problem beim Programm, Downloaden nicht möglich.

    Ich Habe ein Problem, Wenn ich versuche etwas zu Downloaden, kommt bei mir folgende Meldung:

    Ein Fehler ist aufgetreten und die angeforderte Datei (en) konnte nicht heruntergeladen werden.
    Dies wird normalerweise durch Änderungen an der You-Tube Webseite verursacht.


    Spoiler anzeigen

    VB.NET-Quellcode

    1. #Region "Generate You-Tube URL"
    2. Public Sub MakeDownloadURL(ByVal url
    3. As String, ByRef output As String, Optional ByRef type As String = "",
    4. Optional ByRef size As Integer = 0)
    5. 'PERFORMS CLEANUP
    6. downloadurl = ""
    7. If request IsNot Nothing Then
    8. Try
    9. request.Abort()
    10. Catch
    11. End Try
    12. End If
    13. If response IsNot Nothing Then
    14. Try
    15. response.Close()
    16. Catch
    17. End Try
    18. End If
    19. Try
    20. source = ""
    21. Catch
    22. End Try
    23. request = DirectCast(HttpWebRequest.Create(url.ToString), HttpWebRequest)
    24. Try
    25. response = DirectCast(request.GetResponse, HttpWebResponse)
    26. Catch
    27. type = ""
    28. Exit Sub
    29. End Try
    30. source = New StreamReader(response.GetResponseStream, System.Text.Encoding.Default).ReadToEnd
    31. If source.IndexOf("video_id") > -1 Then
    32. 'This grabs the .flv location URL ready for doownloading.
    33. Dim signature As String = source
    34. If signature.Contains("&fmt_url_map=") = True Then
    35. Try
    36. signature = System.Text.RegularExpressions.Regex.Split(signature, "&fmt_url_map=")(1)
    37. Catch
    38. End Try
    39. ElseIf signature.Contains(Chr(34) + "fmt_url_map" + Chr(34) + ": " + Chr(34)) = True Then
    40. Try
    41. signature = System.Text.RegularExpressions.Regex.Split(signature, Chr(34) + "fmt_url_map" + Chr(34) + ": " + Chr(34))(1)
    42. Catch
    43. End Try
    44. Else
    45. Debug.WriteLine("Kritischer Fehler: Download URL konnte nicht hergestellt werden.")
    46. type = ""
    47. Exit Sub
    48. End If
    49. 'This changes the URL to conform to internet standards eg. %20 = " "
    50. signature = signature.Remove(0, 5)
    51. signature = signature.Replace("%252C", ",")
    52. signature = signature.Replace("%2F", "/")
    53. signature = signature.Replace("%3D", "=")
    54. signature = signature.Replace("%3F", "?")
    55. signature = signature.Replace("%3A", ":")
    56. signature = signature.Replace("%26", "&")
    57. Dim sig2 As String = signature
    58. sig2 = sig2.IndexOf("http", 30)
    59. signature = signature.Remove(sig2, signature.Length - sig2)
    60. signature = signature.Remove(signature.IndexOf("%"), 7)
    61. 'Removes any remaining % characters from the string.
    62. signature = signature.Replace("%", "")
    63. 'Checks for and fixes any malformed http requests in the string.
    64. If signature.StartsWith("ttp://") Then
    65. signature = signature.Replace("ttp://", "http://")
    66. End If
    67. 'Checks for and Removes any remaining C characters from the string.
    68. If signature.Chars(signature.Length - 1) = "C" Then
    69. signature = signature.Remove(signature.Length - 1, 1)
    70. End If
    71. If signature.Contains("rv.2.rating") Then
    72. Dim n As Integer = signature.IndexOf(ChrW(34) + ",")
    73. signature = signature.Remove(n, signature.Length - n)
    74. End If
    75. 'PERFORMS CLEANUP
    76. If request2 IsNot Nothing Then
    77. Try
    78. request2.Abort()
    79. Catch
    80. End Try
    81. End If
    82. If response2 IsNot Nothing Then
    83. Try
    84. response2.Close()
    85. Catch
    86. End Try
    87. End If
    88. Try
    89. request2 = DirectCast(HttpWebRequest.Create(signature), HttpWebRequest)
    90. Catch
    91. type = ""
    92. Exit Sub
    93. End Try
    94. response2 = DirectCast(request2.GetResponse, HttpWebResponse)
    95. If response2.ContentType = "video/x-flv" Then
    96. type = ".flv"
    97. output = signature
    98. size = response2.ContentLength
    99. ElseIf response2.ContentType = "video/mp4" Then
    100. type = ".mp4"
    101. output = signature
    102. size = response2.ContentLength
    103. Else
    104. type = ""
    105. output = ""
    106. Exit Sub
    107. End If
    108. End If
    109. End Sub
    110. #End Region
    111. Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs)
    112. web.DownloadFileAsync(New Uri(downloadurl), SaveFileDialog1.FileName)
    113. If CType(sender, System.ComponentModel.BackgroundWorker).CancellationPending Then
    114. web.CancelAsync()
    115. End If
    116. End Sub
    117. Public
    118. Sub DownloadingFile(ByVal sender As Object, ByVal e As
    119. DownloadProgressChangedEventArgs) Handles Web.DownloadProgressChanged
    120. Dim deleg As New OneArgD(AddressOf SetValue)
    121. ProgressBar1.Invoke(deleg, e.ProgressPercentage)
    122. If e.ProgressPercentage = 100 Then
    123. MsgBox("Download abgeschlossen.", MsgBoxStyle.Information)
    124. End If
    125. End Sub
    126. Private Sub SetValue(ByVal max As Object)
    127. Me.ProgressBar1.Value = CInt(max)
    128. Me.lblper.Text = ProgressBar1.Value.ToString + " %"
    129. End Sub
    130. Private Sub AdvantiumButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AdvantiumButton1.Click
    131. Dim filetype As String = ""
    132. Dim size As Integer = 0
    133. MakeDownloadURL(TextBox1.Text, downloadurl, filetype, size)
    134. If filetype = ".flv" Then
    135. SaveFileDialog1.Filter = "FLV Files (.flv) |*.flv"
    136. ElseIf filetype = ".mp4" Then
    137. SaveFileDialog1.Filter = "MP4 Files (.mp4) |*.mp4"
    138. Else
    139. MsgBox("Ein
    140. Fehler ist aufgetreten und die angeforderte Datei (en) konnte nicht
    141. heruntergeladen werden." + vbCrLf + "Dies wird normalerweise durch
    142. Änderungen an der You-Tube Webseite verursacht.", MsgBoxStyle.Critical)
    143. Exit Sub
    144. End If
    145. If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
    146. BackgroundWorker1.RunWorkerAsync()
    147. Else
    148. MsgBox("Download abgebrochen!")
    149. End If
    150. End Sub


    Wie kann ich dies beheben?

    Was muss ich erneuern?

    Edit by der_Kurt:
    Bitte längere Code-Passagen in den Expander-Tag setzen. Es ist den Users nicht zuzumuten, immer nach unten zu scrollen, um den Thread verfolgen zu können
    * Expander-Tag wurde eingefügt *

    100%
    Radio-Player Modul >>1.0<<:
    Fertigstellung: 100%

    Download gibt es per PN :)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Cybkill“ ()

    Nur mal zur Info: Der Code ist furchbar formatiert. Ich mache mir keine Mühe, diesen Code zu lesen (Sorry!). Und ich denke, die meisten haben zu auch keine Lust.
    Es gibt im Forum ein paar Beträge mit Hinweis und Tips, wie man VB-Code richtig postet.
    Bitte nachlesen und deie Frage nochmal editieren, sonst ist die Chance sehr gering, dass eine(r) Dir in diesem Thread hilft.

    Cybkill schrieb:

    If filetype = ".flv" Then
    SaveFileDialog1.Filter = "FLV Files (.flv) |*.flv"
    ElseIf filetype = ".mp4" Then
    SaveFileDialog1.Filter = "MP4 Files (.mp4) |*.mp4"
    Else
    MsgBox("Ein
    Fehler ist aufgetreten und die angeforderte Datei (en) konnte nicht
    heruntergeladen werden." + vbCrLf + "Dies wird normalerweise durch
    Änderungen an der You-Tube Webseite verursacht.", MsgBoxStyle.Critical)
    Exit Sub
    End If

    Hast Du den Code verstanden?
    Anscheinend is die variable "filetype" nicht richtig gesetzt, da sie weder ".flv" noch ".mp4" zu seien scheint, sodass der else-zweig aufgerufen wird.
    SᴛᴀʀGᴀᴛᴇ01
    In den Boardregeln steht auch dies:

    Wenn ihr Regelverstöße seht, so macht das Forumteam über die foreninterne Melden-Funktion
    darauf aufmerksam und spielt nicht den "Hilfs-Mod", indem ihr den User selbst darauf hinweist.


    PS: Startpost wurde korrigiert