import re
import unicodedata

def normalizar(texto):
    texto = unicodedata.normalize(
        "NFD", str(texto).lower()
    )
    return "".join(
        c for c in texto
        if unicodedata.category(c) != "Mn"
    )

def extraer_canales(respuesta):
    if not isinstance(respuesta, dict):
        return {}

    canales = {}

    for proveedor in respuesta.get("Providers", []):
        if proveedor.get("Id") != "lmp":
            continue

        for canal in proveedor.get("Streams", []):
            identificador = canal.get("Id")
            nombre = canal.get("Name", "")

            if not identificador or not nombre:
                continue

            canales[identificador] = {
                "id": identificador,
                "name": nombre,
                "normalized_name": normalizar(nombre),
                "running": canal.get("Running", False),
                "ondemand": canal.get("OnDemand", False),
                "status": canal.get("Status", ""),
                "urls": canal.get("StreamingUrls", [])
            }

    return canales
