Oppure

Loading
02/12/08 17:38
Piso94
salve a tutti vorrei scaricare video con il mio programma in vb.net ma voglio scaricarli da YouTube e non saprei propio da dove partire per scaricarli
ecco la sorgente del programma ho già fatto anche il player per i flv

grazie 1000:k::k:
aaa
03/12/08 13:10
fabi3194
Ultima modifica effettuata da fabi3194 03/12/08 13:10
aaa
03/12/08 15:29
Il Totem
Beh, qui la faccenda è più complicata. I video di youtube sono salvati in formato *.flv o *.mp4, ma per sapere la locazione reale all'interno del server bisogna eseguire uno script php prendendo alcune informazioni dalla pagina.
Questo è un estratta da un mio programma:
Private SwfArgsRegex As New Regex("var swfArgs \= {.+?""video_id"": ""(?<VideoId>.+?)"".*?""t"": ""(?<T>.*?)"".*")

    Private Function GetDirectLink(ByVal YouTubeLink As String) As String
        Dim Page As String = Globals.GetWebPage(YouTubeLink)
        Dim SwfArgs As Match = SwfArgsRegex.Match(Page)

        If SwfArgs.Success Then
            Dim Host As String = YouTubeLink.Substring(0, YouTubeLink.IndexOf("youtube.com") + "youtube.com".Length)
            Dim Result As String = _
                String.Format(Host & "/get_video?video_id={0}&t={1}", _
                SwfArgs.Groups("VideoId").Value, SwfArgs.Groups("T").Value)
            Return Result
        Else
            Return Nothing
        End If
    End Function

    Private Sub DownloadFile(ByVal YouTubeLink As String, ByVal Path As String)
        Dim DirectLink As String = GetDirectLink(YouTubeLink)
        Dim W As New Net.WebClient()

        If IO.Path.GetExtension(Path) = ".mp4" Then
            DirectLink &= "&fmt=18"
        End If

        AddHandler W.DownloadProgressChanged, AddressOf Download_ProgressChanged
        AddHandler W.DownloadFileCompleted, AddressOf Download_FileCompleted
        W.DownloadFileAsync(New Uri(DirectLink), Path)
    End Sub

La funzione DownloadFile prende in input il link alla pagina di YouTube, e il nome del file da salvare sul computer (estensioni valide sono, come detto, solo flv e mp4). GetDirectLink cerca all'interno della pagina certe variabili in un javascript, e le usa come parametri per caricare un'altra pagina php, che ridirezione al vero video, il quale viene quindi scaricato.
aaa
03/12/08 16:23
Piso94
Grazie mille
aaa
05/12/08 16:15
Il Totem
Prego :k:
aaa
01/02/09 11:39
Piso94
scusa ma ad esempio Regex è sottolineato di blu perciò non è definito, come Globals.GetWebPage etc..
cosa devo fare?
:k:
aaa
02/02/09 10:47
Il Totem
Non puoi rispondere a una discussione terminata due mesi fa.

Comunque, per Regex non hai importato il namespace System.Text.RegularExpress. Ovviamente Globals si riferisce a una parte del mio programma, e GetWebPage è semplicemente la funzione che restituisce il testo della pagina.
aaa
02/02/09 14:20
Piso94
Grazie mille e scusa per l'improvvisa ricomparsa di una mia domanda sul forum chiuso due mesi fà :k:
aaa