[VB.NET] Descarga video YouTube

Iniciado por syntax, 21 Mayo 2011, 18:43 PM

0 Miembros y 1 Visitante están viendo este tema.

syntax

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 (vbnet) [Seleccionar]
  Public Sub obtenerInfo(ByVal link As String)
       Dim peticion As HttpWebRequest
       Dim respuesta As HttpWebResponse
       Dim source As String
       If link.Contains("youtube.com") Then
           Try
               'Se realiza una peticion a la URL que nosotros queremos descargar
               peticion = DirectCast(HttpWebRequest.Create(link), HttpWebRequest)
               'Recibimos la respuesta de esa URL
               respuesta = DirectCast(peticion.GetResponse, HttpWebResponse)
               'Leemos la respuesta y obtenemos toda la información de esa página en una string
               source = New StreamReader(respuesta.GetResponseStream, System.Text.Encoding.Default).ReadToEnd
               'Hasta ahora solo tenemos toda la información que contiene el link
           Catch ex As Exception
               MessageBox.Show("Ha ocurrido un error inesperado", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
           End Try
       End If
   End Sub


Gracias.

neoncyber

#1
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
Código (python) [Seleccionar]

#!/usr/bin/python
print "Visit:"
print "http:\\donkeysharp.blogspot.com"

seba123neo

yo te diria que uses la api de youtube en vez de paginas de terceros...
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

syntax

#3
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 (vbnet) [Seleccionar]

        Try
           Dim ini As Integer = videoPageHtmlSource.IndexOf("<title>", StringComparison.CurrentCultureIgnoreCase)
           Dim fin As Integer = videoPageHtmlSource.IndexOf("</title>", ini, StringComparison.CurrentCultureIgnoreCase)
           If ini < 0 Or fin < 0 Then
               MsgBox("La pagina no contiene tag de título")
           Else

               videoTitle = videoPageHtmlSource.Substring(ini + 7, fin - ini - 7)
                'No me reconoce la linea de abajo. Me la marca como error
               videoTitle = System.Web.HttpUtility.HtmlEncode(videoTitle)    
               videoTitle = System.Text.RegularExpressions.Regex.Replace(videoTitle, "[^\w\.@\[\]\\/()&%' #{}€$£!=-]", String.Empty)
               videoTitle = videoTitle.Replace("\\", "-").Replace("/", "-").Trim()
               If (videoTitle.StartsWith("Youtube", StringComparison.CurrentCultureIgnoreCase)) Then
                   videoTitle = videoTitle.Substring(7).Trim(" -*".ToCharArray())
               End If
           End If
       Catch ex As Exception

           videoTitle = ""
       End Try

[D4N93R]

Algo malo estás haciendo porque decir que no encuentra HttpUtility.HtmlEncode es como decir que no está la clase Int32.. Revisa bien todo..