Hallo an alle die sich beteiligt haben
und an alle die die Interesse haben
und an die die Probleme mit dem PB haben.
bei mir funzt endlich, hier mein Code:
Wichtig ist:
Imports System.Net
Friend WithEvents downloader As New System.Net.WebClient ' WebClient für Datei-Download
Dazu sage ich noch dazu das mit der Länge anzeigen noch nicht klappt sonst funzt alles.
Zu mei Code hätte ich eine Frage und zwar wird mir alles in KB angezeigt, ich möchte aber das es in MB angezeigt wird, jemand ein Tipp?
viel Spass
lg
toto
und an alle die die Interesse haben
und an die die Probleme mit dem PB haben.
bei mir funzt endlich, hier mein Code:
VB.NET-Quellcode
- [spoiler]
- Private Sub btnAddDown_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddDown.Click
- Dim Link As String
- Link = txtURL.Text
- Get_Video_Info(Link)
- End Sub
- Public Sub Get_Video_Info(ByVal Link As String)
- Dim Request As HttpWebRequest = HttpWebRequest.Create(Link)
- Dim Response As HttpWebResponse = Request.GetResponse()
- Dim reader As StreamReader = New StreamReader(Response.GetResponseStream)
- Dim httpContent As String
- httpContent = reader.ReadToEnd
- Dim TitleRegEx As New Regex("title=""(?<Title>(.*))"" />")
- Dim title As String
- title = TitleRegEx.Match(httpContent).Groups("Title").ToString
- Dim LängeVideo As New Regex("<span class=""video-time""><span>(.*?)<\/span>")
- Dim Länge As String
- Länge = LängeVideo.Match(httpContent).Groups(1).Value()
- Dim tRegEx As New Regex("""t"": ""(?<t>(.*)) """)
- Dim t As String
- t = (Mid$(tRegEx.Match(httpContent).Groups("t").ToString, 1, 46))
- Dim i As ListViewItem
- i = LwDown.Items.Add(Link)
- With i
- .SubItems.Add(title)
- .Tag = t
- End With
- End Sub
- Private Sub btnDownload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDownload.Click
- If LwDown.SelectedItems.Count <> 1 Then
- MsgBox("Bitte ein Video auswählen!")
- Else
- Try
- Dim httpURL As New System.Uri(txtURL.Text)
- Dim request As HttpWebRequest = HttpWebRequest.Create(httpURL)
- request.Method = WebRequestMethods.Http.Get
- Dim response As HttpWebResponse = request.GetResponse()
- Dim reader As New StreamReader(response.GetResponseStream())
- Dim start_DL_url As String = reader.ReadToEnd()
- response.Close()
- ' Download Link
- Dim anfang_stelle_des_video_downloads_1 As Integer = InStr(start_DL_url, "<!-- end contenttop section -->") + 30
- Dim anfang_stelle_des_video_downloads_2 As Integer = InStr(anfang_stelle_des_video_downloads_1, start_DL_url, "url_map") + 13
- Dim ende_stelle_des_video_downloads_1 As Integer = InStr(anfang_stelle_des_video_downloads_2 + 5, start_DL_url, "%2C")
- Dim Laenge_des_downloads_1 As Integer = ende_stelle_des_video_downloads_1 - anfang_stelle_des_video_downloads_2
- Dim Name_des_downloads_1 As String
- Name_des_downloads_1 = Mid(start_DL_url, anfang_stelle_des_video_downloads_2, Laenge_des_downloads_1)
- Dim end_DL_url As String = Name_des_downloads_1.Replace("%3F", "?").Replace("%3D", "=").Replace("%26", "&").Replace("%25", "%").Replace("%2C", ",").Replace("%25", "%").Replace("%3A", ":").Replace("%2F", "/")
- 'Ordner & Download
- Dim sfd As New SaveFileDialog
- sfd.Filter = "Video|.flv"
- If sfd.ShowDialog = Windows.Forms.DialogResult.OK Then
- downloader.DownloadFileAsync(New Uri(end_DL_url), sfd.FileName)
- txtDown.Text = sfd.FileName
- End If
- Catch ex As Exception
- MsgBox("Kein gültiges Video gefunden! Bitte verwenden Sie nur YouTube Videos!")
- End Try
- End If
- End Sub
- ' Fortschrittsanzeige
- Private Sub downloader_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles downloader.DownloadProgressChanged
- 'ProgressBar1.Maximum = 100
- ProgressBar1.Value = e.ProgressPercentage
- Dim Totalbytes As Long = e.TotalBytesToReceive / 1024
- Dim bytes As Long = e.BytesReceived / 1024
- Dim p As Integer = CInt((bytes / Totalbytes) * 100)
- Me.lblProgress.Text = e.BytesReceived & " KB von"
- Me.lblTotal.Text = e.TotalBytesToReceive & "KB"
- Me.lblProzent.Text = p.ToString() & "%"
- End Sub
- ' Download beendet
- Private Sub downloader_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles downloader.DownloadFileCompleted
- MsgBox("Download war erfolgreich!", MsgBoxStyle.Information, "Fertig!")
- LwDown.SelectedItems.Clear()
- End Sub[/spoiler]
Wichtig ist:
Imports System.Net
Friend WithEvents downloader As New System.Net.WebClient ' WebClient für Datei-Download
Dazu sage ich noch dazu das mit der Länge anzeigen noch nicht klappt sonst funzt alles.
Zu mei Code hätte ich eine Frage und zwar wird mir alles in KB angezeigt, ich möchte aber das es in MB angezeigt wird, jemand ein Tipp?
viel Spass
lg
toto
lg toto