Skip to content

MAMISHO/lune-tube

Repository files navigation

LuneTube

Es una aplicación cliente de youtube especialmente diseñada para dispositivos que portan el sistema operativo Lune "LuneOS", así como también para dispositivos con webOS 2.x y superiores (no para webosTV).

ENYO

La aplicación esta contruida sobre el Framework Javascript ENYO, el cual permite crear aplicaciones de alto nivel con tecnologías web, si quieres saber mas sobre enyo, te invito a visitar http://enyojs.com/get-enyo/.

Youtube API

LA aplicación se sirve de la API v3 de youtube, permitiendo las siguientes funciones:

  • Realizar búsquedas de vídeos
  • Reproducir vídeos sin firma restringida de youtube (Se esta trabajando para dar soporte)
  • Iniciar sessión de usuario
  • mostrar playlist del usuario que ha iniciado sesión
  • Paginación de las búsquedas y playlist.

Próximas caráctericticas

  • Guardar historial de reproduciones.
  • Añadir vídeos a listas de reprodución.
  • Subir vídeos al canal del usuario.
  • Descarga de vídeos

Contribuir

Contribuir es simple, puedes realizar un Pull Request y aportar, si quieres aparecer como contribuyente, escribeme a mamisho.mamisho@gmail.com y con gusto te añadiré como contribuyente.

Ejecutar y pruebas

Al ser una aplicaicón web es simple, solo debes abrir la página debug.html y se ejecutará en tu navegador web predeterminado, como recomenación, para realizar pruebas debes desactivar la caché. Para realizar los test puedes usar la consola de errores del navegador web.

Compilar

El proyecto ya esta preparado para generar un desplegable de la aplicación y posteriormente generar un paquete ejecutable por las plataformas soportadas (webOS y LuneOS).

Debes ubicarte en el directorio raíz en la terminal y ejecutar

  • windows
tools\deploy.bat
  • Linux y mac
./tools/deploy.sh 

Seguido necesitarás tener instalado HP webOS SDK y en el directorio raíz lanzar el comando (Más detalles en deploy.md)

palm-package deploy

El comando funciona en cualquiera de las plataformas.

Después se creará un paquete .ipk el cual puedes instalarlo mediante USB (Con ayuda de Preware) o webOS Quick Install.

webOS SDK lo puedes conseguir en http://forums.webosnation.com/webos-development/325645-looks-like-you-cant-get-sdk-anymore-almost.html

Si lo deseas puedes generar un paquete de forma directa con Grunt en el directorio raíz (Recomendado). El comando realizará todas las tareas de desplieque, minificación, compilación y generación del paquete .ipk listo para instalar

grunt build

Posiblemente necesites tener instalado NodeJS y realizar un

npm install

También he incluido una tarea de compilación e instalación automática. En cada versión es necesario modificar el número de versión en task/config/palm-package.js

Por ejemplo Para desplegar la versión 0.2.0 tenemos el siguiente comando

palm-install com.emsoft.lunetube_0.2.0_all.ipk

Si queremos desplegar la siguiente versión 0.2.1 debemos indicarlo en el comando modificando solo la versión.

palm-install com.emsoft.lunetube_0.2.1_all.ipk

Luego, dependiendo si queresmo instalar en LuneOS o webOS debemos ejecutar

grunt build-luneos

o

grunt build-webos

respectivamente.

Servicios

LuneTube implementa la antiguamente llamada palmServicesRequest, la cual permite que otras aplicaciones puedan llamar a LuneTube y pasarle los siguientes parámetros.

{
	params:{
		url: youtubeURL,
		videoId: youtubeVideoId,
		video:{
			src: "http://clips.vorwaerts-gmbh.de/VfE_html5.mp4", // any video source
			type: "video/mp4" //format
		}
}

Todos los paramétros no son necesarios, pero es obligatorio enviar por lo menos uno. (En el ejemplo anterior se respetará la prioridad de parámetros explicada más adelante).

Por ejemplo, si queremos llamar a LuneTube sólo con una URL debemos hacer la siguiente llamáda. (El código puede variar dependiendo de la versión de framework ENYO 1, ENYO 2 o Mojo).


openLuneTubeUrl: function(inSender, inEvent){
	var youtubeURI = 'https://www.youtube.com/watch?v=j0t3Ot-4h54&feature=youtu.be';
	var params= {
			params:{
				url: youtubeURI
			}
		};
	this.$.openLuneTube.send({ id: "com.emsoft.lunetube", params:params});
},

En el ejemplo anterior podemos ver que no es necesario enviar todos los parámetros. Recuerda usar el servicio de applicationManager para poder hacer llamadas a otras aplicaciones.

Prioridad de los parámetros

los siguientes están ordenados con prioridad de mayor a menor.

  1. target : Parámetro por defecto de webOS. Si se desea enviar una url se puede usar también éste parámetro.

  2. url : URL del video de youtube. Soporta las distintas versiones de URL de youtube.

  3. videoId: Si tenemos acceso a las IDs de los vídeos, podemos enviar solo la ID para reproducir el recurso.

  4. video: Permite reproducir vídeos de otras fuentes. NO está soportado aún, pero estará disponible en futuras versiones. El parámetro es un objeto JSON compuesto por los siguientes parámetros.