Hola a todos, soy recien llegado y tengo creo que puedo resolver bastantes dudas acerca de la plataforma de lovestv
La aplicación en si está basada en freetimetv, que es la aplicación base franco-alemana desarrollada por sofiadigital que impulsa el tema del hbb, y que al llegar a españa, ha sido horriblemente violada por los becarios de cellnex, que ha decidido usar solo el interfaz ux y crear una serie de procesos adicionales, voy a intentar definir un poco estos procesos:
Lo primero que pasa cuando se ejecuta el app, es que envias TODA la información posible que se puede sacar de tu tv a un servidor de cellnex, y cuando digo TODA me refiero a que no se recogen valores especificos, sino que hay un script que recorre todos las posibles variables definidas por la tv y las recopila, por ejemplo, lista y orden de canales, configuraciones como idioma, conexiones de red, configuracion del mando, cada evento capturable del mando a distancia, es enviado igualmente, de hecho si no envias ninguna peticion en 5 segundos, envias un heartbeat. Quiero remarcar que esto sucede cuando se ejecuta el app, osea, al sintonizar el canal, asi que esto pasa igual aunque no abras ningun menu de lovestv, si estas viendo la tv digital, igualmente te registras y envias periodicamente datos o pulsaciones en tu mando. el token identifica tu tv y queda residiendo permanentemente.
Una vez estas registrado, se abre el proceso de telemetria de datos que decia antes, y el "hook", eso si tu TV tiene que estar en su lista o se te cancela la carga del hook, por eso algunos modelos aun teniendo hbb no se puede usar, son descartados por la propia plataforma en prevision de ofrecer un servicio no funcional, o vete tu a saber... la programacion de esta parte es chapucera a mas no poder, multiples redirecciones te envian hacia el menu que selecciones, y en la tv da el pego...
Una vez que llegas al sitio donde quieres ir, por encima del UI hay diversos APIs para muchas funciones, obtener EPG, obtener imagenes, un sistema de seeking restrictivo para que te tengas que comer los anuncios por cojones, no es coña, por ejemplo, estos son los cortes publicitarios del programa de AR del 22
http://mdst-t5-adbreaks.lovestv.es/1553241313.json y estos sus subtitulos
https://mdst-t5-subtitles.lovestv.es/1553241313_es.SRT
Cualquiera que este interesado seriamente en ver mas profundamente los apis que lo diga y le mando datos...
Hace unos dias han actualizado y se han cortado algunos de los accesos que usaba, de hecho tengo un visor de lovestv personalizado que ahora tengo que actualizar para los nuevos cambios que han introducido
Como ya se había visto antes en este foro (y por lo que llegué aquí) se siguen generando enlaces DASH que con la posicion inicial y final en tiempo unix del programa, solo que se le ha añadido a la url un token de verificacion con CrptoJS... mi interpretación del algoritmo sería algo así
Código: Seleccionar todo
function validate_link(link) {
var url = new URL(link);
var mid = url.pathname+((url.search=="")?"?":url.search+"&")+"nvb=1527155886&nva=1558691886";
var hash = "0" + CryptoJS.HmacSHA1(mid, 'IvkducjfYpopK2345huf8dsfaefpdoemcuvjopiqaeriqjw4fpfoiqu432jhiefo').toString().substr(0, 20);
return (url.origin+mid+"&hash="+hash);
}
y pues con dash, se ve, lleva sus multiples bitrates e idiomas y todo
La cuestion, es que esto es mucho mas comodo en la tv que en una web o un app, debido a que las tv normalmente no soportan proxy (por lo menos lge o sony) se me ocurre que podriamos disponer de un servidor DNS y web, de forma que al configurar la red con la dns de nuestro servidor, el servidor indique que la ip del dominio donde esta loves sea la propia del servidor, y podamos suplantar el tdtplayer y proxificar el resto de peticiones, con lo que podriamos eliminar la telemetria del todo, hacer que los anuncios se salten o añadir un menu nuevo si alguien se lo curra, ademas de eliminar limitaciones de dispositivos...
Si teneis dudas, o quereis ayudar con algo, o ideas, pues andaré por aqui. Un saludo
Edit: añado los modelos de tv compatibles con loves:
https://pastebin.com/Ar4490bN