Categoría: Tutoriales

Guías paso a paso para usar tu mediacenter

Tutoriales

Cómo hacer el jailbreak al Apple TV 2G

Esta entrada forma parte del «Manual de supervivencia» del Apple TV 2G

En esta entrada se describe como añadir una nueva opción en el menú del Apple TV 2G (o ATV2) para poder instalar software en el cacharrito sin pasar por el control de Apple. Hasta ahora nadie ha dicho que sea realmente ilegal, aunque es algo que lógicamente a Apple no le hace gracia. Pero tampoco me han preguntado a mí si me hace gracia que Apple controle mi cacharrito 🙂

Este es un proceso que está documentado por todo Internet miles de veces, y se denomina «jailbreak untethered» a diferencia del «tethered» que se pierde al desenchufar el aparato.

Yo mismo seguí una guía que encontré en Google y no fue excesivamente complicado. Pero sí es cierto que la guía que yo utilicé daba muchas cosas por sentado, con ciertos momentos en los que no sabía realmente si lo había hecho bien, así que puede que a la gente con menos conocimientos técnicos le resulte complicado seguirlas.

Así que he decidido recopilar la información de un par de las mejores guías que he encontrado, una vez que ya he hecho mi propio jailbreak y conozco los pasos, para intentar aclarar dudas.

  • En primer lugar descárgate el programa para hacer el desbloqueo desde la página de Greenpoison, disponible para Windows, Linux y Mac. Este tutorial está hecho con la versión RC6, y con iOS 2.4.1.
  • Ten a mano el cable de la corriente del Apple TV 2G, así como un cable micro-usb para poder conectarlo con el ordenador. Hay dos tipos de cables micro-usb, así que asegúrate de que coges el que tiene el conector más estrecho.

 

cables-micro-usb

Cable micro USB para el ATV2

  • Enchufa el cable USB al ordenador, pero no lo enchufes todavía al ATV2. Haz lo mismo con el cable de corriente, enchúfalo a la corriente pero no lo enchufes aún al ATV2.
  • Ahora ejecuta el programa Greenpoison, dale a «Aceptar» para confirmar que lo que quieres hacer es un jailbreak del Apple TV 2, y cuando estés preparado dale al botón «jailbreak». El ritual es algo extraño, pero como funciona vamos a tener que seguirlo 🙂
  • El primer paso es enchufar el micro-usb al ATV2. Tienes 7 segundos para hacer este paso.
  • El segundo paso es enchufar el cable de corriente al ATV2. Tienes 3 segundos para hacer este paso.
  • Ahora pulsa simultáneamente los botones MENU y PLAY/PAUSE, durante otros 7 segundos. Luego suéltalos, y es en este momento cuando empezará el jailbreak.

Llegados a este punto, respira un poco. Le custará un rato hacer el jailbreak así que puedes observar y comerte las uñas. Este es un vídeo del proceso completo para que te hagas una idea antes de hacerlo.

 

Vamos ahora a la segunda parte. El ATV2 está ya desbloqueado, así que ya podemos instalarle lo que queramos. Pero ¿cómo se hace eso?

  • Enchufa el ATV2 a la tele de nuevo, y verás que hay un nuevo menú «greenpois0n».
  • Dentro de ese nuevo menú «greenpois0n», ejecuta la opción «Inject Software» y elige instalar «Cydia payload».
  • Cuando termine el proceso reinicia el ATV2, pulsando MENU tal como se indica, y el proceso está listo. Aquí tienes el vídeo con este último paso para que puedas verlo antes de hacerlo.

 

  • Para instalar software en tu Apple TV 2G puedes usar el menú «Nito TV» que habrá aparecido tras reiniciar.
nito1

El menú nitoTV en mi Apple TV 2G

nito2

Software disponible para instalar desde nitoTV

Una vez finalizado el proceso te recomiendo que no actualices el software del cacharrito, especialmente mediante las actualizaciones oficiales de Apple. Echa un vistazo al manual de supervivencia para saber más.

Créditos:

<blockquote>Esta entrada forma parte del <a href=»http://www.mimediacenter.info/manual-de-supervivencia/»>»Manual de supervivencia» del Apple TV 2G</a></blockquote>
Tutoriales

Como añadir canales a pelisalacarta (parte 3 y última)

Esta entrada es parte de una serie.

Puedes leer la entrada anterior en Cómo añadir canales a pelisalacarta – Parte 2 (Paginación, menús)

Si te interesa no te pierdas la sección guías de desarrollo

Hoy vamos a darle los últimos retoques a nuestro canal para Cinegratis, que a pesar de ser el objetivo de este tutorial por no ser especialmente difícil ha resultado un canal que uso a dario porque es muy completo y con muchas opciones.

En esta última entrega vamos a añadirle algunas cosas que vienen muy bien cuando estás buscando un vídeo en pelisalacarta, además de tratar de recoger todo el contenido posible de la web. Hoy veremos:

  • Como añadir el buscador
  • Como añadir menús para el filtro por Veoh, Megavideo, Subtituladas, Latino, … y Deportes
  • Como terminar de arreglar series y anime
  • Como añadir listados por categorías para el cine, y alfabéticos para todos los canales

¿Parece mucho para una única entrega? Veréis que es realmente sencillo, puesto que sólo necesitamos una función por cada página diferente y vienen a ser todas similares.

Lo primero que vamos a hacer es añadir todas las opciones necesarias en el menú principal, usando la función «addnewfolder» que recibe como parámetro la función a ejecutar cuando se seleccione la opción, el título en pantalla y la URL de descarga en caso de ser necesario.

Nuevo menú para Cinegratis en pelisalacarta

Nuevo menú para Cinegratis en pelisalacarta

Definición del menú en Python

Definición del menú en Python

Viendo el código del menú hay varias cosas interesantes que permiten hacerse mejor una idea de como funciona esto:

  • La opcion «Películas – Novedades» se procesa con la función «listvideos», que utilizan también algunas de las demás opciones. Esta función interpreta las páginas que tienen listados de vídeos con carátula y descripción.
  • La opción «Series – Todas» se procesa con la nueva función «listsimple» que también usan algunas opciones más como veremos más abajo. Esta función interpreta las páginas que tienen listados sin carátula ni descripción.
  • Algunas opciones como las listas de películas por categoría, deportes, etc. tienen funciones específicas porque son diferentes del resto.
  • La URL (que no se ve completa en la captura) corresponde con la que sale en el navegador cuando pulsas esa opción en la página. Algunas entradas de menú, como el buscador, no la necesitan.

Para hacer el buscador añadimos la funcion «search» donde pedimos al usuario cuál es el texto a buscar usando el teclado en pantalla de XBMC. Con ese texto construimos la URL que muestra los resultados de búsqueda y se la pasamos a la funcion «listsimple» que interpreta los resultados.

Función de búsqueda

Función de búsqueda

Buscador en XBMC

Buscador en XBMC

La función «listsimple» es similar a la que había «listvideos» pero con un patrón distinto. Cuando se selecciona un vídeo lleva a la misma función «detail», ya que las páginas de detalle de una peli son siempre iguales.

listsimple

listsimple

Con esto el buscador ya está operativo, y de paso todas las opciones de menú que usan esta función.

El listado alfabético de películas es un menú manual que tiene una entrada para cada letra, y se construye de forma similar al menú principal. No lo reproduzco aquí porque es muy sencillo, si tenéis dudas podéis mirar la función «pelisalfa» en el código.

El listado por categorías se construye extrayendo cada categoría de la página, con sus iconos y todo, y añadiendo manualmente las categorías «Versión original» y «Versión latina».

Listado de categorías

Listado de categorías

Esta nueva función «peliscat» es algo diferente, pero tampoco es muy compleja. Utiliza un patrón para sacar las categorías, y una vez que tiene la categoría dentro del bucle for utiliza otro patrón para sacar el nombre de la categoría de la URL. Esto es necesario porque las categorías tienen icono, pero no título.

El resultado de cada categoría encontrada se añade como carpeta, con la función «listvideos» como responsable de procesar los resultados al presentarse con carátula y descripción.

Listado de películas por categoría

Listado de películas por categoría

La sección de Deportes no es muy diferente del resto, así que si te interesa ver cómo funciona puedes descargarte el código fuente.

A modo de resumen he preparado un pequeño dibujo donde se ven todas las funciones que hay definidas en este canal de pelisalacarta, y la dependencia que tienen unas de otras.

Esquema general de todas las funciones y su dependencia

Esquema general de todas las funciones y su dependencia

Con esto damos por concluido el post, y el tutorial de 3 partes que cuenta cómo añadir un canal a pelisalacarta. Espero que haya sido suficientemente explicativo, y que gracias a él os animéis a añadir vuestros propios canales.

El código fuente del nuevo canal está disponible aquí.

Tutoriales

Como añadir canales a pelisalacarta (Parte 2)

Esta entrada es parte de una serie.

Puedes leer la entrada anterior en Cómo añadir canales a pelisalacarta – Parte 1 (Un canal sencillo)

Puedes leer la entrada siguiente en Cómo añadir canales a pelisalacarta – Parte 3 (Buscador, retoques finales)

Si te interesa no te pierdas la sección guías de desarrollo

La entrega anterior de este tutorial describía cómo añadir un nuevo canal Cinegratis a pelisalacarta, pero es una web con muchas posibilidades y sólo pusimos la primera página del listado de las películas.

En esta segunda entrega vamos a ver cómo realizar algunas mejoras básicas:

1) Paginación de resultados

Para permitir avanzar entre páginas hay que añadir a la lista de resultados una carpeta «Página siguiente» que apunte a la URL de la página. Normalmente basta con buscar el botón «Siguiente» y poner la URL, pero en este caso es un poco más difícil porque no existe ese botón.

Si nos fijamos en el paginador veremos que el número de página actual está subrayado (menos mal).

Estoy en la página 6

Estoy en la página 6

Si buscamos en el HTML veremos que esa página está marcada con los tags <u> y </u>, así que ya tenemos la forma de distinguir la página.

Estoy en la página 6

Estoy en la página 6

Lo que hacemos es duplicar el bloque que detecta las películas, para que detecte entradas usando una expresión regular distinta. En este caso suele ser fácil ya que no necesitamos más que la URL, que volverá a apuntar además a la misma función.

El bloque que detecta la paginación

El bloque que detecta la paginación

Esto añadirá el bloque de «Página siguiente» dos veces, puesto que en la web hay dos paginadores en la zonas superior e inferior de la página. Si queremos evitarlo basta con cambiar el bucle «for» por un «if» sencillo.

Sólo necesito un paginador

Sólo necesito un paginador

Para que esto funcione sólo es necesario un cambio más. En la función «mainlist» está la URL de la página de forma estática, así que aunque le pasemos la URL de la página siguiente no la va a coger. Hay que cambiar esto:

URL fija

URL fija

Por esto:

URL parametrizable

URL parametrizable

Y con esto ya tenemos paginación 🙂

2) Menú para permitir elegir entre películas, series, documentales, etc.

Como la página que hemos elegido tiene muchas más opciones, la mayoría de ellas con una estructura de HTML similar, es probable que el código que ya tenemos nos sirva para ver las diferentes secciones de la web cambiando simplemente las URL. Para hacer un menú estático de este tipo, similar al que hay en otros canales de pelisalacarta, basta con copiar y pegar. Usemos como ejemplo el de Peliculasyonkis:

El menú de peliculasyonkis

El menú de peliculasyonkis

Básicamente consiste en añadir a mano las carpetas, poniendo la función que debe ejecutarse, el título que quieres que tengan y la URL desde la que descargar la página con los contenidos. Algunas opciones no necesitarán URL, como el buscador, que será objeto de próximas entregas de este tutorial.

Nuestro menú sería más bien así, con las URL sacadas directamente del menú de Cinegratis:

Menú de Cinegratis

El menú de Cinegratis

Para terminar es necesario renombrar la función «mainlist» que teníamos antes, para que pase a llamarse «listvideos». Esto es porque la función de entrada al canal tiene que ser siempre «mainlist», y ahora corresponde con nuestro nuevo menú.

Si entramos a probarlo veremos que funcionan bien las opciones de Películas, Estrenos y Documentales. Las de Series y Anime no van, así que probablemente el HTML de estas secciones sea distinto.

En la tercera y última entrega contaré cómo implementar el buscador de la web en el canal, además de explicar un poco más en detalle cómo funcionan las acciones y el paso de parámetros entre ellas. Esto nos permitirá montar las dos entradas de menú que faltan, y tener un menú más completo con categorías y listados alfabéticos. Eso nos dará una navegación más completa por la web.

De momento espero que lo disfrutéis. Aquí está el canal actualizado para su descarga (incluido en la próxima versión de pelisalacarta 2.8).

Y aquí van las capturas de pantalla del canal tal como ha quedado, usando el skin Rapier que últimamente me gusta cada vez más.

He modificado un poquito el skin original para que muestre el argumento de la peli seleccionada, que ayuda mucho en el plugin. Si os interesa podéis bajaros el fichero modificado aqui y sustituirlo por el vuestro dentro de skin\Rapier\720p. Pero guardaros el original, que es un experimento 🙂

El menú principal

Menú principal

Listado de películas con paginación

Listado de películas con paginación

DesarrolloTutoriales

Como añadir canales a pelisalacarta (Parte 1)

Esta entrada es la primera de una serie.

Puedes leer la entrada siguiente en Cómo añadir canales a pelisalacarta – Parte 2 (Paginación, menús)

Si te interesa no te pierdas la sección guías de desarrollo

Este es el primer post de una serie donde voy a intentar contaros lo fácil que es añadir un nuevo canal al plugin pelisalacarta para XBMC, con la intención de animar a aquellos que tengan conocimientos de programación y conseguir que entre todos haya muchas webs de contenidos en castellano en XBMC.

La estructura de ficheros del plugin es muy sencilla, y tiene los siguientes elementos:

Directorios de pelisalacarta

Directorios

channels: Contiene un fichero en Python (.py) para cada canal del plugin: Cinetube, Seriesyonkis, etc.
servers: Contiene un fichero Python (.py) para cada servidor donde se alojan los vídeos: Megavideo, etc.
downloads: Es el directorio de descargas por defecto
resources/images: Donde se graban todas las imágenes del canal, iconos y demás
resources/language: Los literales traducidos en varios idiomas, grabados en un fichero xml.
resources/lib: El código común reutilizable en varios sitios.

Hay una serie de ficheros Python importantes que es necesario conocer para añadir un nuevo canal:

  • default.py: Es el que se ejecuta cada vez que accedes al plugin, abres una de sus carpetas o intentas ver uno de sus vídeos. No es necesario modificarlo, y básicamente lo que hace es invocar a pelisalacarta.py.
  • pelisalacarta.py: Extrae los parámetros más importantes de la petición y redirige al selector de canales channelselector.py.
  • channelselector.py: Tiene una lista manual de todos los canales activos en el plugin. Aquí es donde tenemos que añadir nuestro nuevo canal al final de la lista, usando como primer parámetro el nombre que se verá en pantalla y como segundo parámetro un nombre interno que usaremos como identificador del canal.
  • channels/nuevocanal.py: Este es el fichero que vamos a crear con el nuevo canal.
  • images/nuevocanal.png: Este es el fichero con el logotipo del canal.

¿A que parece sencillo? El primer paso es identificar una web que tenga contenido interesante, y que aloje los vídeos en uno de los servidores que pelisalacarta soporta: megavideo, tutv o stagevu. Para este tutorial vamos a coger Cinegratis.net que es una web bastante chula.

Veamos el proceso paso a paso:

1) Añadir el nuevo canal al fichero channelselector.py, al final de la lista. El primer parámetro es el nombre con que se verá el canal en la lista, el segundo es el nombre que usaremos para el thumbnail (cinegratis.png), el fichero con el canal (cinegratis.py), y en varias partes del código. El tercer parámetro es el nombre de la primera función a ejecutar dentro de cinegratis.py.

Antes

Antes

Despues

Despues

2) Hacer el thumbnail del canal como un PNG de 255×375 y grabarlo como images\cinegratis.png.

Icono de canal

Icono de canal

3) Probar el resultado hasta ahora, entrando en el plugin a ver si sale el canal 🙂

El nuevo canal ya sale en XBMC

El nuevo canal ya sale en XBMC

4) Copia uno de los ficheros de canales que hay en el directorio channels, y renómbralo a cinegratis.py. Uno sencillo que es el que vamos a usar ahora es pintadibujos.py.

5) Ábrelo con un editor y donde aparezca «pintadibujos» cámbialo por «cinegratis»

6) Cuando seleccionas el canal la primera función que se invoca es «mainlist», donde el plugin va a la URL que le has indicado y extrae las películas para mostrarlas. Para Cinegratis la URL donde están los estrenos de las películas es http://www.cinegratis.net/index.php?module=peliculas, así que vamos a ponerla en el plugin.

Cambia la URL

Cambia la URL

Ahora viene la parte divertida, que es extraer del HTML de la página los datos de las películas. La magia se realiza gracias a las expresiones regulares y un poco de paciencia, y en realidad es muy sencillo porque apenas hay 4 trucos que resuelven la mayoría de los casoa.

Observando la página buscamos la primera película del listado:

El listado de películas

El listado de películas

En este caso se trata de la película «Lansky (1999)». Si le das a «Ver código fuente» en el navegador y buscas el título la encontrarás enseguida, y normalmente el resto de películas se encuentran siempre una debajo de otra en una estructura repetida. En la captura he resaltado el título, argumento, enlace a la página de detalle y carátula de la película. Veréis que al final está ya el título de la siguiente película.

HTML de la página con los elementos resaltados

HTML de la página con los elementos resaltados

La expresión regular es sencilla si deduces la estructura del código. En este caso podemos ver que el título de la película está dentro de un tag <table>, en el primer <td>, y el argumento en el siguiente <div> que hay. En esa misma tabla está el enlace en un tag <a> y el thumbnail en un tag <img>. Veamos ahora la expresión regular, que describe exactamente lo mismo con su propia notación:

La expresión regular

La expresión regular

Es compleja, pero como todo es cuestión de práctica. Si la leemos por partes lo que significa es que el patrón que estás buscando:

  • «<table.*?<td.*?>»
  • Empieza en la cadena «<table», luego tiene varios caracteres (representado por .*?) hasta llegar a un «<td», y otros caracteres más hasta llegar a un «>» que es el cierre del tag td.
  • «([^<]+)<span»
  • Esta curiosa fórmula significa que a partir de ahí vale «cualquier cosa hasta encontrar el carácter <«, aunque podría haber puesto también «.*?». Los paréntesis indican además que esa parte del texto me interesa.
  • Luego viene otra vez la expresión .*?, porque no interesa nada más hasta llegar al primer «<div>»
  • «<div align=’justify’>(.*?)</div>.*?»
  • Otra fórmula habitual que viene a significar hay un «<div>» con cosas dentro y luego un «</div>». Muy normal en HTML.

Veréis que hay 4 paréntesis en la expresión regular, correspondiendo con el título (posición 0), argumento (posición 1), enlace a la página de detalle (posición 2) y thumbnail (posición 3). Con esto vamos a dar los dos últimos pasos de este tutorial.

7) Copia la expresión regular en la variable «patronvideos» tal como está en la captura.

8 ) Asigna valor a las variables que interpretan la expresión regular, utilizando el array «matches» que va a almacenar las cadenas de texto extraídas.

Asignando valores a las variables

Asignando valores a las variables

Vamos a dejarlo por aquí ahora, con el primer listado de películas de Cinegratis que ya podéis probar.

Si entráis en una película veréis que es totalmente funciona y que podéis reproducir los vídeos, siempre que estén en alguno de los servidores soportados por el plugin (normalmente están en Megavídeo) gracias a que el mecanismo que busca los enlaces es más o menos común para todos los canales.

Aún queda mucho por hacer, como añadir la paginación y poner más listados por categorías y cosas así, que iré añadiendo en sucesivas entregas de este tutorial.

En la captura podéis ver que las pruebas las hago con XBMC en modo ventana, y el log de xbmc siempre debajo usando la utilidad BareTail para verlo en tiempo real.

El listado de películas

El listado de películas

Puedes descargar la versión de cinegratis.py con los cambios ya realizados en este enlace.