Professional Documents
Culture Documents
com
El lenguaje de programación que se usa para la creación de los canales es Python. Usaremos el editor de
texto Notepad++ (Editor de textos básico) para la edición los archivos:
https://notepad-plus-plus.org/
Empezaremos a crear un canal con lo más básico pero funcional, el canal que tomaremos en cuenta es Pelis
Ultra:
http://www.pelisultra.com
La creación de un canal está compuesto por 2 archivos:
1.- pelisultra.json
2.- pelisultra.py
En el archivo pelisultra.json encontraremos la configuración del canal.
En el archivo pelisultra.py encontraremos el código para mostrar los videos del canal.
Estos 2 archivos lo colocaremos en la carpeta “channels” del addon Alfa.
{
"id": "pelisultra",
"name": "Pelisultra",
"active": true,
"adult": false,
"language": ["lat"],
"categories": [
"movie"
]
}
ADDON ALFA www.alfa-addon.com
id =
nombre físico del canal y tiene que coincidir con el del py
name =
nombre del canal que aparece en la lista de canales de Alfa
active =
si el canal está activo o no
adult =
si el canal es un canal adulto
language =
que idiomas de los videos tiene ese canal
lat = latino
esp = español de españa
categories = las categorías al cual pertenecerá el canal:
movie = películas
tvshow = series
documentary = documentales
anime = anime
direct = directos
adult = adultos
def mainlist(item):
logger.info()
itemlist = []
itemlist.append(Item(channel = item.channel,
title = "Novedades",
action = "peliculas",
url = “http://www.pelisultra.com”
))
return itemlist
def peliculas(item):
logger.info()
itemlist = []
data = httptools.downloadpage(item.url).data
patron = '(?s)class="ml-item.*?a href="([^"]+).*?'
patron += 'img src="([^"]+).*?'
patron += 'alt="([^"]+)'
matches = scrapertools.find_multiple_matches(data, patron)
for scrapedurl, scrapedthumbnail, scrapedtitle in matches:
itemlist.append(Item(action = "findvideos",
channel = item.channel,
title = scrapedtitle,
thumbnail = scrapedthumbnail,
url = scrapedurl
))
return itemlist
Es la línea inicial de todo archivo de canales, que especifica el tipo de codificación del archivo, que es: utf-8
Estas son las librerías básicas de Alfa (métodos que simplifican la creación de los canales), que serán
importadas para su uso en los canales.
def mainlist(item):
logger.info()
itemlist = []
itemlist.append(Item(channel = item.channel,
title = "Novedades",
action = "peliculas",
url = “http://www.pelisultra.com”
))
return itemlist
Este es el método principal (mainlist) para mostrar las opciones del canal, éste código se mostrará como la
siguiente imagen en kodi:
ADDON ALFA www.alfa-addon.com
itemlist.append(Item(channel = item.channel,
title = "Novedades",
action = "peliculas",
url = “http://www.pelisultra.com”
))
Esta parte del código ( itemlist.append(Item )se usa para definir cada una de las secciones que
aparecerán en el canal, por ejemplo: Novedades, Recientes, Por año, Por género, Buscar, etc.
itemlist.append(Item(channel = item.channel,
title = "Géneros",
action = "generos",
url = “http://www.pelisultra.com/generos”
))
ADDON ALFA www.alfa-addon.com
Este es el código del método que se ejecutará cuando se escoja la categoría “Novedades” que se definió en
el método mainlist()
def peliculas(item):
logger.info()
itemlist = []
data = httptools.downloadpage(item.url).data
patron = '(?s)class="ml-item.*?a href="([^"]+).*?'
patron += 'img src="([^"]+).*?'
patron += 'alt="([^"]+)'
matches = scrapertools.find_multiple_matches(data, patron)
for scrapedurl, scrapedthumbnail, scrapedtitle in matches:
itemlist.append(Item(action = "findvideos",
channel = item.channel,
title = scrapedtitle,
thumbnail = scrapedthumbnail,
url = scrapedurl
))
return itemlist
logger.info() se usa para registrar en el log detallado en que método se encuentra la ejecución del
canal y hacer seguimiento a posibles errores del canal.
Es el famoso regex (expresiones regulares), la cual es clave para obtener la información de las páginas para
que sea mostrado en el addon Alfa.
Un manual básico para empezar con las expresiones regulares lo pueden ver aquí:
https://www.youtube.com/watch?v=PS51kS8rvao
ADDON ALFA www.alfa-addon.com
Para ver que regex usar hay que ver primero el código fuente de la página de la cual se quiere obtener la
información. En Google Chrome, se hace de la siguiente manera:
En éste caso sería éste código “el patrón” en todas las películas (de la línea 991 a la 1006):
www.regex101.com
1.- Clic para configurar el “flavor” en Python.
2.- Clic para configurar el “delimiter” en triple comillas “”” para no tener problemas
1.- Regular expresión: Colocar aquí el regex que se quiere probar.
2.- Test String: Colocar aquí el texto en el cual se quiere buscar.
(?s) : Ésta parte indica que obviará todo salto de línea para la búsqueda si lo que se busca está dividido en 2
líneas o mas para no tener problemas
class = "ml-item : Ésta parte del regex busca en el código fuente de la página el texto: 'class="ml-item
.*? : Busca cualquier texto hasta lo siguiente.
a href=”([^”]+) : Ésta parte busca todo el texto (+) que está después del texto a href=” hasta que encuentre
el carácter “ , los paréntesis quiere decir que es el texto que tomará el regex (grupo)
.*? Vuelve a buscar todo el texto después del caracter “
ADDON ALFA www.alfa-addon.com
Con éste regex ya encontró el primer dato que queríamos que era el url de la película: Donde dice “Group 1”
a la derecha en verde.
La segunda línea del patrón obtiene la imagen de la película:
patron += 'alt="([^"]+)'
Se hace el código en las 3 líneas solo para que pueda ser mas legible, y separar cada línea con el dato (grupo)
que se busca.
A la derecha (group 1, group 2, group 3) son los datos obtenidos con nuestro regex.
Con esta línea se ejecuta el regex que creamos y se guardarán los “3 grupos encontrados en la variable
matches
Con estas líneas agregamos a itemlist, los 3 datos encontrados y el action = “findvideos” hace que Alfa
busque automáticamente los links de los servidores en la página “url”
scrapedurl, scrapedthumbnail, scrapedtitle son variables con el nombre que nosotros le demos, de los 3
grupos de datos encontrados en “matches”
return itemlist
Devuelve itemlist al addon alfa con los datos que agregamos para que sean mostrados en kodi.
Itemlist contiene internamente algunos datos como éstos:
Este es el manual básico para la creación de canales, por supuesto hay mucho mas para crear los canales,
como encontrar los links escondidos o encriptados, usar la base de datos TMDB para mostrar información de
la serie o película, pero estas cosas solo se logra practicando, preguntando y siendo perseverante, para que
tu canal favorito esté en el Addon Alfa.
www.alfa-addon.com
Team Developers Alfa Addon