Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - scaricare video in vb.net
Forum - C# / VB.NET - scaricare video in vb.net

Avatar
Piso94 (Normal User)
Rookie


Messaggi: 53
Iscritto: 08/07/2008

Segnala al moderatore
Postato alle 18:38
Martedì, 02/12/2008
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:

PM Quote
Avatar
fabi3194 (Ex-Member)
Expert


Messaggi: 206
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 14:10
Mercoledì, 03/12/2008

Ultima modifica effettuata da fabi3194 il 03/12/2008 alle 14:10
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 16:29
Mercoledì, 03/12/2008
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:
Codice sorgente - presumibilmente VB.NET

  1. Private SwfArgsRegex As New Regex("var swfArgs \= \{.+?""video_id"": ""(?<VideoId>.+?)"".*?""t"": ""(?<T>.*?)"".*")
  2.  
  3.     Private Function GetDirectLink(ByVal YouTubeLink As String) As String
  4.         Dim Page As String = Globals.GetWebPage(YouTubeLink)
  5.         Dim SwfArgs As Match = SwfArgsRegex.Match(Page)
  6.  
  7.         If SwfArgs.Success Then
  8.             Dim Host As String = YouTubeLink.Substring(0, YouTubeLink.IndexOf("youtube.com") + "youtube.com".Length)
  9.             Dim Result As String = _
  10.                 String.Format(Host & "/get_video?video_id={0}&t={1}", _
  11.                 SwfArgs.Groups("VideoId").Value, SwfArgs.Groups("T").Value)
  12.             Return Result
  13.         Else
  14.             Return Nothing
  15.         End If
  16.     End Function
  17.  
  18.     Private Sub DownloadFile(ByVal YouTubeLink As String, ByVal Path As String)
  19.         Dim DirectLink As String = GetDirectLink(YouTubeLink)
  20.         Dim W As New Net.WebClient()
  21.  
  22.         If IO.Path.GetExtension(Path) = ".mp4" Then
  23.             DirectLink &= "&fmt=18"
  24.         End If
  25.  
  26.         AddHandler W.DownloadProgressChanged, AddressOf Download_ProgressChanged
  27.         AddHandler W.DownloadFileCompleted, AddressOf Download_FileCompleted
  28.         W.DownloadFileAsync(New Uri(DirectLink), Path)
  29.     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.

PM Quote
Avatar
Piso94 (Normal User)
Rookie


Messaggi: 53
Iscritto: 08/07/2008

Segnala al moderatore
Postato alle 17:23
Mercoledì, 03/12/2008
Grazie mille

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 17:15
Venerdì, 05/12/2008
Prego :k:

PM Quote
Avatar
Piso94 (Normal User)
Rookie


Messaggi: 53
Iscritto: 08/07/2008

Segnala al moderatore
Postato alle 12:39
Domenica, 01/02/2009
scusa ma ad esempio Regex è sottolineato di blu perciò non è definito, come Globals.GetWebPage etc..
cosa devo fare?
:k:


Piso94 ha allegato un file: Errori.JPG (164303 bytes)
Clicca qui per guardare l'immagine
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 11:47
Lunedì, 02/02/2009
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.

PM Quote
Avatar
Piso94 (Normal User)
Rookie


Messaggi: 53
Iscritto: 08/07/2008

Segnala al moderatore
Postato alle 15:20
Lunedì, 02/02/2009
Grazie mille e scusa per l'improvvisa ricomparsa di una mia domanda sul forum chiuso due mesi fà :k:

PM Quote