Creando listas m3u desde la web

AVISO: Esta entrada tiene más de dos años desde su publicación. Es posible que el contenido esté desactualizado.

El post que voy a colocar hoy es algo que tenía pendiente desde hace algún tiempo. Se trata de un pequeño programa con el que poder tener una lista de canales m3u desde la web. En este post no voy a publicarlo todo, pero si lo suficiente para que todo aquel que quiera pueda montarse su propio scrapper de enlaces.

Para poder realizar el tuyo propio solo necesitaras tener montado un servidor local (un XAMPP puede valerte). También será necesario un editor de código (en mi caso yo utilizo Sublime Text3). Es evidente que necesitas Kodi y LiveStream Pro

Creando listas m3u desde la web para LiveStream Pro de Kodi

Abrimos el archivo index.php y en el podemos añadir algo como lo siguiente:

#URL en la que buscar. Se puede pasar por POST o añadirla directamente entre ""
$url = file_get_contents($_POST['direcciones']);
             
//creamos la variabale para el DOM
$dom = new DOMDocument();
//cargamos el html de la url. Se le añade el @ para evitar que se cuele algún error
@$dom->loadHTML($url);
//creamos la variable para DOMXPATH 
$xpath = new DOMXPath($dom);

//buscamos dentro de $xpath con evaluate los enlaces dentro de la etiqueta body  y dentro de la de html
$hrefs = $xpath->evaluate("/html/body//a");

//buscamos la dirección del logo
$logos = $xpath->evaluate("/html/body//a//img");

//Línea informativa. La variable POST indica la URL que se le pasa
echo "#EXTM3U";
echo "<p>#EXTINF:0 tvg-logo='http://3.bp.blogspot.com/-y4unZ0eDvwI/Va0iM4h5RUI/AAAAAAAAAXI/kzRDvCxSVxg/s1600/m3u.jpg', [B][COLOR red]Listado de canales importables desde ".$_POST['direcciones']." (Pueden tardar un minuto o así en cargar, en caso de que funcione.)[/COLOR][/B]<br/>http://pornicoidico.net</p><br/>";

//Bucle para recorrer todos los enlaces de la página web
for ($i = 0; $i < $hrefs->length; $i++) {
     //buscamos la dirección del canal
     $href = $hrefs->item($i);
     //buscamos la dirección del logo
     
     //nos quedamos con el valor del href             
     $cadena = $href->getAttribute('href');
     
     //nos aseguramos que tenemos una url para el logo             
     if($logos->item($i)!==null){
            //guardamos la iteración
            $logo = $logos->item($i);
            //nos quedamos con el valor del src
            $logoF  = $logo->getAttribute('src');
            //Primera parte de cada uno de los enlaces
            echo '#EXTINF:-1 tvg-id="" tvg-name="" tvg-logo="" group-title="ESPAÑA", '.@$cadena.'<br />';
            //Segunda parte de cada uno de los enlaces
            echo 'plugin://plugin.video.SportsDevil/?mode=1&amp;item=catcher%3dstreams%26url='.@$cadena.'%26referer={Aquí hay que colocar el dominio} <br/><br/>';
      }

}

Aclaraciones para realizar listas m3u desde la web

En la última línea hay que asegurarse de incluir el nombre del dominio (http:// incluido). Con esto Kodi lo interpreterá correctamente.

Este código es mucho más que mejorable, pero es una buena primera base para todo el que quieras fabricarse sus propias listas m3u desde la web de turno que emite. Quiero aclarar que este no es un sistema 100% efectivo, y mucho menos sin modificar el código que acabo de dejar.

Algunos de los canales que emiten estas páginas web tienen una codificación diferente a la que SportDevil no puede plantarle cara. Otros de los canales pueden tardar un poco en cargarse (cosas de SportDevil).

En caso de que queráis obtener enlaces que incluyen las url que se obtienen con el código que podéis leer en este post, sería necesario buscar el iframe que emite. Pero esto es solo una idea.

Como ya he escrito, yo he desarrollado este código un poco más. Todavía le falta afinar un poco, pero por el momento he conseguido listar la mayoría de los canales que aloja una web. Tiene además añadido el logo cada uno de los registros obtenidos. Esto como digo necesita una afinación y a que los últimos logos no corresponden con los canales. Además algunos de los canales se repiten teniendo la misma url. Pero bueno, es cuestión de mejorarlo un poco.

Si queréis ver un resultado de la lista m3u desde la web con canales en español, lo tenéis disponible en el siguiente enlace.

LISTADO M3U

… como siempre digo. Desde entreunosyceros solo animamos a aprender de este post. En ningún momento a utilizarlo ya que a estas alturas, creo que ya no funciona.

Post relacionados

Recetario web, crea el tuyo y ten tus recetas de cocina a mano

Registro de transacciones exportando a Excel utilizando PHP y MySQL

Aplicación del tiempo. Crea la tuya con la API de openweathermap

WordPress › Error

Ha habido un error crítico en esta web.

Aprende más sobre el diagnóstico de WordPress.