Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: syntax en 21 Mayo 2011, 18:43 pm



Título: [VB.NET] Descarga video YouTube
Publicado por: syntax en 21 Mayo 2011, 18:43 pm
Estoy haciendo como proyecto de fin de curso un gestor de videos de YouTube. Tratando el tema de la descarga no me oriento muy bien. He encontrado un par de códigos por internet, pero no me funcionan y además no vienen nada comentados.

Por ahora lo único que tengo es el inicio, pero no se como seguir. Si alguien me diese alguna indicación sería de gran utilidad.

  
Código
  1.   Public Sub obtenerInfo(ByVal link As String)
  2.        Dim peticion As HttpWebRequest
  3.        Dim respuesta As HttpWebResponse
  4.        Dim source As String
  5.        If link.Contains("youtube.com") Then
  6.            Try
  7.                'Se realiza una peticion a la URL que nosotros queremos descargar
  8.                peticion = DirectCast(HttpWebRequest.Create(link), HttpWebRequest)
  9.                'Recibimos la respuesta de esa URL
  10.                respuesta = DirectCast(peticion.GetResponse, HttpWebResponse)
  11.                'Leemos la respuesta y obtenemos toda la información de esa página en una string
  12.                source = New StreamReader(respuesta.GetResponseStream, System.Text.Encoding.Default).ReadToEnd
  13.                'Hasta ahora solo tenemos toda la información que contiene el link
  14.            Catch ex As Exception
  15.                MessageBox.Show("Ha ocurrido un error inesperado", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
  16.            End Try
  17.        End If
  18.    End Sub

Gracias.


Título: Re: [VB.NET] Descarga video YouTube
Publicado por: neoncyber en 21 Mayo 2011, 23:05 pm
Creo q esta es la mejor respuesta que te podria dar:

http://youtubefisher.codeplex.com/

Es un proyecto exitoso q se alberga en codeplex, obviamente es open source, el lenguaje esta en c#, pero no le veo el problema para traducirlo, hace tiempo estaba revisando su codigo y es super interesante.


Saludos


Título: Re: [VB.NET] Descarga video YouTube
Publicado por: seba123neo en 21 Mayo 2011, 23:36 pm
yo te diria que uses la api de youtube en vez de paginas de terceros...


Título: Re: [VB.NET] Descarga video YouTube
Publicado por: syntax en 22 Mayo 2011, 12:08 pm
Estoy ojeando el código de YouTube Fisher, y la verdad es que me gusta.

Estoy traduciendo la funcion de obtener el título del video. Pero tengo un problema a la hora de utilizar la funcion HttpUtility.HtmlEncode. Parece ser como que no la encuentra. Y sí, tengo el Imports System.Web.

Por lo que he buscado, realmente debería funcionar, pero no se.
El código de la función en cuestión sería el siguiente:
Código
  1.         Try
  2.            Dim ini As Integer = videoPageHtmlSource.IndexOf("<title>", StringComparison.CurrentCultureIgnoreCase)
  3.            Dim fin As Integer = videoPageHtmlSource.IndexOf("</title>", ini, StringComparison.CurrentCultureIgnoreCase)
  4.            If ini < 0 Or fin < 0 Then
  5.                MsgBox("La pagina no contiene tag de título")
  6.            Else
  7.  
  8.                videoTitle = videoPageHtmlSource.Substring(ini + 7, fin - ini - 7)
  9.                'No me reconoce la linea de abajo. Me la marca como error
  10.                videoTitle = System.Web.HttpUtility.HtmlEncode(videoTitle)    
  11.                videoTitle = System.Text.RegularExpressions.Regex.Replace(videoTitle, "[^\w\.@\[\]\\/()&%' #{}€$£!=-]", String.Empty)
  12.                videoTitle = videoTitle.Replace("\\", "-").Replace("/", "-").Trim()
  13.                If (videoTitle.StartsWith("Youtube", StringComparison.CurrentCultureIgnoreCase)) Then
  14.                    videoTitle = videoTitle.Substring(7).Trim(" -*".ToCharArray())
  15.                End If
  16.            End If
  17.        Catch ex As Exception
  18.  
  19.            videoTitle = ""
  20.        End Try


Título: Re: [VB.NET] Descarga video YouTube
Publicado por: [D4N93R] en 22 Mayo 2011, 19:53 pm
Algo malo estás haciendo porque decir que no encuentra HttpUtility.HtmlEncode es como decir que no está la clase Int32.. Revisa bien todo..