A la hora de hacer un add-on la parte más compleja es lógicamente la de programación, pero también es importante conocer los 3 ficheros que permiten una correcta publicación dentro de XBMC y que deben situarse en el directorio principal del add-on. Hablamos del logo, el fanart y el fichero addon.xml.

Con la edición de la información recogida en el fichero addon.xml podrás darle a tu add-on el título y la descripción que quieras, incluso en varios idiomas. El logo del canal es la imagen que aparece en el listado de add-ons para distinguirlo, normalmente junto al título aunque puede depender del skin que uses. Y el fanart es la imagen de fondo que aparece cuando has seleccionado el addon, como elemento meramente decorativo.

Veámoslo en detalle.


El logo y el fanart

El logo del add-on de ejemplo en XBMCEl logo distingue al add-on cuando el usuario está viendo la lista de add-ons instalados, o cuando quiere instalar uno nuevo.

Es un fichero pequeño, grabado en formato PNG y debe llamarse exactamente «icon.png». Debe tener un tamaño de 256×256 pixels de acuerdo con las guías de estilo de XBMC, y debes procurar que sea claro cuando se ve desde cierta distancia ya que la mayoría de usuarios de XBMC lo va a ver desde el sofá. No es obligatorio incluir un logotipo para tu add-on, aunque es muy recomendable.

El fanart o imagen de fondo, por el contrario, es una imagen grandota que sirve para personalizar un poco más la apariencia de tu add-on en XBMC. En este caso para que el tamaño del fichero no sea excesivo se utiliza el formato JPEG, es recomendable no exceder 1280×720 pixels de resolución, y debe llamarse «fanart.jpg». Es opcional incluir un fanart en tu add-on, de hecho hay muchos que no lo tienen.

El fichero addon.xml

El tercer fichero, y el único obligatorio en la estructura del add-on, es el fichero «addon.xml». Contiene el identificador de tu add-on, su nombre, el nombre del autor… veamos el de nuestro add-on de ejemplo paso a paso:

1  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2  <addon id="plugin.video.mimediacenter"
3   name="Mi media center"
4   version="1.0.2"
5   provider-name="tvalacarta">
6    <requires>
7      <import addon="xbmc.python" version="2.0"/>
8      <import addon="plugin.video.youtube" version="3.0.0"/>
9    </requires>
10   <extension point="xbmc.python.pluginsource" library="default.py">
11     <provides>video</provides>
12   </extension>
13   <extension point="xbmc.addon.metadata">
14     <summary lang="en">Mi media center</summary>
15     <description lang="en">Ideas para llevar la experiencia multimedia al salón</description>
16     <summary lang="es">Mi media center</summary>
17     <description lang="es">Ideas para llevar la experiencia multimedia al salón</description>
18     <platform>all</platform>
19   </extension>
20 </addon>

Hay cuatro bloques importantes que deben rellenarse cuando desarrollas tu propio add-on, lo normal suele ser buscar un fichero ya hecho y modificarlo según tus necesidades.

2  <addon id="plugin.video.mimediacenter"
3   name="Mi media center"
4   version="1.0.2"
5   provider-name="tvalacarta">

El primer bloque es muy importante porque hay varios aspectos del funcionamiento del add-on que dependerán de estos valores, especificados como atributos del XML.

  • id: Es el identificador interno del add-on. Debe coincidir con el nombre de directorio que emplees en el ZIP, y será utilizado en el código para acceder a cosas como la configuración.
  • name: El nombre con el que el usuario verá el add-on.
  • version: Visible en pantalla, y utilizado para las actualizaciones.
  • provider-name: Nombre del autor / autores.
6    <requires>
7      <import addon="xbmc.python" version="2.0"/>
8      <import addon="plugin.video.youtube" version="3.0.0"/>
9    </requires>

En este segundo bloque se declaran las dependencias que tiene tu add-on con otros add-ons publicados, ya sea en el repositorio oficial o en el tuyo propio. La dependencia con «xbmc.python» versión 2.0 declara que tu add-on es para XBMC Eden y posteriores.

10   <extension point="xbmc.python.pluginsource" library="default.py">
11     <provides>video</provides>
12   </extension>

Este punto describe el módulo que se ejecutará dentro del add-on cuando el usuario lo seleccione (llamado normalmente «default.py» por convención), y la distinción de si el add-on es de vídeo, audio, etc. Lo que pongas aquí determina en qué menú aparece el add-on.

13   <extension point="xbmc.addon.metadata">
14     <summary lang="en">Mi media center</summary>
15     <description lang="en">Ideas para llevar la experiencia multimedia al salón</description>
16     <summary lang="es">Mi media center</summary>
17     <description lang="es">Ideas para llevar la experiencia multimedia al salón</description>
18     <platform>all</platform>
19   </extension>

Descripción del add-on en varios idiomas, conviene poner al menos la versión en inglés para que todo el mundo pueda verla ya que es la utilizada por defecto. Qué valores se visualizarán en cada caso depende del skin del usuario.

El empaquetado

Los add-ons se distribuyen en ficheros ZIP, que por convención se llaman utilizando el identificador del add-on y la versión siguiendo este esquema:

identificador-version.zip

Por ejemplo

plugin.video.mimediacenter-1.0.2.zip

Realmente no es necesario seguir esta convención, puedes darle al fichero ZIP el nombre que tú quieras siempre que la estructura interna sea la correcta.

Dentro del ZIP tiene que estar todo en un directorio que se llame igual que el identificador del add-on, y tiene que tener al menos el fichero addon.xml y el módulo .py de arranque.

Archive:  plugin.video.mimediacenter-1.0.2.zip
 Length    Size  Ratio Name
-------- ------- ----- ----
   35821   12288  66%  plugin.video.mimediacenter/LICENSE.txt
     796     337  58%  plugin.video.mimediacenter/addon.xml
    2965    1083  64%  plugin.video.mimediacenter/default.py
  155007  152729   2%  plugin.video.mimediacenter/fanart.jpg
   50730   50669   0%  plugin.video.mimediacenter/icon.png
    3935    1385  65%  plugin.video.mimediacenter/plugintools.py
-------- -------  ---  -------
  249254  218491  12%  6 files

Próxima entrada

Y eso es todo por hoy. En la siguiente entrega volveremos a la programación para ver con detalle el uso de expresiones regulares en la extracción de datos, para ayudarte a que les pierdas el miedo.

3 comentarios

  1. Gracias. Siguiendo el tutorial perfectamente. Espero ka próxima entrada.

  2. por favor echame una mano amigo , la verdad llevo meses mandado mensaje de ayuda aqui y otros foros y no veo respuesta o interes de ayudar aun samaritano , quiero crear un addon yo ya tengo las bases osea el xml donde viene mi contenido , y fanart y el icon , y el archivo addon.xml que gracias aqui pude crearlo , pero me falta cabeza y apoyo para el seguiente paso osea lo mas dificil los archivos py o python se que sin eso nada mas no arranca el addon es el motor , y no e logrado entender la estructura. es posible que me puedas echar una mano en esto por correo u otro medio.

  3. Si hombre, sí 🙂

    ¿Que tipo de addon quieres hacer?

    Si prefieres hablarlo por email, puedes contactarme en tvalacarta@gmail.com

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *