Anuncios Google

[Tutorial Pge Lua] Descarga videos de Youtube en mp4 directamente sin convertir!

Tenía pensado hacer un homebrew con esto pero preferí compartirlo por si a alguien le sirve ya que estoy ocupado en otras cosas por el momento.

Desde youtube podemos descargar los mp4 en formato compatible con nuestra PSP sin necesidad de alguna conversión de programas o páginas extrañas.

Ventajas: Descarga el video y puede ser reproducido de inmediato desde el menu Video de nuestra psp.

Desventajas: Algunos videos exceden el tamaño soportado por la psp diciendo que el formato es erróneo.

 

Comencemos.

Primero hay que obtener mediante postform el texto de la página de youtube del video a descargar ya que ahi obtenemos los parámetros para hacerlo

-- La url es un video de little big planet
-- el parametro 8192 es el tamaño del buffer, no debe ser menor por que donde
-- buscamos se encuentra en el byte 6000 y algo.
result, txt = pge.net.postform("http://www.youtube.com/watch?v=gOV1uaPqjR8", "",8192)

Con ese texto ya podemos enviarlo a la función que buscará los parámetros y generará la url del video en formato mp4.

-- Funcion para extraer la direccion del mp4
-- Uso: url_mp4 = gen_url_youtubeHQ(postformtext)
 
function gen_url_youtubeHQ(urltext)
	local index, endix, t, video_id, mp4_url
	index = string.find(urltext, "\"t\":",0)
	endix = string.find(urltext, ",", index)
	t = string.sub(urltext, index+6, endix-2)
	index = string.find(urltext, "\"video_id\":", endix)
	endix = string.find(urltext, ",", index)
	video_id = string.sub(urltext, index+13, endix-2)
	mp4_url = "http://www.youtube.com/get_video?video_id="..video_id.."&t="..t.."&fmt=18"
	return mp4_url
end

Finalmente juntamos lo anterior y descargamos.

		-- Obtenemos el texto de la pagina, mediante un postform
		result, txt = pge.net.postform("http://www.youtube.com/watch?v=gOV1uaPqjR8", "",8192)
		-- pausamos por un momento para que alcance a procesar el texto
		pge.delay(100*1500)
		video_mp4 = gen_url_youtubeHQ(txt)
		-- pausamos un momento para evitar problemas de procesamiento
		pge.delay(100*1500)
		-- descargamos el archivo
		pge.net.getfile(video_mp4, "ms0:/VIDEO/videoprueba.mp4")

Con esas simples lineas de código ya podremos descargar videos de youtube en mp4 directamente a nuestra psp.

Este tutorial es explicativo y pueden adaptar esto a algún homebrew que descargue videos de youtube.

Recuerden, si descargan un video que es más grande del tamaño que permite la psp les dirá que es un formato erróneo, sería el único contra de la manera que expliqué.

El link para bajar el ejemplo y probarlo.

http://www.megaupload.com/?d=LWG2QZYR

Saludos y espero que sirva a alguien.


Version Actual GoearPSP: Descontinuado

http://dev.cristian.lizana.in/


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de MoLoToVE_v10 M33

Tio eres un Genio

Tio valla que esto de la Programacion se te da puff, genialisima eres un master.

Me has impresionado, no me imagino si te juntas en Team con los mejores Coders de SB, valla que cosas no harian.

Saludos y sigue aportando eres grande bro!


Feliz año nuevo a TODOS

Gracias a DanielYoshi x convertirme a M33

Imagen de ktix007

¿También me puedes

¿También me puedes explicar detalladamente esta parte del código?:

	index = string.find(urltext, "\"t\":",0)
	endix = string.find(urltext, ",", index)
	t = string.sub(urltext, index+6, endix-2)

No entiendo como encuentras la "t"

Saludos

Imagen de clizana

La url final depende ya que

La url final depende ya que se compone por el video_id (que es el id de cada video de youtube), el parámetro "t" que varía cada vez que abrimos el video (para evitar links directos) y el parametro fmt=18 (ya que con 18 baja el mp4 compatible con la psp).

la "t" se busca de esa forma tan extraña por que tiene estos caracteres ", y los strings se manejan con el mismo caracter entonces para ponerlo se antepone un \ al caracter quedando \"

En la busqueda sale \"t\" por que hay 2 comillas, osea se antepone 2 veces el caracter \ para realizar la busqueda de forma correcta.

Espero te haya explicado bien.


Version Actual GoearPSP: Descontinuado

http://dev.cristian.lizana.in/

Imagen de ktix007

Gracias, está muy bien! Una

Gracias, está muy bien! Una cosa. ¿Me puedes decir como quedaria la URL final en este ejemplo?

Saludos.

Imagen de moikop

GRAX

Gracias por el tuto. Pero solo tengo una duda :

pge.net.postform

Esta funcion es posible hacerla en LUA HMv7?

Todo lo demas creo que si...

Saludos


Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderas trucos para resolver tus dudas antes.

No preguntes por MP, mejor pregunta aquí.

Imagen de clizana

desconozco la api de LUA

desconozco la api de LUA HMv7 pero una forma de hacerlo es através de sockets (en este mismo foro hay un ejemplo para descargar archivos) indicando como parámetro POST y no GET, dando como resultado lo que utilicé y que viene incorporado en pge.

Saludos


Version Actual GoearPSP: Descontinuado

http://dev.cristian.lizana.in/

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.