{"id":171,"date":"2026-02-07T21:44:20","date_gmt":"2026-02-07T21:44:20","guid":{"rendered":"http:\/\/template4.local\/?page_id=171"},"modified":"2026-08-26T09:31:53","modified_gmt":"2026-08-26T09:31:53","slug":"channels-list","status":"publish","type":"page","link":"https:\/\/dinoiptv.co\/tv\/channels-list\/","title":{"rendered":"Channels list"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"171\" class=\"elementor elementor-171\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2dda23a6 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2dda23a6\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-25c330e\" data-id=\"25c330e\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-48b473db elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"48b473db\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInLeft&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Channels list<\/h1>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-35c5a734 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"35c5a734\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-401db0c0 elementor-invisible\" data-id=\"401db0c0\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;animation&quot;:&quot;fadeInLeft&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-63c06e4 elementor-widget elementor-widget-heading\" data-id=\"63c06e4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Our Channels\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e98d845 elementor-widget elementor-widget-text-editor\" data-id=\"e98d845\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0ea3eb5 elementor-widget elementor-widget-text-editor\" data-id=\"0ea3eb5\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\"><div class=\"elementor-element elementor-element-2986b88 exad-sticky-section-no exad-glass-effect-no elementor-widget elementor-widget-text-editor\" data-id=\"2986b88\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\"><div class=\"elementor-widget-container\"><p>Stream over 26,000 global channels instantly no need for a channel list! Get your free 48-hour trial today and enjoy live content on any devic<\/p><\/div><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2b78c97 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"2b78c97\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-md\" href=\"https:\/\/dinoiptv.co\/clients\/index.php?rp=\/store\/free\/free-trial-dino\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Free trial 48-hour<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t<div class=\"elementor-element elementor-element-e207990 e-flex e-con-boxed e-con e-parent\" data-id=\"e207990\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5eca5f2 elementor-widget elementor-widget-image-carousel\" data-id=\"5eca5f2\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;slides_to_show&quot;:&quot;10&quot;,&quot;slides_to_show_mobile&quot;:&quot;6&quot;,&quot;navigation&quot;:&quot;none&quot;,&quot;autoplay_speed&quot;:800,&quot;image_spacing_custom&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:30,&quot;sizes&quot;:[]},&quot;autoplay&quot;:&quot;yes&quot;,&quot;infinite&quot;:&quot;yes&quot;,&quot;speed&quot;:500,&quot;image_spacing_custom_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;image_spacing_custom_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"image-carousel.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-image-carousel-wrapper swiper\" role=\"region\" aria-roledescription=\"carousel\" aria-label=\"Image Carousel\" dir=\"ltr\">\n\t\t\t<div class=\"elementor-image-carousel swiper-wrapper\" aria-live=\"off\">\n\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"1 of 12\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/dinoiptv.co\/tv\/wp-content\/uploads\/2026\/02\/01-1.png\" alt=\"dino iptv channel 7\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"2 of 12\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/dinoiptv.co\/tv\/wp-content\/uploads\/2026\/02\/01-2.png\" alt=\"dino iptv channel 8\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"3 of 12\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/dinoiptv.co\/tv\/wp-content\/uploads\/2026\/02\/01-4.png\" alt=\"dino iptv channel 9\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"4 of 12\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/dinoiptv.co\/tv\/wp-content\/uploads\/2026\/02\/01-5.png\" alt=\"dino iptv channel 10\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"5 of 12\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/dinoiptv.co\/tv\/wp-content\/uploads\/2026\/02\/01-6.png\" alt=\"dino iptv channel 11\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"6 of 12\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/dinoiptv.co\/tv\/wp-content\/uploads\/2026\/02\/01-24.png\" alt=\"dino iptv channel 12\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"7 of 12\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/dinoiptv.co\/tv\/wp-content\/uploads\/2026\/02\/01-27.png\" alt=\"dino iptv channel 13\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"8 of 12\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/dinoiptv.co\/tv\/wp-content\/uploads\/2026\/02\/01-28.png\" alt=\"dino iptv channel 14\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"9 of 12\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/dinoiptv.co\/tv\/wp-content\/uploads\/2026\/02\/01-31.png\" alt=\"dino iptv channel 15\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"10 of 12\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/dinoiptv.co\/tv\/wp-content\/uploads\/2026\/02\/01-32.png\" alt=\"dino iptv channel 16\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"11 of 12\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/dinoiptv.co\/tv\/wp-content\/uploads\/2026\/02\/01-33.png\" alt=\"dino iptv channel 17\" \/><\/figure><\/div><div class=\"swiper-slide\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"12 of 12\"><figure class=\"swiper-slide-inner\"><img decoding=\"async\" class=\"swiper-slide-image\" src=\"https:\/\/dinoiptv.co\/tv\/wp-content\/uploads\/2026\/02\/01-34.png\" alt=\"dino iptv channel 18\" \/><\/figure><\/div>\t\t\t<\/div>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ffaefc1 e-flex e-con-boxed e-con e-parent\" data-id=\"ffaefc1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1d4229d elementor-widget elementor-widget-html\" data-id=\"1d4229d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n  @import url('https:\/\/fonts.googleapis.com\/css2?family=Poppins&display=swap');\r\n\r\n  .iptv-container {\r\n    font-family: 'Poppins', sans-serif;\r\n    background-color: #000;\r\n    color: #eee;\r\n    padding: 20px;\r\n    max-width: 900px;\r\n    margin: 0 auto;\r\n  }\r\n  .iptv-search {\r\n    margin-bottom: 20px;\r\n    width: 100%;\r\n  }\r\n  .iptv-search input[type=\"text\"] {\r\n    width: 100%;\r\n    padding: 12px 20px;\r\n    border-radius: 30px;\r\n    border: 2px solid #387EF7;\r\n    background-color: #111;\r\n    color: #eee;\r\n    font-size: 16px;\r\n    outline-offset: 2px;\r\n    transition: border-color 0.3s ease;\r\n  }\r\n  .iptv-search input[type=\"text\"]::placeholder {\r\n    color: #777;\r\n  }\r\n  .iptv-search input[type=\"text\"]:focus {\r\n    border-color: #387EF7;\r\n    background-color: #121212;\r\n    box-shadow: 0 0 8px #387EF7;\r\n  }\r\n  .iptv-region-tabs {\r\n    display: flex;\r\n    gap: 15px;\r\n    overflow-x: auto;\r\n    padding-bottom: 5px;\r\n    border-bottom: 2px solid #222;\r\n    margin-bottom: 15px;\r\n  }\r\n  .iptv-region-tabs button {\r\n    background: transparent;\r\n    border: none;\r\n    color: #aaa;\r\n    font-weight: 600;\r\n    font-size: 18px;\r\n    padding: 10px 18px;\r\n    border-radius: 30px;\r\n    cursor: pointer;\r\n    transition: all 0.3s ease;\r\n    white-space: nowrap;\r\n    box-shadow: none;\r\n  }\r\n  .iptv-region-tabs button:hover {\r\n    color: #ffffff;\r\n    box-shadow: none;\r\n  }\r\n  .iptv-region-tabs button.active {\r\n    color: #fff;\r\n    background-color: #387EF7;\r\n    box-shadow: 0 0 12px #387EF7;\r\n  }\r\n  .iptv-country-tabs {\r\n    display: flex;\r\n    flex-wrap: nowrap;\r\n    gap: 10px;\r\n    overflow-x: auto;\r\n    padding-bottom: 8px;\r\n    border-bottom: 1px solid #222;\r\n    margin-bottom: 20px;\r\n  }\r\n  .iptv-country-tabs button {\r\n    background: transparent;\r\n    border: none;\r\n    color: #ccc;\r\n    font-weight: 500;\r\n    font-size: 14px;\r\n    padding: 6px 14px 6px 36px;\r\n    border-radius: 30px;\r\n    cursor: pointer;\r\n    position: relative;\r\n    white-space: nowrap;\r\n    transition: all 0.25s ease;\r\n    box-shadow: none;\r\n  }\r\n  .iptv-country-tabs button:hover {\r\n    color: #ffffff;\r\n    box-shadow: none;\r\n  }\r\n  .iptv-country-tabs button.active {\r\n    color: #fff;\r\n    background-color: #387EF7;\r\n    box-shadow: 0 0 8px #387EF7;\r\n    font-weight: 600;\r\n  }\r\n  .iptv-country-tabs button .flag-icon {\r\n    position: absolute;\r\n    left: 8px;\r\n    top: 50%;\r\n    transform: translateY(-50%);\r\n    width: 22px;\r\n    height: 15px;\r\n    border-radius: 3px;\r\n    object-fit: cover;\r\n    box-shadow: 0 0 4px rgba(0,0,0,0.3);\r\n  }\r\n\r\n  \/* Channel list styles *\/\r\n  .iptv-channels-list {\r\n    max-height: 480px;\r\n    overflow-y: auto;\r\n    border-top: 1px solid #222;\r\n    border-bottom: 1px solid #222;\r\n  }\r\n  .iptv-channel-item {\r\n    display: flex;\r\n    align-items: center;\r\n    padding: 12px 16px;\r\n    border-left: 4px solid #387EF7;\r\n    margin: 6px 0;\r\n    background-color: #111;\r\n    user-select: none;\r\n    cursor: default;\r\n    transition: background-color 0.3s ease;\r\n  }\r\n  .iptv-channel-item:hover,\r\n  .iptv-channel-item:focus {\r\n    background-color: #222;\r\n    outline: none;\r\n  }\r\n  .iptv-channel-flag {\r\n    width: 26px;\r\n    height: 18px;\r\n    border-radius: 3px;\r\n    object-fit: cover;\r\n    margin-right: 14px;\r\n    flex-shrink: 0;\r\n    box-shadow: 0 0 4px rgba(0,0,0,0.5);\r\n  }\r\n  .iptv-channel-info {\r\n    flex-grow: 1;\r\n    color: #387EF7;\r\n    font-weight: 600;\r\n    font-size: 16px;\r\n  }\r\n  .iptv-channel-region-country {\r\n    font-size: 12px;\r\n    color: #bbb;\r\n    font-weight: 400;\r\n    margin-left: 6px;\r\n  }\r\n\r\n  @media (max-width: 768px) {\r\n    .iptv-container {\r\n      max-width: 100%;\r\n      padding: 15px;\r\n    }\r\n    .iptv-channel-info {\r\n      font-size: 14px;\r\n    }\r\n    .iptv-channel-region-country {\r\n      font-size: 11px;\r\n    }\r\n  }\r\n  @media (max-width: 480px) {\r\n    .iptv-channels-list {\r\n      max-height: 320px;\r\n    }\r\n    .iptv-channel-item {\r\n      padding: 10px 12px;\r\n      margin: 4px 0;\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<div class=\"iptv-container\" aria-label=\"IPTV Channels List\">\r\n  <div class=\"iptv-search\" role=\"search\">\r\n    <input type=\"text\" id=\"iptv-search-input\" placeholder=\"Search channels or countries...\" aria-label=\"Search channels or countries\" autocomplete=\"off\" \/>\r\n  <\/div>\r\n  <nav class=\"iptv-region-tabs\" role=\"tablist\" aria-label=\"Regions\"><\/nav>\r\n  <nav class=\"iptv-country-tabs\" role=\"tablist\" aria-label=\"Countries\"><\/nav>\r\n  <section class=\"iptv-channels-list\" aria-live=\"polite\" aria-label=\"TV channels list\"><\/section>\r\n<\/div>\r\n\r\n<script>\r\n  (function () {\r\n    const data = {\r\n      \"Europe\": [\r\n        {code:\"GB\",name:\"United Kingdom\",flag:\"https:\/\/flagcdn.com\/gb.svg\",channels:[\"BBC One\",\"ITV\",\"Channel 4\",\"Sky News\",\"BT Sport\",\"Dave\",\"E4\",\"More4\",\"Film4\",\"Channel 5\",\"BBC Two\",\"BBC Three\",\"Disney Channel UK\",\"Nickelodeon UK\",\"Sky Atlantic\",\"Sky Sports Premier League\",\"Gold\",\"Comedy Central UK\",\"Quest\",\"National Geographic UK\"]},\r\n        {code:\"DE\",name:\"Germany\",flag:\"https:\/\/flagcdn.com\/de.svg\",channels:[\"ZDF\",\"ARD\",\"RTL\",\"ProSieben\",\"Sat.1\",\"VOX\",\"3sat\",\"Kabel Eins\",\"N24\",\"Sport1\",\"Arte\",\"Das Erste\",\"Eurosport DE\",\"Nickelodeon DE\",\"Disney Channel DE\",\"Tele 5\",\"NDR\",\"MDR\",\"BR Fernsehen\",\"WDR Fernsehen\"]},\r\n        {code:\"FR\",name:\"France\",flag:\"https:\/\/flagcdn.com\/fr.svg\",channels:[\"TF1\",\"France 2\",\"France 3\",\"M6\",\"Canal+\",\"Arte France\",\"France 5\",\"C8\",\"TMC\",\"W9\",\"Gulli\",\"RMC Story\",\"NRJ 12\",\"LCP\",\"BFM TV\",\"France 24\",\"Euronews French\",\"Disney Channel FR\",\"Nickelodeon FR\",\"National Geographic FR\"]},\r\n        {code:\"IT\",name:\"Italy\",flag:\"https:\/\/flagcdn.com\/it.svg\",channels:[\"RAI 1\",\"RAI 2\",\"RAI 3\",\"Canale 5\",\"Italia 1\",\"Rete 4\",\"La7\",\"TV8\",\"NOVE\",\"Sky TG24\",\"Mediaset Extra\",\"DMax Italia\",\"Deejay TV\",\"Real Time Italy\",\"Discovery TV Italy\",\"National Geographic Italy\",\"Fox Italy\",\"Eurosport Italy\",\"Nickelodeon Italy\",\"Disney Channel Italy\"]},\r\n        {code:\"ES\",name:\"Spain\",flag:\"https:\/\/flagcdn.com\/es.svg\",channels:[\"La 1\",\"Telecinco\",\"Antena 3\",\"Cuatro\",\"La Sexta\",\"TVE Internacional\",\"7 Regi\u00f3n de Murcia\",\"Canal Sur\",\"TV3\",\"ETB\",\"TVG\",\"IB3\",\"TV Canaria\",\"Disney Channel ES\",\"Nickelodeon ES\",\"Neox\",\"Mega\",\"Flooxer\",\"Paramount Network Spain\",\"National Geographic Spain\"]},\r\n        {code:\"NL\",name:\"Netherlands\",flag:\"https:\/\/flagcdn.com\/nl.svg\",channels:[\"NPO 1\",\"NPO 2\",\"NPO 3\",\"SBS6\",\"RTL 4\",\"RTL 5\",\"RTL 7\",\"Veronica\",\"Nickelodeon NL\",\"Disney Channel NL\",\"Ziggo Sport\",\"Fox Sports NL\",\"National Geographic NL\",\"History NL\",\"Comedy Central NL\",\"Discovery NL\",\"24Kitchen NL\",\"NCRV\",\"KRO-NCRV\",\"VPRO\"]},\r\n        {code:\"BE\",name:\"Belgium\",flag:\"https:\/\/flagcdn.com\/be.svg\",channels:[\"\u00c9\u00e9n\",\"La Une\",\"VTM\",\"Canvas\",\"RTBF\",\"Club RTL\",\"Nickelodeon BE\",\"Disney Channel BE\",\"National Geographic BE\",\"VH1 Belgium\",\"Vlaamse televisie\",\"RTBF La trois\",\"Eurosport BE\",\"TV Brussel\",\"Fox Belgium\",\"History Belgium\",\"Comedy Central Belgium\",\"Ardenne TV\",\"Antenne Centre\",\"T\u00e9l\u00e9 MB\"]},\r\n        {code:\"SE\",name:\"Sweden\",flag:\"https:\/\/flagcdn.com\/se.svg\",channels:[\"SVT1\",\"SVT2\",\"TV4\",\"TV3 Sweden\",\"Kanal 5\",\"TV6\",\"SVT24\",\"Nickelodeon SE\",\"Disney Channel SE\",\"National Geographic SE\",\"Discovery Channel SE\",\"Eurosport SE\",\"Comedy Central SE\",\"History SE\",\"Animal Planet SE\",\"MTV Sweden\",\"BBC Nordic\",\"BBC Earth Nordic\",\"Travel Channel SE\",\"SVT Barnkanalen\"]},\r\n        {code:\"PL\",name:\"Poland\",flag:\"https:\/\/flagcdn.com\/pl.svg\",channels:[\"TVP1\",\"TVP2\",\"Polsat\",\"TVN\",\"TVN24\",\"Polsat News\",\"TV4\",\"TV Puls\",\"Disney Channel PL\",\"Nickelodeon PL\",\"National Geographic PL\",\"Discovery PL\",\"Comedy Central PL\",\"Canal+ PL\",\"MTV Poland\",\"TVN7\",\"TVP Info\",\"Eurosport PL\",\"History PL\",\"Animal Planet PL\"]},\r\n        {code:\"NO\",name:\"Norway\",flag:\"https:\/\/flagcdn.com\/no.svg\",channels:[\"NRK1\",\"NRK2\",\"TV 2 Norway\",\"TV 2 Zebra\",\"TVNorge\",\"Discovery Norway\",\"National Geographic Norway\",\"BBC Nordic\",\"Comedy Central Norway\",\"Disney Channel NO\",\"Nickelodeon NO\",\"Eurosport NO\",\"TV Norge 2\",\"History Norway\",\"Animal Planet Norway\",\"Fox Norway\",\"Sport 1 Norway\",\"VGTV\",\"TV 2 Sporten\",\"TV Vest\"]},\r\n        {code:\"CH\",name:\"Switzerland\",flag:\"https:\/\/flagcdn.com\/ch.svg\",channels:[\"SRF 1\",\"SRF zwei\",\"RTS Un\",\"RTS Deux\",\"RSI La 1\",\"RSI La 2\",\"TeleZ\u00fcri\",\"Canal 9\",\"Schweizer Fernsehen\",\"Nickelodeon CH\",\"Disney Channel CH\",\"National Geographic CH\",\"Comedy Central CH\",\"BBC Nordic\",\"Eurosport CH\",\"Fox Sports CH\",\"3+\",\"Kanal 5\",\"Telebasel\",\"Tele Tell\"]},\r\n        {code:\"AT\",name:\"Austria\",flag:\"https:\/\/flagcdn.com\/at.svg\",channels:[\"ORF 1\",\"ORF 2\",\"Servus TV\",\"Puls 4\",\"ATV\",\"Kabel eins Austria\",\"Nickelodeon AT\",\"Disney Channel AT\",\"National Geographic AT\",\"Comedy Central AT\",\"Eurosport AT\",\"Sky Sport Austria\",\"History AT\",\"Discovery AT\",\"Fox AT\",\"Sport1 AT\",\"ORF III\",\"FM4\",\"3sat\",\"Arte\"]},\r\n        {code:\"IE\",name:\"Ireland\",flag:\"https:\/\/flagcdn.com\/ie.svg\",channels:[\"RT\u00c9 One\",\"RT\u00c92\",\"Virgin Media One\",\"TG4\",\"Virgin Media Two\",\"Virgin Media Three\",\"BBC One NI\",\"BBC Two NI\",\"Sky News UK\",\"RT\u00c9 News\",\"RT\u00c9jr\",\"Cartoon Network IE\",\"Nickelodeon IE\",\"Disney Channel IE\",\"National Geographic IE\",\"Comedy Central IE\",\"Sky Atlantic\",\"Eir Sport\",\"Eurosport IE\",\"History IE\"]},\r\n        {code:\"CZ\",name:\"Czech Republic\",flag:\"https:\/\/flagcdn.com\/cz.svg\",channels:[\"\u010cT1\",\"\u010cT2\",\"Nova\",\"Prima TV\",\"\u010cT24\",\"Nova Cinema\",\"Nova Sport\",\"Prima Cool\",\"Prima Love\",\"Nickelodeon CZ\",\"Disney Channel CZ\",\"National Geographic CZ\",\"Comedy Central CZ\",\"Eurosport CZ\",\"TV Barrandov\",\"\u010cT sport\",\"TV Nova\",\"TLC CZ\",\"Animal Planet CZ\",\"History CZ\"]},\r\n        {code:\"HU\",name:\"Hungary\",flag:\"https:\/\/flagcdn.com\/hu.svg\",channels:[\"M1\",\"M2\",\"Duna TV\",\"RTL Klub\",\"TV2 Hungary\",\"RTL II\",\"Super TV2\",\"Nickelodeon HU\",\"Disney Channel HU\",\"National Geographic HU\",\"Comedy Central HU\",\"Eurosport HU\",\"H\u00edr TV\",\"M4 Sport\",\"Sport1 Hungary\",\"TV4\",\"Viasat3\",\"TV Paprika\",\"Duna World\",\"Spektrum\"]},\r\n        {code:\"RO\",name:\"Romania\",flag:\"https:\/\/flagcdn.com\/ro.svg\",channels:[\"TVR1\",\"Antena 1\",\"Pro TV\",\"Kanal D\",\"Prima TV\",\"Digi24\",\"Realitatea TV\",\"Nickelodeon RO\",\"Disney Channel RO\",\"National Geographic RO\",\"Comedy Central RO\",\"Eurosport RO\",\"Animal Planet RO\",\"Discovery RO\",\"History RO\",\"Telekom Sport\",\"TVR2\",\"B1 TV\",\"Na\u021bional TV\",\"GSP TV\"]},\r\n        {code:\"PT\",name:\"Portugal\",flag:\"https:\/\/flagcdn.com\/pt.svg\",channels:[\"RTP1\",\"SIC\",\"TVI\",\"RTP2\",\"RTP3\",\"Canal Q\",\"SIC Radical\",\"Nickelodeon PT\",\"Disney Channel PT\",\"National Geographic PT\",\"Comedy Central PT\",\"Eurosport PT\",\"SIC Not\u00edcias\",\"RTP Informa\u00e7\u00e3o\",\"Discovery PT\",\"History PT\",\"Sport TV\",\"AXN Portugal\",\"TVI24\",\"Disney Junior PT\"]},\r\n        {code:\"GR\",name:\"Greece\",flag:\"https:\/\/flagcdn.com\/gr.svg\",channels:[\"ERT1\",\"ERT2\",\"Mega Channel\",\"ANT1\",\"SKAI TV\",\"Alpha TV\",\"Star Channel\",\"Nickelodeon GR\",\"Disney Channel GR\",\"National Geographic GR\",\"Comedy Central GR\",\"Eurosport GR\",\"MAD TV\",\"\u03a3\u039a\u0391\u03aa\",\"Open TV\",\"Makedonia TV\",\"Action 24\",\"MAD World\",\"Nova Sports\",\"Bloomberg Greece\"]},\r\n        {code:\"DK\",name:\"Denmark\",flag:\"https:\/\/flagcdn.com\/dk.svg\",channels:[\"DR 1\",\"TV 2 Denmark\",\"DR 2\",\"TV 3 Denmark\",\"DR Ramasjang\",\"Nickelodeon DK\",\"Disney Channel DK\",\"National Geographic DK\",\"Comedy Central DK\",\"Eurosport DK\",\"Discovery DK\",\"TV Danmark\",\"TV3 Puls\",\"DR Ultra\",\"DR K\",\"DK4\",\"TV3 Sport\",\"DK4 Sport\",\"History DK\",\"Animal Planet DK\"]}\r\n      ],\r\n      \"America\": [\r\n        {code:\"US\",name:\"United States\",flag:\"https:\/\/flagcdn.com\/us.svg\",channels:[\"NBC\",\"CBS\",\"ABC\",\"FOX\",\"CNN\",\"ESPN\",\"Disney Channel US\",\"HBO\",\"Showtime\",\"MTV\",\"National Geographic US\",\"History Channel US\",\"Discovery Channel US\",\"TLC\",\"AMC\",\"USA Network\",\"FX\",\"The CW\",\"PBS\",\"Cartoon Network US\",\"TrueTV\"]},\r\n        {code:\"CA\",name:\"Canada\",flag:\"https:\/\/flagcdn.com\/ca.svg\",channels:[\"CBC\",\"CTV\",\"Global\",\"Citytv\",\"TVA\",\"Sportsnet\",\"TSN\",\"HGTV Canada\",\"Food Network Canada\",\"Disney Channel CA\",\"Nickelodeon CA\",\"National Geographic CA\",\"History CA\",\"CTV Comedy Channel\",\"CTV Drama Channel\",\"RDS\",\"Golf Channel Canada\",\"CBC News Network\",\"Bravo Canada\",\"Discovery Canada\"]},\r\n        {code:\"BR\",name:\"Brazil\",flag:\"https:\/\/flagcdn.com\/br.svg\",channels:[\"Globo\",\"SBT\",\"RecordTV\",\"Band\",\"RedeTV!\",\"Discovery Brazil\",\"National Geographic Brazil\",\"History Brazil\",\"Cartoon Network Brazil\",\"Nickelodeon Brazil\",\"Disney Channel Brazil\",\"ESPN Brazil\",\"Fox Sports Brazil\",\"HBO Brazil\",\"AMC Brazil\",\"TrueVisions\",\"True4U\",\"True Select\",\"True Music\",\"True Spark Jump\"]},\r\n        {code:\"MX\",name:\"Mexico\",flag:\"https:\/\/flagcdn.com\/mx.svg\",channels:[\"Televisa\",\"TV Azteca\",\"Canal 5\",\"Imagen Televisi\u00f3n\",\"Milenio Televisi\u00f3n\",\"Nickelodeon MX\",\"Disney Channel MX\",\"National Geographic MX\",\"History MX\",\"Univision\",\"Telemundo\",\"Azteca 7\",\"Cine Canal 5\",\"Fox Sports Mexico\",\"ESPN Mexico\",\"True TV Mexico\"]},\r\n        {code:\"AR\",name:\"Argentina\",flag:\"https:\/\/flagcdn.com\/ar.svg\",channels:[\"Telefe\",\"El Trece\",\"Am\u00e9rica TV\",\"Canal 9\",\"TV P\u00fablica Argentina\",\"TyC Sports\",\"Nickelodeon AR\",\"Disney Channel AR\",\"National Geographic AR\",\"History AR\",\"ESPN Argentina\",\"Fox Sports Argentina\",\"DirecTV Sports\",\"C5N\",\"CN23\"]},\r\n        {code:\"CO\",name:\"Colombia\",flag:\"https:\/\/flagcdn.com\/co.svg\",channels:[\"RCN Televisi\u00f3n\",\"Caracol Televisi\u00f3n\",\"Canal Uno Colombia\",\"Canal Capital\",\"Citytv Colombia\",\"Nickelodeon CO\",\"Disney Channel CO\",\"National Geographic CO\",\"History CO\",\"ESPN Colombia\",\"Fox Sports Colombia\",\"Win Sports\",\"Teleantioquia\",\"NTN24\",\"Canal TRO\"]},\r\n        {code:\"PE\",name:\"Peru\",flag:\"https:\/\/flagcdn.com\/pe.svg\",channels:[\"Am\u00e9rica Televisi\u00f3n\",\"Frecuencia Latina\",\"ATV\",\"TV Per\u00fa\",\"Willax Televisi\u00f3n\",\"Nickelodeon PE\",\"Disney Channel PE\",\"National Geographic PE\",\"History PE\",\"ESPN Peru\",\"Fox Sports Peru\",\"Movistar Deportes\",\"Panamericana Televisi\u00f3n\",\"Plus TV\",\"Red Global\"]},\r\n        {code:\"CL\",name:\"Chile\",flag:\"https:\/\/flagcdn.com\/cl.svg\",channels:[\"TVN\",\"Canal 13\",\"Mega\",\"Chilevisi\u00f3n\",\"La Red\",\"Nickelodeon CL\",\"Disney Channel CL\",\"National Geographic CL\",\"History CL\",\"ESPN Chile\",\"Fox Sports Chile\",\"CNN Chile\",\"TV+\",\"Rock & Pop TV\"]},\r\n        {code:\"VE\",name:\"Venezuela\",flag:\"https:\/\/flagcdn.com\/ve.svg\",channels:[\"Venevisi\u00f3n\",\"Televen\",\"Globovisi\u00f3n\",\"RCTV\",\"Canal i\",\"Nickelodeon VE\",\"Disney Channel VE\",\"National Geographic VE\",\"History VE\",\"ESPN Venezuela\",\"Fox Sports Venezuela\",\"Telesur\",\"TVES\",\"Meridiano TV\"]},\r\n        {code:\"EC\",name:\"Ecuador\",flag:\"https:\/\/flagcdn.com\/ec.svg\",channels:[\"Ecuavisa\",\"Teleamazonas\",\"RTS\",\"Gama TV\",\"Canal Uno Ecuador\",\"Nickelodeon EC\",\"Disney Channel EC\",\"National Geographic EC\",\"History EC\",\"ESPN Ecuador\",\"Fox Sports Ecuador\",\"TC Televisi\u00f3n\",\"Channel One Ecuador\",\"Gamavisi\u00f3n\"]},\r\n        {code:\"CU\",name:\"Cuba\",flag:\"https:\/\/flagcdn.com\/cu.svg\",channels:[\"Cubavisi\u00f3n\",\"Tele Rebelde\",\"Canal Habana\",\"Miramar TV\",\"Tele Turquino\",\"Nickelodeon CU\",\"Disney Channel CU\",\"National Geographic CU\",\"History CU\",\"Cubavisi\u00f3n Internacional\"]}\r\n      ],\r\n      \"Africa\": [\r\n        {code:\"MA\",name:\"Morocco\",flag:\"https:\/\/flagcdn.com\/ma.svg\",channels:[\"2M TV\",\"Al Aoula\",\"Medi 1 TV\",\"Arryadia\",\"Al Maghribia\",\"Al Oula\",\"Chada TV\",\"Tele Maroc\",\"RTM1\",\"RTM2\"]},\r\n        {code:\"NG\",name:\"Nigeria\",flag:\"https:\/\/flagcdn.com\/ng.svg\",channels:[\"NTA\",\"Channels TV\",\"AIT\",\"Silverbird TV\",\"African Magic\",\"Ben TV\",\"TVC News\",\"Galaxy TV\",\"Wazobia TV\",\"Plus TV Africa\"]},\r\n        {code:\"EG\",name:\"Egypt\",flag:\"https:\/\/flagcdn.com\/eg.svg\",channels:[\"Nile TV\",\"ONTV\",\"CBC\",\"Dream TV Egypt\",\"Al Hayah TV\",\"Mazzika\",\"Nile Drama\",\"Nickelodeon EG\",\"Disney Channel EG\",\"National Geographic EG\"]},\r\n        {code:\"ZA\",name:\"South Africa\",flag:\"https:\/\/flagcdn.com\/za.svg\",channels:[\"SABC 1\",\"SABC 2\",\"e.tv\",\"M-Net\",\"SuperSport\",\"DStv Channels\",\"Nickelodeon ZA\",\"Disney Channel ZA\",\"National Geographic ZA\",\"History ZA\"]},\r\n        {code:\"KE\",name:\"Kenya\",flag:\"https:\/\/flagcdn.com\/ke.svg\",channels:[\"KTN\",\"Citizen TV\",\"NTV Kenya\",\"K24\",\"KBC\",\"Nickelodeon KE\",\"Disney Channel KE\",\"National Geographic KE\",\"History KE\",\"Kiss TV\"]},\r\n        {code:\"GH\",name:\"Ghana\",flag:\"https:\/\/flagcdn.com\/gh.svg\",channels:[\"GBC\",\"TV3 Ghana\",\"Metro TV Ghana\",\"Joy Prime\",\"Adom TV\",\"Nickelodeon GH\",\"Disney Channel GH\",\"National Geographic GH\",\"History GH\"]},\r\n        {code:\"DZ\",name:\"Algeria\",flag:\"https:\/\/flagcdn.com\/dz.svg\",channels:[\"ENTV\",\"El Djazairia\",\"Canal Alg\u00e9rie\",\"El Bilad TV\",\"Nessma TV\",\"Nickelodeon DZ\",\"Disney Channel DZ\",\"National Geographic DZ\"]},\r\n        {code:\"ET\",name:\"Ethiopia\",flag:\"https:\/\/flagcdn.com\/et.svg\",channels:[\"EBC\",\"Fana TV\",\"Kana TV\",\"Welmel TV\",\"Tikur TV\",\"Nickelodeon ET\",\"Disney Channel ET\",\"National Geographic ET\"]},\r\n        {code:\"UG\",name:\"Uganda\",flag:\"https:\/\/flagcdn.com\/ug.svg\",channels:[\"NTV Uganda\",\"NBS TV\",\"Urban TV\",\"Bukedde TV\",\"LTV\",\"Nickelodeon UG\",\"Disney Channel UG\",\"National Geographic UG\"]},\r\n        {code:\"TN\",name:\"Tunisia\",flag:\"https:\/\/flagcdn.com\/tn.svg\",channels:[\"T\u00e9l\u00e9vision Tunisienne 1\",\"El Wataniya 2\",\"Nessma\",\"Attessia TV\",\"Hannibal TV\",\"Nickelodeon TN\",\"Disney Channel TN\",\"National Geographic TN\"]},\r\n        {code:\"TZ\",name:\"Tanzania\",flag:\"https:\/\/flagcdn.com\/tz.svg\",channels:[\"ITV Tanzania\",\"Star TV Tanzania\",\"TBC\",\"Clouds TV\",\"EATV\",\"Nickelodeon TZ\",\"Disney Channel TZ\",\"National Geographic TZ\"]}\r\n      ],\r\n      \"Asia\": [\r\n        {code:\"AE\",name:\"United Arab Emirates\",flag:\"https:\/\/flagcdn.com\/ae.svg\",channels:[\"Al Arabiya\",\"Dubai TV\",\"Abu Dhabi TV\",\"Emirates TV\",\"Sharjah TV\",\"Oro TV\",\"TrueVisions\",\"True4U\",\"True Select\",\"True Music\"]},\r\n        {code:\"SA\",name:\"Saudi Arabia\",flag:\"https:\/\/flagcdn.com\/sa.svg\",channels:[\"Al Ekhbariya\",\"Saudi TV\",\"Rotana Khalijiya\",\"Al Resalah TV\",\"MBC1\",\"MBC Action\",\"MBC Max\",\"TrueVisions\",\"True4U\",\"True Select\"]},\r\n        {code:\"QA\",name:\"Qatar\",flag:\"https:\/\/flagcdn.com\/qa.svg\",channels:[\"Al Jazeera\",\"Qatar TV\",\"BeIN Sports\",\"Al Rayyan TV\",\"TrueVisions\",\"True4U\"]},\r\n        {code:\"JP\",name:\"Japan\",flag:\"https:\/\/flagcdn.com\/jp.svg\",channels:[\"NHK General TV\",\"NHK Educational TV\",\"Nippon TV\",\"TBS\",\"Fuji TV\",\"TV Asahi\",\"TV Tokyo\",\"Disney Channel Japan\",\"Nickelodeon Japan\",\"National Geographic Japan\"]},\r\n        {code:\"CN\",name:\"China\",flag:\"https:\/\/flagcdn.com\/cn.svg\",channels:[\"CCTV-1\",\"CCTV-2\",\"CCTV-3\",\"Hunan TV\",\"Dragon TV\",\"Phoenix TV\",\"Disney Channel CN\",\"Nickelodeon CN\",\"National Geographic CN\"]},\r\n        {code:\"IN\",name:\"India\",flag:\"https:\/\/flagcdn.com\/in.svg\",channels:[\"Doordarshan\",\"Star Plus\",\"Zee TV\",\"Sony TV\",\"Colors TV\",\"Disney Channel India\",\"Nickelodeon India\",\"National Geographic India\"]},\r\n        {code:\"KR\",name:\"South Korea\",flag:\"https:\/\/flagcdn.com\/kr.svg\",channels:[\"KBS1\",\"KBS2\",\"MBC\",\"SBS\",\"tvN\",\"JTBC\",\"Disney Channel KR\",\"Nickelodeon KR\",\"National Geographic KR\"]},\r\n        {code:\"SG\",name:\"Singapore\",flag:\"https:\/\/flagcdn.com\/sg.svg\",channels:[\"Mediacorp Channel 5\",\"Channel 8\",\"Suria\",\"Vasantham\",\"Nickelodeon SG\",\"Disney Channel SG\",\"National Geographic SG\"]},\r\n        {code:\"TH\",name:\"Thailand\",flag:\"https:\/\/flagcdn.com\/th.svg\",channels:[\"Channel 3\",\"Channel 7\",\"Workpoint TV\",\"NBT\",\"Thai PBS\",\"Nickelodeon TH\",\"Disney Channel TH\",\"National Geographic TH\"]},\r\n        {code:\"MY\",name:\"Malaysia\",flag:\"https:\/\/flagcdn.com\/my.svg\",channels:[\"TV3 Malaysia\",\"Astro Ria\",\"Ntv7\",\"8TV\",\"TV9\",\"Nickelodeon MY\",\"Disney Channel MY\",\"National Geographic MY\"]},\r\n        {code:\"ID\",name:\"Indonesia\",flag:\"https:\/\/flagcdn.com\/id.svg\",channels:[\"RCTI\",\"SCTV\",\"Trans TV\",\"MNCTV\",\"NET.\",\"Nickelodeon ID\",\"Disney Channel ID\",\"National Geographic ID\"]},\r\n        {code:\"PH\",name:\"Philippines\",flag:\"https:\/\/flagcdn.com\/ph.svg\",channels:[\"ABS-CBN\",\"GMA Network\",\"TV5\",\"CNN Philippines\",\"PTV\",\"Nickelodeon PH\",\"Disney Channel PH\",\"National Geographic PH\"]},\r\n        {code:\"VN\",name:\"Vietnam\",flag:\"https:\/\/flagcdn.com\/vn.svg\",channels:[\"VTV1\",\"VTV3\",\"HTV7\",\"VTC\",\"HTV\",\"Nickelodeon VN\",\"Disney Channel VN\",\"National Geographic VN\"]},\r\n        {code:\"PK\",name:\"Pakistan\",flag:\"https:\/\/flagcdn.com\/pk.svg\",channels:[\"PTV Home\",\"Geo TV\",\"ARY Digital\",\"Hum TV\",\"Nickelodeon PK\",\"Disney Channel PK\",\"National Geographic PK\"]}\r\n      ],\r\n      \"Oceania\": [\r\n        {code:\"AU\",name:\"Australia\",flag:\"https:\/\/flagcdn.com\/au.svg\",channels:[\"ABC Australia\",\"SBS\",\"Seven Network\",\"Nine Network\",\"Ten Network\",\"Foxtel\",\"7mate\",\"10 Peach\",\"ABC Me\",\"Fox Sports Australia\",\"National Geographic Australia\"]},\r\n        {code:\"NZ\",name:\"New Zealand\",flag:\"https:\/\/flagcdn.com\/nz.svg\",channels:[\"TVNZ 1\",\"TVNZ 2\",\"Three NZ\",\"Four\",\"Sky Sport NZ\",\"Maori Television\",\"Nickelodeon NZ\",\"Disney Channel NZ\",\"National Geographic NZ\"]}\r\n      ]\r\n    };\r\n\r\n    const regionTabsEl = document.querySelector('.iptv-region-tabs');\r\n    const countryTabsEl = document.querySelector('.iptv-country-tabs');\r\n    const channelsListEl = document.querySelector('.iptv-channels-list');\r\n    const searchInputEl = document.getElementById('iptv-search-input');\r\n\r\n    let currentRegion = null;\r\n    let currentCountryCode = null;\r\n\r\n    function normalizeText(text) {\r\n      return text.normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\").toLowerCase();\r\n    }\r\n\r\n    function renderRegionTabs() {\r\n      regionTabsEl.innerHTML = '';\r\n      let index = 0;\r\n      for (const region of Object.keys(data)) {\r\n        const btn = document.createElement('button');\r\n        btn.type = \"button\";\r\n        btn.textContent = region;\r\n        btn.setAttribute('role', 'tab');\r\n        btn.setAttribute('aria-selected', 'false');\r\n        btn.setAttribute('tabindex', '-1');\r\n        btn.dataset.region = region;\r\n\r\n        if (index === 0) {\r\n          btn.classList.add('active');\r\n          btn.setAttribute('aria-selected', 'true');\r\n          btn.setAttribute('tabindex', '0');\r\n          currentRegion = region;\r\n        }\r\n\r\n        btn.addEventListener('click', () => {\r\n          if (currentRegion === region) return;\r\n          switchRegion(region);\r\n        });\r\n\r\n        btn.addEventListener('keydown', e => {\r\n          if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {\r\n            e.preventDefault();\r\n            const focusable = Array.from(regionTabsEl.querySelectorAll('button'));\r\n            let i = focusable.indexOf(e.target);\r\n            i = e.key === 'ArrowRight' ? (i + 1) % focusable.length : (i - 1 + focusable.length) % focusable.length;\r\n            focusable[i].focus();\r\n          }\r\n        });\r\n\r\n        regionTabsEl.appendChild(btn);\r\n        index++;\r\n      }\r\n    }\r\n\r\n    function renderCountryTabs() {\r\n      countryTabsEl.innerHTML = '';\r\n      if (!currentRegion) return;\r\n\r\n      const countries = data[currentRegion];\r\n      if (!countries || countries.length === 0) return;\r\n\r\n      currentCountryCode = countries[0].code;\r\n\r\n      countries.forEach((country, idx) => {\r\n        const btn = document.createElement('button');\r\n        btn.type = \"button\";\r\n        btn.setAttribute('role', 'tab');\r\n        btn.setAttribute('aria-selected', 'false');\r\n        btn.setAttribute('tabindex', '-1');\r\n        btn.dataset.countryCode = country.code;\r\n        btn.title = country.name;\r\n\r\n        const img = document.createElement('img');\r\n        img.src = country.flag;\r\n        img.alt = country.name + \" flag\";\r\n        img.className = \"flag-icon\";\r\n        img.loading = \"lazy\";\r\n        btn.appendChild(img);\r\n\r\n        btn.appendChild(document.createTextNode(country.name));\r\n\r\n        if (idx === 0) {\r\n          btn.classList.add('active');\r\n          btn.setAttribute('aria-selected', 'true');\r\n          btn.setAttribute('tabindex', '0');\r\n        }\r\n\r\n        btn.addEventListener('click', () => {\r\n          if (currentCountryCode === country.code) return;\r\n          switchCountry(country.code);\r\n        });\r\n\r\n        btn.addEventListener('keydown', e => {\r\n          if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {\r\n            e.preventDefault();\r\n            const focusable = Array.from(countryTabsEl.querySelectorAll('button'));\r\n            let i = focusable.indexOf(e.target);\r\n            i = e.key === 'ArrowRight' ? (i + 1) % focusable.length : (i - 1 + focusable.length) % focusable.length;\r\n            focusable[i].focus();\r\n          }\r\n        });\r\n\r\n        countryTabsEl.appendChild(btn);\r\n      });\r\n    }\r\n\r\n    function renderChannels(filter = '') {\r\n      channelsListEl.innerHTML = '';\r\n      if (!currentRegion || !currentCountryCode) return;\r\n\r\n      const countries = data[currentRegion];\r\n      if (!countries || countries.length === 0) return;\r\n\r\n      const country = countries.find(c => c.code === currentCountryCode);\r\n      if (!country) return;\r\n\r\n      const normalizedFilter = normalizeText(filter);\r\n\r\n      let filteredChannels = country.channels.filter(ch => normalizeText(ch).includes(normalizedFilter));\r\n\r\n      if (filteredChannels.length === 0 && normalizedFilter.length > 0) {\r\n        if (normalizeText(country.name).includes(normalizedFilter)) {\r\n          filteredChannels = country.channels.slice();\r\n        }\r\n      }\r\n\r\n      if (filteredChannels.length === 0 && normalizedFilter.length > 0) {\r\n        channelsListEl.innerHTML = '';\r\n        const results = [];\r\n        for (const regionName of Object.keys(data)) {\r\n          for (const ctry of data[regionName]) {\r\n            if (normalizeText(ctry.name).includes(normalizedFilter)) {\r\n              for (const ch of ctry.channels) {\r\n                results.push({region: regionName, country: ctry.name, code: ctry.code, channel: ch, flag: ctry.flag});\r\n              }\r\n            } else {\r\n              for (const ch of ctry.channels) {\r\n                if (normalizeText(ch).includes(normalizedFilter)) {\r\n                  results.push({region: regionName, country: ctry.name, code: ctry.code, channel: ch, flag: ctry.flag});\r\n                }\r\n              }\r\n            }\r\n          }\r\n        }\r\n        if (results.length === 0) {\r\n          channelsListEl.innerHTML = `<p style=\"color:#bbb;text-align:center; padding: 20px;\">No channels found matching \"${filter}\".<\/p>`;\r\n          return;\r\n        }\r\n        results.forEach(item => {\r\n          const itemEl = document.createElement('div');\r\n          itemEl.className = 'iptv-channel-item';\r\n          itemEl.tabIndex = 0;\r\n\r\n          const flagImg = document.createElement('img');\r\n          flagImg.className = 'iptv-channel-flag';\r\n          flagImg.src = item.flag;\r\n          flagImg.alt = item.country + \" flag\";\r\n          flagImg.loading = \"lazy\";\r\n\r\n          const infoDiv = document.createElement('div');\r\n          infoDiv.className = 'iptv-channel-info';\r\n          infoDiv.textContent = item.channel;\r\n\r\n          const regionCountry = document.createElement('span');\r\n          regionCountry.className = 'iptv-channel-region-country';\r\n          regionCountry.textContent = `(${item.country}, ${item.region})`;\r\n\r\n          infoDiv.appendChild(regionCountry);\r\n\r\n          itemEl.appendChild(flagImg);\r\n          itemEl.appendChild(infoDiv);\r\n\r\n          channelsListEl.appendChild(itemEl);\r\n        });\r\n        return;\r\n      }\r\n\r\n      if (filteredChannels.length === 0) {\r\n        channelsListEl.innerHTML = `<p style=\"color:#bbb;text-align:center; padding: 20px;\">No channels found for \"${filter}\".<\/p>`;\r\n        return;\r\n      }\r\n\r\n      filteredChannels.forEach(channelName => {\r\n        const itemEl = document.createElement('div');\r\n        itemEl.className = 'iptv-channel-item';\r\n        itemEl.tabIndex = 0;\r\n\r\n        const flagImg = document.createElement('img');\r\n        flagImg.className = 'iptv-channel-flag';\r\n        const countries = data[currentRegion];\r\n        const chCountry = countries.find(c => c.code === currentCountryCode);\r\n        flagImg.src = chCountry?.flag || '';\r\n        flagImg.alt = chCountry?.name + \" flag\" || '';\r\n        flagImg.loading = \"lazy\";\r\n\r\n        const infoDiv = document.createElement('div');\r\n        infoDiv.className = 'iptv-channel-info';\r\n        infoDiv.textContent = channelName;\r\n\r\n        itemEl.appendChild(flagImg);\r\n        itemEl.appendChild(infoDiv);\r\n\r\n        channelsListEl.appendChild(itemEl);\r\n      });\r\n    }\r\n\r\n    function switchRegion(newRegion) {\r\n      if (newRegion === currentRegion) return;\r\n      currentRegion = newRegion;\r\n      for (const btn of regionTabsEl.children) {\r\n        const isActive = btn.dataset.region === newRegion;\r\n        btn.classList.toggle('active', isActive);\r\n        btn.setAttribute('aria-selected', isActive ? 'true' : 'false');\r\n        btn.tabIndex = isActive ? 0 : -1;\r\n      }\r\n      renderCountryTabs();\r\n      renderChannels(searchInputEl.value.trim());\r\n    }\r\n\r\n    function switchCountry(newCode) {\r\n      if (!currentRegion) return;\r\n      if (newCode === currentCountryCode) return;\r\n      currentCountryCode = newCode;\r\n      for (const btn of countryTabsEl.children) {\r\n        const isActive = btn.dataset.countryCode === newCode;\r\n        btn.classList.toggle('active', isActive);\r\n        btn.setAttribute('aria-selected', isActive ? 'true' : 'false');\r\n        btn.tabIndex = isActive ? 0 : -1;\r\n      }\r\n      renderChannels(searchInputEl.value.trim());\r\n    }\r\n\r\n    searchInputEl.addEventListener('input', e => {\r\n      renderChannels(e.target.value.trim());\r\n    });\r\n\r\n    function init() {\r\n      renderRegionTabs();\r\n      renderCountryTabs();\r\n      renderChannels();\r\n    }\r\n    init();\r\n  })();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-bbf1eec e-flex e-con-boxed e-con e-parent\" data-id=\"bbf1eec\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-913dfc0 elementor-widget elementor-widget-text-editor\" data-id=\"913dfc0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>Remark:<\/strong> If you don\u2019t see your favorite channel listed in the table, please get a <a href=\"https:\/\/dinoiptv.co\/clients\/index.php?rp=\/store\/free\/free-trial-dino\"><strong>free 48-hour trial<\/strong><\/a> to check all available channels. We update our channel list every week.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Our Channels Stream over 26,000 global channels instantly no need for a channel list! Get your free 48-hour trial today and enjoy live content on any devic Free trial 48-hour Remark: If you don\u2019t see your favorite channel listed in the table, please get a free 48-hour trial to check all available channels. We update [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_monsterinsights_skip_tracking":false,"footnotes":""},"class_list":["post-171","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/dinoiptv.co\/tv\/wp-json\/wp\/v2\/pages\/171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dinoiptv.co\/tv\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dinoiptv.co\/tv\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dinoiptv.co\/tv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dinoiptv.co\/tv\/wp-json\/wp\/v2\/comments?post=171"}],"version-history":[{"count":43,"href":"https:\/\/dinoiptv.co\/tv\/wp-json\/wp\/v2\/pages\/171\/revisions"}],"predecessor-version":[{"id":503,"href":"https:\/\/dinoiptv.co\/tv\/wp-json\/wp\/v2\/pages\/171\/revisions\/503"}],"wp:attachment":[{"href":"https:\/\/dinoiptv.co\/tv\/wp-json\/wp\/v2\/media?parent=171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}