# -*- coding: utf-8 -*-

from __future__ import unicode_literals

# This dictionary is not really needed to list the live channels because the list is dynamically generated to keep
# only the active channels for the account.
# It is necessary to have the EPG by setting the xmltv id and also to have a higher-quality thumb.
# That's why a lot of code is commented out, this information is precisely what's missing for the commented channels.

menu = {
    'NEUF_TF1': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'TF1',
        'thumb': 'channels/fr/tf1.png',
        'fanart': 'channels/fr/tf1_fanart.jpg',
        'xmltv_id': 'C192.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 1,
        'enabled': True,
        'order': 1
    },
    'NEUF_FRANCE2': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'France 2',
        'thumb': 'channels/fr/france2.png',
        'fanart': 'channels/fr/france2_fanart.jpg',
        'xmltv_id': 'C4.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 2,
        'enabled': True,
        'order': 2
    },
    'NEUF_FRANCE3': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'France 3',
        'thumb': 'channels/fr/france3.png',
        'fanart': 'channels/fr/france3_fanart.jpg',
        'xmltv_id': 'C80.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 3,
        'enabled': True,
        'order': 3
    },
    'NEUF_FRANCE5': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'France 5',
        'thumb': 'channels/fr/france5.png',
        'fanart': 'channels/fr/france5_fanart.jpg',
        'xmltv_id': 'C47.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 5,
        'enabled': True,
        'order': 5
    },
    'NEUF_M6': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'M6',
        'thumb': 'channels/fr/m6.png',
        'fanart': 'channels/fr/m6_fanart.jpg',
        'xmltv_id': 'C118.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 6,
        'enabled': True,
        'order': 6
    },
    'NEUF_ARTE': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'Arte',
        'thumb': 'channels/fr/arte.png',
        'fanart': 'channels/fr/arte_fanart.jpg',
        'xmltv_id': 'C111.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 7,
        'enabled': True,
        'order': 7
    },
    'NEUF_DIRECT8': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'C8',
        'thumb': 'channels/fr/c8.png',
        'fanart': 'channels/fr/c8_fanart.jpg',
        'xmltv_id': 'C445.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 8,
        'enabled': True,
        'order': 8
    },
    'NEUF_W9': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'W9',
        'thumb': 'channels/fr/w9.png',
        'fanart': 'channels/fr/w9_fanart.jpg',
        'xmltv_id': 'C119.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 9,
        'enabled': True,
        'order': 9
    },
    'NEUF_TMC': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'TMC',
        'thumb': 'channels/fr/tmc.png',
        'fanart': 'channels/fr/tmc_fanart.jpg',
        'xmltv_id': 'C195.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 10,
        'enabled': True,
        'order': 10
    },
    'NEUF_NT1': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'TFX',
        'thumb': 'channels/fr/tfx.png',
        'fanart': 'channels/fr/tfx_fanart.jpg',
        'xmltv_id': 'C446.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 11,
        'enabled': True,
        'order': 11
    },
    'NEUF_NRJ12': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'NRJ12',
        'thumb': 'channels/fr/nrj12.png',
        'fanart': 'channels/fr/nrj12_fanart.jpg',
        'xmltv_id': 'C444.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 12,
        'enabled': True,
        'order': 12
    },
    'NEUF_LCP': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'LCP',
        'thumb': 'channels/fr/lcp.png',
        'fanart': 'channels/fr/lcp_fanart.jpg',
        'xmltv_id': 'C234.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 13,
        'enabled': True,
        'order': 13
    },
    'NEUF_FRANCE4': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'France 4',
        'thumb': 'channels/fr/france4.png',
        'fanart': 'channels/fr/france4_fanart.jpg',
        'xmltv_id': 'C78.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 14,
        'enabled': True,
        'order': 14
    },
    'NEUF_BFMTV': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'BFM TV',
        'thumb': 'channels/fr/bfmtv.png',
        'fanart': 'channels/fr/bfmtv_fanart.jpg',
        'xmltv_id': 'C481.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 15,
        'enabled': True,
        'order': 15
    },
    'NEUF_ITELE': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'CNews',
        'thumb': 'channels/fr/cnews.png',
        'fanart': 'channels/fr/cnews_fanart.jpg',
        'xmltv_id': 'C226.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 16,
        'enabled': True,
        'order': 16
    },
    'NEUF_VIRGIN17': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'CStar',
        'thumb': 'channels/fr/cstar.png',
        'fanart': 'channels/fr/cstar_fanart.jpg',
        'xmltv_id': 'C458.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 17,
        'enabled': True,
        'order': 17
    },
    'NEUF_GULLI': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'Gulli',
        'thumb': 'channels/fr/gulli.png',
        'fanart': 'channels/fr/gulli_fanart.jpg',
        'xmltv_id': 'C482.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 18,
        'enabled': True,
        'order': 18
    },
    'NEUF_HD1': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'TF1 Séries-Films',
        'thumb': 'channels/fr/tf1seriesfilms.png',
        'fanart': 'channels/fr/tf1seriesfilms_fanart.jpg',
        'xmltv_id': 'C1404.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 20,
        'enabled': True,
        'order': 20
    },
    'NEUF_LEQUIPETV': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'La chaine l’Équipe',
        'thumb': 'channels/fr/lequipe.png',
        'fanart': 'channels/fr/lequipe_fanart.jpg',
        'xmltv_id': 'C1401.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 21,
        'enabled': True,
        'order': 21
    },
    'NEUF_6TER': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': '6ter',
        'thumb': 'channels/fr/6ter.png',
        'fanart': 'channels/fr/6ter_fanart.jpg',
        'xmltv_id': 'C1403.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 22,
        'enabled': True,
        'order': 22
    },
    'NEUF_NUM23': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'RMC STORY',
        'thumb': 'channels/fr/rmcstory.png',
        'fanart': 'channels/fr/rmcstory_fanart.jpg',
        'xmltv_id': 'C1402.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 23,
        'enabled': True,
        'order': 23
    },
    'NEUF_RMCDEC': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'RMC Découverte',
        'thumb': 'channels/fr/rmcdecouverte.png',
        'fanart': 'channels/fr/rmcdecouverte_fanart.jpg',
        'xmltv_id': 'C1400.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 24,
        'enabled': True,
        'order': 24
    },
    'NEUF_CHERIE25': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'Chérie 25',
        'thumb': 'channels/fr/cherie25.png',
        'fanart': 'channels/fr/cherie25_fanart.jpg',
        'xmltv_id': 'C1399.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 25,
        'enabled': True,
        'order': 25
    },
    'NEUF_LCI': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'LCI',
        'thumb': 'channels/fr/lci.png',
        'fanart': 'channels/fr/lci_fanart.jpg',
        'xmltv_id': 'C112.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 26,
        'enabled': True,
        'order': 26
    },
    'NEUF_FRANCEINFO': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'franceinfo:',
        'thumb': 'channels/fr/franceinfo.png',
        'fanart': 'channels/fr/franceinfo_fanart.jpg',
        'xmltv_id': 'C2111.api.telerama.fr',
        'm3u_group': 'TNT',
        'm3u_order': 27,
        'enabled': True,
        'order': 27
    },
    'NEUF_GUYSEN': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'i24 news',
        'thumb': 'channels/fr/i24news.png',
        'fanart': 'channels/fr/i24news_fanart.jpg',
        'xmltv_id': 'C781.api.telerama.fr',
        'm3u_group': 'Satellite/FAI',
        'm3u_order': 28,
        'enabled': True,
        'order': 28
    },
    'NEUF_BFMBUSINESS': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'BFM Business',
        'thumb': 'channels/fr/bfmbusiness.png',
        'fanart': 'channels/fr/bfmbusiness_fanart.jpg',
        'xmltv_id': 'C1073.api.telerama.fr',
        'm3u_group': 'Satellite/FAI',
        'm3u_order': 31,
        'enabled': True,
        'order': 31
    },
    'NEUF_01NET': {
        'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
        'label': 'TECH & CO',
        'thumb': 'channels/fr/01net.png',
        'fanart': 'channels/fr/01net_fanart.jpg',
        'm3u_group': 'Satellite/FAI',
        'm3u_order': 32,
        'enabled': True,
        'order': 32
    },
    # 'NEUF_RMCSPORT1': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RMC Sport 1',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 33,
    #     'enabled': True,
    #     'order': 33
    # },
    # 'NEUF_RMCSPORT2': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RMC Sport 2',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 34,
    #     'enabled': True,
    #     'order': 34
    # },
    # 'NEUF_BFMPARIS': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'BFM PARIS ILE-DE-FRANCE',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 39,
    #     'enabled': True,
    #     'order': 39
    # },
    # 'NEUF_DISCOVERYCHNL': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Discovery Channel',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 40,
    #     'enabled': True,
    #     'order': 40
    # },
    # 'NEUF_DISCOVERYSCN': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Discovery Science',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 41,
    #     'enabled': True,
    #     'order': 41
    # },
    # 'NEUF_DISCOVERYINVST': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Discovery Investigation',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 43,
    #     'enabled': True,
    #     'order': 43
    # },
    # 'NEUF_FRANCE24': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 24',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 47,
    #     'enabled': True,
    #     'order': 47
    # },
    # 'NEUF_EURONEWS_FR': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Euronews',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 48,
    #     'enabled': True,
    #     'order': 48
    # },
    # 'NEUF_13EMERUE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': '13ème rue',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 50,
    #     'enabled': True,
    #     'order': 50
    # },
    # 'NEUF_SYFY': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Syfy',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 51,
    #     'enabled': True,
    #     'order': 51
    # },
    # 'NEUF_EENTERTAINMENT': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'E! Entertainment',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 52,
    #     'enabled': True,
    #     'order': 52
    # },
    # 'NEUF_MCSMAISON': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'My Cuisine',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 55,
    #     'enabled': True,
    #     'order': 55
    # },
    # 'NEUF_MTV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'MTV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 56,
    #     'enabled': True,
    #     'order': 56
    # },
    # 'NEUF_MCM': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'MCM',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 57,
    #     'enabled': True,
    #     'order': 57
    # },
    # 'NEUF_AB1': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'AB1',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 58,
    #     'enabled': True,
    #     'order': 58
    # },
    # 'NEUF_SERIECLUB': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'SERIE CLUB',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 59,
    #     'enabled': True,
    #     'order': 59
    # },
    # 'NEUF_GAMEONE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Game One',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 60,
    #     'enabled': True,
    #     'order': 60
    # },
    # 'NEUF_GAMEONE1': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Game One +1',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 61,
    #     'enabled': True,
    #     'order': 61
    # },
    # 'NEUF_WARNER_TV_NEXT': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Warner TV Next',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 62,
    #     'enabled': True,
    #     'order': 62
    # },
    # 'NEUF_JONE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'J-One',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 63,
    #     'enabled': True,
    #     'order': 63
    # },
    # 'NEUF_BET': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'BET',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 64,
    #     'enabled': True,
    #     'order': 64
    # },
    # 'NEUF_COMEDYCENTRAL': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Comedy Central',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 65,
    #     'enabled': True,
    #     'order': 65
    # },
    # 'NEUF_PARPREM': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Paris Première',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 70,
    #     'enabled': True,
    #     'order': 70
    # },
    # 'NEUF_TEVA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Téva',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 71,
    #     'enabled': True,
    #     'order': 71
    # },
    # 'NEUF_RTL9': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RTL9',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 72,
    #     'enabled': True,
    #     'order': 72
    # },
    # 'NEUF_TVBREIZH': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TV Breizh',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 73,
    #     'enabled': True,
    #     'order': 73
    # },
    # 'NEUF_TV5MONDE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TV5 Monde',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 74,
    #     'enabled': True,
    #     'order': 74
    # },
    # 'NEUF_TF1PLUSONE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TF1 + 1',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 75,
    #     'enabled': True,
    #     'order': 75
    # },
    # 'NEUF_TMCPLUSONE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TMC + 1',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 76,
    #     'enabled': True,
    #     'order': 76
    # },
    # 'NEUF_CPLUS_BOX_OFFICE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'CANAL+ BOX OFFICE',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 83,
    #     'enabled': True,
    #     'order': 83
    # },
    # 'NEUF_LCPAN': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'LCP-AN 24/24',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 103,
    #     'enabled': True,
    #     'order': 103
    # },
    # 'NEUF_PUBSENAT': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Public Sénat',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 104,
    #     'enabled': True,
    #     'order': 104
    # },
    # 'NEUF_SFRSPORT1': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RMC Sport Access',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 106,
    #     'enabled': True,
    #     'order': 106
    # },
    # 'NEUF_CPLUS_LIGUE1': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'CANAL+ Ligue 1 Uber Eats',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 114,
    #     'enabled': True,
    #     'order': 114
    # },
    # 'NEUF_BEINSPORT1': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'beIN SPORTS 1',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 115,
    #     'enabled': True,
    #     'order': 115
    # },
    # 'NEUF_BEINSPORT2': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'beIN SPORTS 2',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 116,
    #     'enabled': True,
    #     'order': 116
    # },
    # 'NEUF_BEINMULTI1': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'beIN SPORTS 3',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 117,
    #     'enabled': True,
    #     'order': 117
    # },
    # 'NEUF_DAZN1': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'DAZN 1',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 118,
    #     'enabled': True,
    #     'order': 118
    # },
    # 'NEUF_EQUIDIA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Equidia',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 119,
    #     'enabled': True,
    #     'order': 119
    # },
    # 'NEUF_MGG_TV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'MGG TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 121,
    #     'enabled': True,
    #     'order': 121
    # },
    # 'NEUF_ABMOTEURS': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Automoto la chaine',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 125,
    #     'enabled': True,
    #     'order': 125
    # },
    # 'NEUF_GOLFCHANNEL': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Golf Channel',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 126,
    #     'enabled': True,
    #     'order': 126
    # },
    # 'NEUF_SPORT_EN_FRANCE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Sport en France',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 129,
    #     'enabled': True,
    #     'order': 129
    # },
    # 'NEUF_OLPLAY': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'OLPLAY',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 130,
    #     'enabled': True,
    #     'order': 130
    # },
    # 'NEUF_OCINEMAX': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'OCS Max',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 141,
    #     'enabled': True,
    #     'order': 141
    # },
    # 'NEUF_OCINEPULP': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'OCS Pulp',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 143,
    #     'enabled': True,
    #     'order': 143
    # },
    # 'NEUF_OCINEGEANTS': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'OCS Geants',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 144,
    #     'enabled': True,
    #     'order': 144
    # },
    # 'NEUF_CINE+PREMIER': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Ciné+ Premier',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 146,
    #     'enabled': True,
    #     'order': 146
    # },
    # 'NEUF_CINE+FRISSON': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Ciné+ Frisson',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 147,
    #     'enabled': True,
    #     'order': 147
    # },
    # 'NEUF_CINE+EMOTION': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Ciné+ Emotion',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 148,
    #     'enabled': True,
    #     'order': 148
    # },
    # 'NEUF_CCINEMAFAMIZ': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Ciné+ Famiz',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 149,
    #     'enabled': True,
    #     'order': 149
    # },
    # 'NEUF_CCINEMACLUB': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Ciné+ Club',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 150,
    #     'enabled': True,
    #     'order': 150
    # },
    # 'NEUF_CCINEMACLASSIC': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Ciné+ Classic',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 151,
    #     'enabled': True,
    #     'order': 151
    # },
    # 'NEUF_PARAMOUNT': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Paramount Channel',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 160,
    #     'enabled': True,
    #     'order': 160
    # },
    # 'NEUF_PARAMOUNT+1': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Paramount Channel Décalé',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 161,
    #     'enabled': True,
    #     'order': 161
    # },
    # 'NEUF_TCM': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TCM Cinéma',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 162,
    #     'enabled': True,
    #     'order': 162
    # },
    # 'NEUF_ACTION': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Action',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 163,
    #     'enabled': True,
    #     'order': 163
    # },
    # 'NEUF_USHUAIA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Ushuaia TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 173,
    #     'enabled': True,
    #     'order': 173
    # },
    # 'NEUF_ESCALES': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TREK',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 174,
    #     'enabled': True,
    #     'order': 174
    # },
    # 'NEUF_CRIMEDISCTRICT': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Crime District',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 175,
    #     'enabled': True,
    #     'order': 175
    # },
    # 'NEUF_HISTOIRE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Histoire',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 177,
    #     'enabled': True,
    #     'order': 177
    # },
    # 'NEUF_TTELHISTOIRE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Toute l\'Histoire',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 178,
    #     'enabled': True,
    #     'order': 178
    # },
    # 'NEUF_KTO': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'KTO',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 179,
    #     'enabled': True,
    #     'order': 179
    # },
    # 'NEUF_ANIMAUX': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Animaux',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 180,
    #     'enabled': True,
    #     'order': 180
    # },
    # 'NEUF_CHASSEPECHE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Chasse et Pêche',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 181,
    #     'enabled': True,
    #     'order': 181
    # },
    # 'NEUF_ENCYCLOPEDIA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Science et Vie TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 182,
    #     'enabled': True,
    #     'order': 182
    # },
    # 'NEUF_LUXETV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Luxe TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 183,
    #     'enabled': True,
    #     'order': 183
    # },
    # 'NEUF_FASHIONTV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Fashion TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 184,
    #     'enabled': True,
    #     'order': 184
    # },
    # 'NEUF_MENSUP': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Men\'s Up TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 185,
    #     'enabled': True,
    #     'order': 185
    # },
    # 'NEUF_ASTRO': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Astrocenter TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 186,
    #     'enabled': True,
    #     'order': 186
    # },
    # 'NEUF_MYZENTV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'My Zen TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 187,
    #     'enabled': True,
    #     'order': 187
    # },
    # 'NEUF_MUSEUM_TV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'MUSEUM TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 191,
    #     'enabled': True,
    #     'order': 191
    # },
    # 'NEUF_NICKELODEONJUNIOR': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Nickelodeon Junior',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 200,
    #     'enabled': True,
    #     'order': 200
    # },
    # 'NEUF_BOOMERANG': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Boomerang',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 201,
    #     'enabled': True,
    #     'order': 201
    # },
    # 'NEUF_BOOMERANG+1': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Boomerang +1',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 202,
    #     'enabled': True,
    #     'order': 202
    # },
    # 'NEUF_TIJI': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TIJI',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 203,
    #     'enabled': True,
    #     'order': 203
    # },
    # 'NEUF_DREAMWORKS': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'DREAMWORKS',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 204,
    #     'enabled': True,
    #     'order': 204
    # },
    # 'NEUF_NICKELODEON': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Nickelodeon',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 205,
    #     'enabled': True,
    #     'order': 205
    # },
    # 'NEUF_NICKELODEONPLUSONE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Nickelodeon+1',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 206,
    #     'enabled': True,
    #     'order': 206
    # },
    # 'NEUF_CANALJ': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'CANAL J',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 210,
    #     'enabled': True,
    #     'order': 210
    # },
    # 'NEUF_CARTOONNETWORK': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Cartoon Network',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 211,
    #     'enabled': True,
    #     'order': 211
    # },
    # 'NEUF_NICKELODEONTEEN': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Nickelodeon Teen',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 212,
    #     'enabled': True,
    #     'order': 212
    # },
    # 'NEUF_CARTOONITO': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Cartoonito',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 213,
    #     'enabled': True,
    #     'order': 213
    # },
    # 'NEUF_MANGAS': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Mangas',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 231,
    #     'enabled': True,
    #     'order': 231
    # },
    # 'NEUF_LUCKYJACK': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Lucky Jack',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 234,
    #     'enabled': True,
    #     'order': 234
    # },
    # 'NEUF_MTVHITS': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'MTV Hits',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 250,
    #     'enabled': True,
    #     'order': 250
    # },
    # 'NEUF_M6MUSICHITS': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'M6 Music',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 254,
    #     'enabled': True,
    #     'order': 254
    # },
    # 'NEUF_MCMPOP': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RFM TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 255,
    #     'enabled': True,
    #     'order': 255
    # },
    # 'NEUF_NRJHITS': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'NRJ Hits',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 256,
    #     'enabled': True,
    #     'order': 256
    # },
    # 'NEUF_MEZZO': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Mezzo',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 260,
    #     'enabled': True,
    #     'order': 260
    # },
    # 'NEUF_MEZZOHD': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Mezzo Live HD',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 261,
    #     'enabled': True,
    #     'order': 261
    # },
    # 'NEUF_TELEMELODY': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'MELODY TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 262,
    #     'enabled': True,
    #     'order': 262
    # },
    # 'NEUF_TRACE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Trace Urban',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 263,
    #     'enabled': True,
    #     'order': 263
    # },
    # 'NEUF_TRACETOCA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Trace Toca',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 264,
    #     'enabled': True,
    #     'order': 264
    # },
    # 'NEUF_TRACETROP': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TRACE CARIBBEAN',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 265,
    #     'enabled': True,
    #     'order': 265
    # },
    # 'NEUF_TRACEGOSPEL': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Trace Gospel',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 266,
    #     'enabled': True,
    #     'order': 266
    # },
    # 'NEUF_BEBLACKTV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'BBLACK Classik',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 267,
    #     'enabled': True,
    #     'order': 267
    # },
    # 'NEUF_BBLACKCARIBBEAN': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'BBLACK Caribbean',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 268,
    #     'enabled': True,
    #     'order': 268
    # },
    # 'NEUF_BBLACKAFRICA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'BBLACK Africa',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 269,
    #     'enabled': True,
    #     'order': 269
    # },
    # 'NEUF_MELODYAFRIQUE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Melody d\'Afrique',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 272,
    #     'enabled': True,
    #     'order': 272
    # },
    # 'NEUF_BFMLYON': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'BFM Lyon',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 281,
    #     'enabled': True,
    #     'order': 281
    # },
    # 'NEUF_BFMGRANDLILLE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'BFM Grand Lille',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 282,
    #     'enabled': True,
    #     'order': 282
    # },
    # 'NEUF_BFMGRANDLITTORAL': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'BFM Grand Littoral',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 283,
    #     'enabled': True,
    #     'order': 283
    # },
    # 'NEUF_BFM_MARSEILLEPROV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'BFM MARSEILLE PROVENCE',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 284,
    #     'enabled': True,
    #     'order': 284
    # },
    # 'NEUF_BFM_NICECOTEDAZUR': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'BFM NICE COTE D\'AZUR',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 285,
    #     'enabled': True,
    #     'order': 285
    # },
    # 'NEUF_BFM_TOULONVAR': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'BFM TOULON VAR',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 286,
    #     'enabled': True,
    #     'order': 286
    # },
    # 'NEUF_BFM_DICI_ALPESDUSUD': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'BFM DICI ALPES DU SUD',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 287,
    #     'enabled': True,
    #     'order': 287
    # },
    # 'NEUF_BFM_DICI_HAUTEPROVENCE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'BFM DICI HAUTE-PROVENCE',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 288,
    #     'enabled': True,
    #     'order': 288
    # },
    # 'NEUF_BFM_ALSACE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'BFM ALSACE',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 289,
    #     'enabled': True,
    #     'order': 289
    # },
    # 'NEUF_BFM_NORMANDIE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'BFM NORMANDIE',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 290,
    #     'enabled': True,
    #     'order': 290
    # },
    # 'NEUF_TVSUDCAMCEV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'vià30',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 295,
    #     'enabled': True,
    #     'order': 295
    # },
    # 'NEUF_VIA31': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'vià31',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 296,
    #     'enabled': True,
    #     'order': 296
    # },
    # 'NEUF_TVSUDMONTP': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'vià34',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 297,
    #     'enabled': True,
    #     'order': 297
    # },
    # 'NEUF_VIA66': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'vià66',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 298,
    #     'enabled': True,
    #     'order': 298
    # },
    # 'NEUF_BEINMULTI2': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'beIN SPORTS MAX 4',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 300,
    #     'enabled': True,
    #     'order': 300
    # },
    # 'NEUF_BEINMULTI3': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'beIN SPORTS MAX 5',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 301,
    #     'enabled': True,
    #     'order': 301
    # },
    # 'NEUF_BEINMULTI4': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'beIN SPORTS MAX 6',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 302,
    #     'enabled': True,
    #     'order': 302
    # },
    # 'NEUF_BEINMULTI5': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'beIN SPORTS MAX 7',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 303,
    #     'enabled': True,
    #     'order': 303
    # },
    # 'NEUF_BEINMULTI6': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'beIN SPORTS MAX 8',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 304,
    #     'enabled': True,
    #     'order': 304
    # },
    # 'NEUF_BEINMULTI7': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'beIN SPORTS MAX 9',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 305,
    #     'enabled': True,
    #     'order': 305
    # },
    # 'NEUF_BEINMULTI8': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'beIN SPORTS MAX 10',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 306,
    #     'enabled': True,
    #     'order': 306
    # },
    # 'NEUF_RMCSPORTLIVE3': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RMC Sport Live 3',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 316,
    #     'enabled': True,
    #     'order': 316
    # },
    # 'NEUF_RMCSPORTLIVE4': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RMC Sport Live 4',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 317,
    #     'enabled': True,
    #     'order': 317
    # },
    # 'NEUF_RMCSPORTLIVE5': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RMC Sport Live 5',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 318,
    #     'enabled': True,
    #     'order': 318
    # },
    # 'NEUF_RMCSPORTLIVE6': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RMC Sport Live 6',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 319,
    #     'enabled': True,
    #     'order': 319
    # },
    # 'NEUF_RMCSPORTLIVE7': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RMC Sport Live 7',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 320,
    #     'enabled': True,
    #     'order': 320
    # },
    # 'NEUF_RMCSPORTLIVE8': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RMC Sport Live 8',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 321,
    #     'enabled': True,
    #     'order': 321
    # },
    # 'NEUF_RMCSPORTLIVE9': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RMC Sport Live 9',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 322,
    #     'enabled': True,
    #     'order': 322
    # },
    # 'NEUF_RMCSPORTLIVE10': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RMC Sport Live 10',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 323,
    #     'enabled': True,
    #     'order': 323
    # },
    # 'NEUF_RMCSPORTLIVE11': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RMC Sport Live 11',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 324,
    #     'enabled': True,
    #     'order': 324
    # },
    # 'NEUF_RMCSPORTLIVE12': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RMC Sport Live 12',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 325,
    #     'enabled': True,
    #     'order': 325
    # },
    # 'NEUF_RMCSPORTLIVE13': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RMC Sport Live 13',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 326,
    #     'enabled': True,
    #     'order': 326
    # },
    # 'NEUF_RMCSPORTLIVE14': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RMC Sport Live 14',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 327,
    #     'enabled': True,
    #     'order': 327
    # },
    # 'NEUF_RMCSPORTLIVE15': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RMC Sport Live 15',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 328,
    #     'enabled': True,
    #     'order': 328
    # },
    # 'NEUF_RMCSPORTLIVE16': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RMC Sport Live 16',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 329,
    #     'enabled': True,
    #     'order': 329
    # },
    # 'NEUF_RMCSPORTLIVE17': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RMC Sport Live 17',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 330,
    #     'enabled': True,
    #     'order': 330
    # },
    # 'NEUF_RMCSPORTLIVE18': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RMC Sport Live 18',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 331,
    #     'enabled': True,
    #     'order': 331
    # },
    # 'NEUF_FRANCE3_ALP': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Alpes',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 431,
    #     'enabled': True,
    #     'order': 431
    # },
    # 'NEUF_FRANCE3_ALS': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Alsace',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 432,
    #     'enabled': True,
    #     'order': 432
    # },
    # 'NEUF_FRANCE3_AQU': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Aquitaine',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 433,
    #     'enabled': True,
    #     'order': 433
    # },
    # 'NEUF_FRANCE3_AUV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Auvergne',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 434,
    #     'enabled': True,
    #     'order': 434
    # },
    # 'NEUF_FRANCE3_BAN': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Basse-Normandie',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 435,
    #     'enabled': True,
    #     'order': 435
    # },
    # 'NEUF_FRANCE3_BOU': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Bourgogne',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 436,
    #     'enabled': True,
    #     'order': 436
    # },
    # 'NEUF_FRANCE3_BRE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Bretagne',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 437,
    #     'enabled': True,
    #     'order': 437
    # },
    # 'NEUF_FRANCE3_CEN': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Centre',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 438,
    #     'enabled': True,
    #     'order': 438
    # },
    # 'NEUF_FRANCE3_CHA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Champagne-Ardenne',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 439,
    #     'enabled': True,
    #     'order': 439
    # },
    # 'NEUF_FRANCE3_COR': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Corse',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 440,
    #     'enabled': True,
    #     'order': 440
    # },
    # 'NEUF_FRANCE3_CAZ': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Côte d\'Azur',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 441,
    #     'enabled': True,
    #     'order': 441
    # },
    # 'NEUF_FRANCE3_FRC': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Franche-Comté',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 442,
    #     'enabled': True,
    #     'order': 442
    # },
    # 'NEUF_FRANCE3_HTN': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Haute-Normandie',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 443,
    #     'enabled': True,
    #     'order': 443
    # },
    # 'NEUF_FRANCE3_LAN': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Languedoc',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 444,
    #     'enabled': True,
    #     'order': 444
    # },
    # 'NEUF_FRANCE3_LIM': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Limousin',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 445,
    #     'enabled': True,
    #     'order': 445
    # },
    # 'NEUF_FRANCE3_LOR': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Lorraine',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 446,
    #     'enabled': True,
    #     'order': 446
    # },
    # 'NEUF_FRANCE3_MDP': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Midi-Pyrénées',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 447,
    #     'enabled': True,
    #     'order': 447
    # },
    # 'NEUF_FRANCE3_NOR': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Nord Pas-de-Calais',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 448,
    #     'enabled': True,
    #     'order': 448
    # },
    # 'NEUF_FRANCE3_PAR': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Paris Ile-de-France',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 449,
    #     'enabled': True,
    #     'order': 449
    # },
    # 'NEUF_FRANCE3_PLO': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Pays de Loire',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 450,
    #     'enabled': True,
    #     'order': 450
    # },
    # 'NEUF_FRANCE3_PIC': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Picardie',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 451,
    #     'enabled': True,
    #     'order': 451
    # },
    # 'NEUF_FRANCE3_POC': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Poitou-Charentes',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 452,
    #     'enabled': True,
    #     'order': 452
    # },
    # 'NEUF_FRANCE3_PRA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Provence Alpes',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 453,
    #     'enabled': True,
    #     'order': 453
    # },
    # 'NEUF_FRANCE3_RHA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 - Rhône-Alpes',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 454,
    #     'enabled': True,
    #     'order': 454
    # },
    # 'NEUF_FRANCE3NAQTN': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 3 Nouvelle Aquitaine',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 455,
    #     'enabled': True,
    #     'order': 455
    # },
    # 'NEUF_CANAL21': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Canal 21',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 457,
    #     'enabled': True,
    #     'order': 457
    # },
    # 'NEUF_20MINUTES_TV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': '20 Minutes TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 461,
    #     'enabled': True,
    #     'order': 461
    # },
    # 'NEUF_TELEBOCAL': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Télé Bocal',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 464,
    #     'enabled': True,
    #     'order': 464
    # },
    # 'NEUF_TVMONTREUIL': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TELE-VISION MONTREUIL',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 467,
    #     'enabled': True,
    #     'order': 467
    # },
    # 'NEUF_FIGARO_TV_IDF': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Figaro TV IDF',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 468,
    #     'enabled': True,
    #     'order': 468
    # },
    # 'NEUF_TVFIL78': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TV78',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 469,
    #     'enabled': True,
    #     'order': 469
    # },
    # 'NEUF_LYON_CAP_TV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Lyon Capitale TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 476,
    #     'enabled': True,
    #     'order': 476
    # },
    # 'NEUF_TELEGRENOBLE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Télé Grenoble',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 477,
    #     'enabled': True,
    #     'order': 477
    # },
    # 'NEUF_TL7': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TL7',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 478,
    #     'enabled': True,
    #     'order': 478
    # },
    # 'NEUF_TV8MB': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': '8 Mont Blanc',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 480,
    #     'enabled': True,
    #     'order': 480
    # },
    # 'NEUF_ILTV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'IL TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 481,
    #     'enabled': True,
    #     'order': 481
    # },
    # 'NEUF_ASTV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'ASTV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 482,
    #     'enabled': True,
    #     'order': 482
    # },
    # 'NEUF_TELEGOHELLE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TELEGOHELLE',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 485,
    #     'enabled': True,
    #     'order': 485
    # },
    # 'NEUF_WEO_PICARDIE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Wéo Picardie',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 486,
    #     'enabled': True,
    #     'order': 486
    # },
    # 'NEUF_WEO_TV_LVDN': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Wéo TV, La voix du nord',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 487,
    #     'enabled': True,
    #     'order': 487
    # },
    # 'NEUF_VIA_MATELE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Vià MATÉLÉ',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 489,
    #     'enabled': True,
    #     'order': 489
    # },
    # 'NEUF_7ALIMOGES': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': '7 A LIMOGES',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 490,
    #     'enabled': True,
    #     'order': 490
    # },
    # 'NEUF_TV7BORDEAUX': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TV7 Bordeaux',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 491,
    #     'enabled': True,
    #     'order': 491
    # },
    # 'NEUF_TVPI': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TVPI',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 492,
    #     'enabled': True,
    #     'order': 492
    # },
    # 'NEUF_KANALDUDE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'KANALDUDE',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 496,
    #     'enabled': True,
    #     'order': 496
    # },
    # 'NEUF_TV2COM': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TV2COM',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 501,
    #     'enabled': True,
    #     'order': 501
    # },
    # 'NEUF_NA_TV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'NA TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 504,
    #     'enabled': True,
    #     'order': 504
    # },
    # 'NEUF_CANAL32': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Canal 32',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 505,
    #     'enabled': True,
    #     'order': 505
    # },
    # 'NEUF_MIRABELTV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'VIA Mirabelle',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 506,
    #     'enabled': True,
    #     'order': 506
    # },
    # 'NEUF_TVMOSAIK': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Mosaïk Cristal',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 512,
    #     'enabled': True,
    #     'order': 512
    # },
    # 'NEUF_TV8MOSELLE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TV8 Moselle-Est',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 513,
    #     'enabled': True,
    #     'order': 513
    # },
    # 'NEUF_VOSGESTV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'VIA Vosges',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 514,
    #     'enabled': True,
    #     'order': 514
    # },
    # 'NEUF_MARITIMA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Maritima TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 520,
    #     'enabled': True,
    #     'order': 520
    # },
    # 'NEUF_MAURIENNE_TV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'MAURIENNE TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 522,
    #     'enabled': True,
    #     'order': 522
    # },
    # 'NEUF_ANGERSTV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Angers télé',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 523,
    #     'enabled': True,
    #     'order': 523
    # },
    # 'NEUF_TLNANTES': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Télénantes',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 524,
    #     'enabled': True,
    #     'order': 524
    # },
    # 'NEUF_TVVENDEE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TV Vendée',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 525,
    #     'enabled': True,
    #     'order': 525
    # },
    # 'NEUF_LM_TV_SARTHE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'LMtv Sarthe',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 526,
    #     'enabled': True,
    #     'order': 526
    # },
    # 'NEUF_TEBEO': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TEBEO',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 529,
    #     'enabled': True,
    #     'order': 529
    # },
    # 'NEUF_TVRENNES': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TV RENNES 35',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 530,
    #     'enabled': True,
    #     'order': 530
    # },
    # 'NEUF_TVTOURS': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TV Tours',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 533,
    #     'enabled': True,
    #     'order': 533
    # },
    # 'NEUF_ZOUKTV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'ZOUK TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 536,
    #     'enabled': True,
    #     'order': 536
    # },
    # 'NEUF_PAESETV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Télé Paese',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 537,
    #     'enabled': True,
    #     'order': 537
    # },
    # 'NEUF_CNNEUROPE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'CNN International',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 541,
    #     'enabled': True,
    #     'order': 541
    # },
    # 'NEUF_BBCNEWS': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'BBC NEWS',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 542,
    #     'enabled': True,
    #     'order': 542
    # },
    # 'NEUF_FRANCE24ENG': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 24 Anglais',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 543,
    #     'enabled': True,
    #     'order': 543
    # },
    # 'NEUF_CNBCEUR': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'CNBC Europe',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 544,
    #     'enabled': True,
    #     'order': 544
    # },
    # 'NEUF_BLOOMBERG_PAN': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Bloomberg PAN-European',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 545,
    #     'enabled': True,
    #     'order': 545
    # },
    # 'NEUF_ALJAZEERA_EN': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Al Jazeera English',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 546,
    #     'enabled': True,
    #     'order': 546
    # },
    # 'NEUF_I24NEWSANGLAIS': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'i24 News Anglais',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 547,
    #     'enabled': True,
    #     'order': 547
    # },
    # 'NEUF_NHKWORLD': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'NHK WORLD-JAPAN',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 548,
    #     'enabled': True,
    #     'order': 548
    # },
    # 'NEUF_SKYNEWS': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Sky News',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 549,
    #     'enabled': True,
    #     'order': 549
    # },
    # 'NEUF_TGCOM24': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TGCOM24',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 550,
    #     'enabled': True,
    #     'order': 550
    # },
    # 'NEUF_I24NEWSARABE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'i24 News Arabe',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 555,
    #     'enabled': True,
    #     'order': 555
    # },
    # 'NEUF_FRANCE24ARA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'France 24 Arabe',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 556,
    #     'enabled': True,
    #     'order': 556
    # },
    # 'NEUF_MEDI1SAT': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Medi1TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 558,
    #     'enabled': True,
    #     'order': 558
    # },
    # 'NEUF_ALARABIYA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'AL ARABIYA',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 559,
    #     'enabled': True,
    #     'order': 559
    # },
    # 'NEUF_ENNAHAR': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Ennahar TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 561,
    #     'enabled': True,
    #     'order': 561
    # },
    # 'NEUF_CANAL_11': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Canal 11',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 568,
    #     'enabled': True,
    #     'order': 568
    # },
    # 'NEUF_24HTVE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': '24h',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 574,
    #     'enabled': True,
    #     'order': 574
    # },
    # 'NEUF_TVEINTL': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TVE',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 575,
    #     'enabled': True,
    #     'order': 575
    # },
    # 'NEUF_DWTV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'DW-TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 578,
    #     'enabled': True,
    #     'order': 578
    # },
    # 'NEUF_N24': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'WELT',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 579,
    #     'enabled': True,
    #     'order': 579
    # },
    # 'NEUF_RECNEWS': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Record News',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 586,
    #     'enabled': True,
    #     'order': 586
    # },
    # 'NEUF_AFRICA24': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Africa 24',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 595,
    #     'enabled': True,
    #     'order': 595
    # },
    # 'NEUF_CANAL2': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Canal2',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 597,
    #     'enabled': True,
    #     'order': 597
    # },
    # 'NEUF_TVIFICCAO': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TVI ficcao',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 602,
    #     'enabled': True,
    #     'order': 602
    # },
    # 'NEUF_PORTOCANAL': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Porto Canal',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 604,
    #     'enabled': True,
    #     'order': 604
    # },
    # 'NEUF_LOCALVISAO': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Local Visao',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 605,
    #     'enabled': True,
    #     'order': 605
    # },
    # 'NEUF_BENFICATV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Benfica TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 608,
    #     'enabled': True,
    #     'order': 608
    # },
    # 'NEUF_ABOLATV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'A BOLA TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 609,
    #     'enabled': True,
    #     'order': 609
    # },
    # 'NEUF_CANALQ': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Canal Q',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 622,
    #     'enabled': True,
    #     'order': 622
    # },
    # 'NEUF_RTPI': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RTPI',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 624,
    #     'enabled': True,
    #     'order': 624
    # },
    # 'NEUF_RAI1': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Rai Uno',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 626,
    #     'enabled': True,
    #     'order': 626
    # },
    # 'NEUF_RAI_SCUOLA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RAI SCUOLA',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 629,
    #     'enabled': True,
    #     'order': 629
    # },
    # 'NEUF_RAI_STORIA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RAI STORIA',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 630,
    #     'enabled': True,
    #     'order': 630
    # },
    # 'NEUF_REAL_MADRID_TV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'REAL MADRID TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 645,
    #     'enabled': True,
    #     'order': 645
    # },
    # 'NEUF_STAR_TVE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'STAR TVE',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 646,
    #     'enabled': True,
    #     'order': 646
    # },
    # 'NEUF_FLAMENCO': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'ALL FLAMENCO_',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 650,
    #     'enabled': True,
    #     'order': 650
    # },
    # 'NEUF_GALICIATV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TVG EUROPA',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 651,
    #     'enabled': True,
    #     'order': 651
    # },
    # 'NEUF_ETB_BASQUE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'etb basque',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 655,
    #     'enabled': True,
    #     'order': 655
    # },
    # 'NEUF_TELEMADRID': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TELE MADRID',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 657,
    #     'enabled': True,
    #     'order': 657
    # },
    # 'NEUF_ANDALUCIA_TV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'ANDALUCIA TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 658,
    #     'enabled': True,
    #     'order': 658
    # },
    # 'NEUF_BBCENTERTAINMENT': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'BBC Entertainment',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 667,
    #     'enabled': True,
    #     'order': 667
    # },
    # 'NEUF_PROSIEB': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'ProSieben',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 673,
    #     'enabled': True,
    #     'order': 673
    # },
    # 'NEUF_NTV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'N-TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 674,
    #     'enabled': True,
    #     'order': 674
    # },
    # 'NEUF_RTLTV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RTL Television',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 675,
    #     'enabled': True,
    #     'order': 675
    # },
    # 'NEUF_RTL2': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RTL2',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 676,
    #     'enabled': True,
    #     'order': 676
    # },
    # 'NEUF_SUPERRTL': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Super RTL',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 678,
    #     'enabled': True,
    #     'order': 678
    # },
    # 'NEUF_VOX': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'VOX',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 680,
    #     'enabled': True,
    #     'order': 680
    # },
    # 'NEUF_KABELEINS': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'KABEL EINS',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 682,
    #     'enabled': True,
    #     'order': 682
    # },
    # 'NEUF_RTLNITROTV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RTL NITRO TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 685,
    #     'enabled': True,
    #     'order': 685
    # },
    # 'NEUF_ARTEALLD': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Arte Allemand',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 686,
    #     'enabled': True,
    #     'order': 686
    # },
    # 'NEUF_TVPPOLONIA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TVP Polonia',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 700,
    #     'enabled': True,
    #     'order': 700
    # },
    # 'NEUF_ARMENIA1': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Armenia 1',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 713,
    #     'enabled': True,
    #     'order': 713
    # },
    # 'NEUF_CHANNEL1': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Channel One Russia',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 718,
    #     'enabled': True,
    #     'order': 718
    # },
    # 'NEUF_RTRPLANETA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RTR Planeta',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 731,
    #     'enabled': True,
    #     'order': 731
    # },
    # 'NEUF_ART_CINEMA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'ART CINEMA',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 733,
    #     'enabled': True,
    #     'order': 733
    # },
    # 'NEUF_ART_AFLAM1': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'ART AFLAM 1',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 734,
    #     'enabled': True,
    #     'order': 734
    # },
    # 'NEUF_ART_AFLAM2': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'ART AFLAM 2',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 735,
    #     'enabled': True,
    #     'order': 735
    # },
    # 'NEUF_AL_HEKAYAT1': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'AL HEKAYAT 1',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 736,
    #     'enabled': True,
    #     'order': 736
    # },
    # 'NEUF_AL_HEKAYAT2': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'AL HEKAYAT 2',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 737,
    #     'enabled': True,
    #     'order': 737
    # },
    # 'NEUF_TVROMANIA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TV Romania International',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 738,
    #     'enabled': True,
    #     'order': 738
    # },
    # 'NEUF_BAHIA_TV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Bahia TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 739,
    #     'enabled': True,
    #     'order': 739
    # },
    # 'NEUF_TELE_MAROC': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Télé Maroc',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 740,
    #     'enabled': True,
    #     'order': 740
    # },
    # 'NEUF_CANALALGERIE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Canal Algérie',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 742,
    #     'enabled': True,
    #     'order': 742
    # },
    # 'NEUF_BEURTV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Beur FM TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 746,
    #     'enabled': True,
    #     'order': 746
    # },
    # 'NEUF_2MMAROC': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': '2M Maroc',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 749,
    #     'enabled': True,
    #     'order': 749
    # },
    # 'NEUF_ALAOULA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Al Aoula',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 750,
    #     'enabled': True,
    #     'order': 750
    # },
    # 'NEUF_ARRYADIA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Arryadia',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 751,
    #     'enabled': True,
    #     'order': 751
    # },
    # 'NEUF_ASSADISSA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Assadissa',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 752,
    #     'enabled': True,
    #     'order': 752
    # },
    # 'NEUF_WATANIA2': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Watania 2',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 758,
    #     'enabled': True,
    #     'order': 758
    # },
    # 'NEUF_TNTUNISIA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Tunisia 1',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 759,
    #     'enabled': True,
    #     'order': 759
    # },
    # 'NEUF_ASHARQ_NEWS': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Asharq News',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 760,
    #     'enabled': True,
    #     'order': 760
    # },
    # 'NEUF_BRBRTV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Berbère TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 765,
    #     'enabled': True,
    #     'order': 765
    # },
    # 'NEUF_SKYNEWSARABIA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Sky News Arabia',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 767,
    #     'enabled': True,
    #     'order': 767
    # },
    # 'NEUF_CHADA_TV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'CHADA TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 768,
    #     'enabled': True,
    #     'order': 768
    # },
    # 'NEUF_MBC_PLUS_DRAMA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'MBC PLUS DRAMA',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 769,
    #     'enabled': True,
    #     'order': 769
    # },
    # 'NEUF_HELWA_TV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'HELWA TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 770,
    #     'enabled': True,
    #     'order': 770
    # },
    # 'NEUF_MBC_DRAMA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'MBC Drama',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 773,
    #     'enabled': True,
    #     'order': 773
    # },
    # 'NEUF_ECHOROUKNEWS': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Echorouk News',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 774,
    #     'enabled': True,
    #     'order': 774
    # },
    # 'NEUF_ELBILADTV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'El Bilad TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 775,
    #     'enabled': True,
    #     'order': 775
    # },
    # 'NEUF_DIZI': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Dizi',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 776,
    #     'enabled': True,
    #     'order': 776
    # },
    # 'NEUF_ALARABY2': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Alaraby 2',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 777,
    #     'enabled': True,
    #     'order': 777
    # },
    # 'NEUF_MBC': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'MBC',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 778,
    #     'enabled': True,
    #     'order': 778
    # },
    # 'NEUF_ROTANACINEPLUS': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Rotana Cinéma+ FR',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 779,
    #     'enabled': True,
    #     'order': 779
    # },
    # 'NEUF_MBC5': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'MBC 5',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 780,
    #     'enabled': True,
    #     'order': 780
    # },
    # 'NEUF_MBC_MASR': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'MBC Masr',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 782,
    #     'enabled': True,
    #     'order': 782
    # },
    # 'NEUF_ROTANACINE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Rotana Cinema',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 783,
    #     'enabled': True,
    #     'order': 783
    # },
    # 'NEUF_ROTANA_CLASSIC': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Rotana Classic',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 784,
    #     'enabled': True,
    #     'order': 784
    # },
    # 'NEUF_NESMA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Nessma',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 785,
    #     'enabled': True,
    #     'order': 785
    # },
    # 'NEUF_DMC': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'DMC',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 786,
    #     'enabled': True,
    #     'order': 786
    # },
    # 'NEUF_FIX_AND_FOXI': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Fix and Foxi',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 787,
    #     'enabled': True,
    #     'order': 787
    # },
    # 'NEUF_CARTHAGE_PLUS': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Carthage+',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 788,
    #     'enabled': True,
    #     'order': 788
    # },
    # 'NEUF_DMC_DRAMA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'DMC Drama',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 789,
    #     'enabled': True,
    #     'order': 789
    # },
    # 'NEUF_IQRAAINTER': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Iqraa International',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 790,
    #     'enabled': True,
    #     'order': 790
    # },
    # 'NEUF_IQRAA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Iqraa TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 791,
    #     'enabled': True,
    #     'order': 791
    # },
    # 'NEUF_HOLYQURAN': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Al Majd Holy Quran',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 792,
    #     'enabled': True,
    #     'order': 792
    # },
    # 'NEUF_ALMAGH': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Al Maghribia',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 798,
    #     'enabled': True,
    #     'order': 798
    # },
    # 'NEUF_ARRABIA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Arrabiâ',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 799,
    #     'enabled': True,
    #     'order': 799
    # },
    # 'NEUF_LBC_SAT': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'LBC Sat',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 801,
    #     'enabled': True,
    #     'order': 801
    # },
    # 'NEUF_MURRTV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Murr TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 805,
    #     'enabled': True,
    #     'order': 805
    # },
    # 'NEUF_ROTANA_M_PLUS': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Rotana M+',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 806,
    #     'enabled': True,
    #     'order': 806
    # },
    # 'NEUF_DUBAITV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Dubaï TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 807,
    #     'enabled': True,
    #     'order': 807
    # },
    # 'NEUF_ON_TV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'ON TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 809,
    #     'enabled': True,
    #     'order': 809
    # },
    # 'NEUF_HANNIBAL': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'HANNIBAL TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 810,
    #     'enabled': True,
    #     'order': 810
    # },
    # 'NEUF_ALMASRIYA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Al Masriya',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 813,
    #     'enabled': True,
    #     'order': 813
    # },
    # 'NEUF_ISRAELI': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'The Israeli Network',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 814,
    #     'enabled': True,
    #     'order': 814
    # },
    # 'NEUF_JORDANSAT': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Jordan Satellite Channel',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 815,
    #     'enabled': True,
    #     'order': 815
    # },
    # 'NEUF_EURO_STAR': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Euro Star',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 818,
    #     'enabled': True,
    #     'order': 818
    # },
    # 'NEUF_EURO_D': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Euro D',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 819,
    #     'enabled': True,
    #     'order': 819
    # },
    # 'NEUF_BEIN_MOVIES': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'BEIN MOVIES',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 821,
    #     'enabled': True,
    #     'order': 821
    # },
    # 'NEUF_SHOW_MAX': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'SHOW MAX',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 822,
    #     'enabled': True,
    #     'order': 822
    # },
    # 'NEUF_ATV_AVRUPA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'ATV Avrupa',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 824,
    #     'enabled': True,
    #     'order': 824
    # },
    # 'NEUF_KANAL7_AVRUPA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'KANAL 7 AVRUPA',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 825,
    #     'enabled': True,
    #     'order': 825
    # },
    # 'NEUF_APLUS': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'A+',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 838,
    #     'enabled': True,
    #     'order': 838
    # },
    # 'NEUF_ORTB': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'ORTB',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 839,
    #     'enabled': True,
    #     'order': 839
    # },
    # 'NEUF_NOVELAS': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'NOVELAS',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 840,
    #     'enabled': True,
    #     'order': 840
    # },
    # 'NEUF_CRTV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'CRTV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 841,
    #     'enabled': True,
    #     'order': 841
    # },
    # 'NEUF_CHERIFLA_TV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'CHERIFLA TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 844,
    #     'enabled': True,
    #     'order': 844
    # },
    # 'NEUF_ORTC': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'ORTC',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 845,
    #     'enabled': True,
    #     'order': 845
    # },
    # 'NEUF_TELECONGO': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TV Congo',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 846,
    #     'enabled': True,
    #     'order': 846
    # },
    # 'NEUF_MABOKE_TV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Maboke TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 847,
    #     'enabled': True,
    #     'order': 847
    # },
    # 'NEUF_RTNC': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RTNC',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 848,
    #     'enabled': True,
    #     'order': 848
    # },
    # 'NEUF_NCI': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'NCI',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 849,
    #     'enabled': True,
    #     'order': 849
    # },
    # 'NEUF_TCI': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RTI 1',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 851,
    #     'enabled': True,
    #     'order': 851
    # },
    # 'NEUF_CDIRECT': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'CDIRECT',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 852,
    #     'enabled': True,
    #     'order': 852
    # },
    # 'NEUF_GABON_1ERE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Gabon 1ère',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 853,
    #     'enabled': True,
    #     'order': 853
    # },
    # 'NEUF_RTG': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RTG',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 854,
    #     'enabled': True,
    #     'order': 854
    # },
    # 'NEUF_TVM': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TVM',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 855,
    #     'enabled': True,
    #     'order': 855
    # },
    # 'NEUF_ORTM': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'ORTM',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 856,
    #     'enabled': True,
    #     'order': 856
    # },
    # 'NEUF_NOLLYWOOD': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Nollywood TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 858,
    #     'enabled': True,
    #     'order': 858
    # },
    # 'NEUF_AFRICABLE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Africâble',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 859,
    #     'enabled': True,
    #     'order': 859
    # },
    # 'NEUF_TRACEAFRICA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Trace Africa',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 861,
    #     'enabled': True,
    #     'order': 861
    # },
    # 'NEUF_VOXAFRICA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Vox Africa',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 862,
    #     'enabled': True,
    #     'order': 862
    # },
    # 'NEUF_2STV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': '2STV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 863,
    #     'enabled': True,
    #     'order': 863
    # },
    # 'NEUF_RTS1': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'RTS 1',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 864,
    #     'enabled': True,
    #     'order': 864
    # },
    # 'NEUF_TFM': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'TFM',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 866,
    #     'enabled': True,
    #     'order': 866
    # },
    # 'NEUF_SUNU_YEUF': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'SUNU YEUF',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 867,
    #     'enabled': True,
    #     'order': 867
    # },
    # 'NEUF_BEIJINGTV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Beijing TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 878,
    #     'enabled': True,
    #     'order': 878
    # },
    # 'NEUF_CCTVYULE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'CCTV YuLe',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 879,
    #     'enabled': True,
    #     'order': 879
    # },
    # 'NEUF_CCTV4': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'CCTV-4',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 880,
    #     'enabled': True,
    #     'order': 880
    # },
    # 'NEUF_CMC': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'CMC',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 881,
    #     'enabled': True,
    #     'order': 881
    # },
    # 'NEUF_HUNANTV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Hunan TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 882,
    #     'enabled': True,
    #     'order': 882
    # },
    # 'NEUF_JSBCINT': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'JSBC International',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 883,
    #     'enabled': True,
    #     'order': 883
    # },
    # 'NEUF_PHOENIXCNE': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Phoenix CNE',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 884,
    #     'enabled': True,
    #     'order': 884
    # },
    # 'NEUF_DRAGONTV': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Dragon TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 886,
    #     'enabled': True,
    #     'order': 886
    # },
    # 'NEUF_XIAMENSTAR': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Great Wall Elite',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 887,
    #     'enabled': True,
    #     'order': 887
    # },
    # 'NEUF_ZTVWORLD': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'Zhejiang Star TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 888,
    #     'enabled': True,
    #     'order': 888
    # },
    # 'NEUF_GRT_GBA': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'GRT GBA Satellite TV',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 916,
    #     'enabled': True,
    #     'order': 916
    # },
    # 'NEUF_CCTVDOC': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'CGTN-Documentary',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 918,
    #     'enabled': True,
    #     'order': 918
    # },
    # 'NEUF_CCTVF': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'CGTN-Français',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 920,
    #     'enabled': True,
    #     'order': 920
    # },
    # 'NEUF_NTD': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'NTD',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 921,
    #     'enabled': True,
    #     'order': 921
    # },
    # 'NEUF_NHK_WP': {
    #     'resolver': '/resources/lib/providers/sfrtv:get_live_stream',
    #     'label': 'NHK World Premium',
    #     'thumb': 'channels/fr/???.png',
    #     'fanart': 'channels/fr/???_fanart.jpg',
    #     'xmltv_id': 'C???.api.telerama.fr',
    #     'm3u_group': '???',
    #     'm3u_order': 938,
    #     'enabled': True,
    #     'order': 938
    # }
}
