{"id":1179,"date":"2026-06-24T14:21:03","date_gmt":"2026-06-24T14:21:03","guid":{"rendered":"https:\/\/googlecumbia.metricavisual.com\/?page_id=1179"},"modified":"2026-09-17T00:47:29","modified_gmt":"2026-09-17T00:47:29","slug":"tv-bandera-en-vivo","status":"publish","type":"page","link":"https:\/\/googlecumbia.metricavisual.com\/?page_id=1179","title":{"rendered":"TV. BANDERA en vivo"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>transmisiones en vivo desde arequipa peru pasanos tu video clips y lo pasaremos en nuestro canal a nivel mundial. al whatsap 978424241<\/strong><\/p>\n\n\n\n<style>\n.slider-wrapper {\n    width: 100%;\n    overflow: hidden;\n    background: #000;\n    position: relative;\n}\n\n.slider-track {\n    display: flex;\n    width: max-content;\n    animation: scroll 25s linear infinite;\n}\n\n.slider-item {\n    flex: 0 0 auto;\n    width: 540px;\n    height: 310px;\n    margin-right: 10px;\n}\n\n.slider-item img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    display: block;\n}\n\n\/* Pausa al pasar mouse *\/\n.slider-wrapper:hover .slider-track {\n    animation-play-state: paused;\n}\n\n@keyframes scroll {\n    0% { transform: translateX(0); }\n    100% { transform: translateX(-50%); }\n}\n<\/style>\n\n<div class=\"slider-wrapper\">\n\n    <div class=\"slider-track\">\n\n        <div class=\"slider-item\">\n            <a href=\"https:\/\/enjuliaca.blogspot.com\/2012\/02\/agrupacion-melody.html\" target=\"_blank\">\n                <img decoding=\"async\" src=\"https:\/\/i.postimg.cc\/cCGxFqsV\/BANDERA-LIUX.png\">\n            <\/a>\n        <\/div>\n\n        <div class=\"slider-item\">\n            <a href=\"https:\/\/orquestabanderafullmelody.on.drv.tw\/html\/html.html\" target=\"_blank\">\n                <img decoding=\"async\" src=\"https:\/\/i.postimg.cc\/qRB1fq1r\/RADIO-LOGO.png\">\n            <\/a>\n        <\/div>\n\n        <div class=\"slider-item\">\n            <a href=\"https:\/\/googlecumbia.blogspot.com\/\" target=\"_blank\">\n                <img decoding=\"async\" src=\"https:\/\/i.postimg.cc\/9MqrQt8Y\/logo-de-radio.jpg\">\n            <\/a>\n        <\/div>\n\n        <div class=\"slider-item\">\n            <a href=\"https:\/\/www.facebook.com\/rabyhuillca\" target=\"_blank\">\n                <img decoding=\"async\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEg5wklMNnSbPbUnWPKSeTsRZNmtjt2HbVADNVfmZgaoioNLCWeHs9CiWPM6sgTy2YFTZOVa8w9jDDrlxMkWrtwEcVMm48S3_ltpbRy18id6Z1OoWT4pdvuTArdGfQELHyZjIbpGn6mAQhGu\/s1600\/fon-raby.jpg\">\n            <\/a>\n        <\/div>\n\n        <div class=\"slider-item\">\n            <a href=\"https:\/\/www.youtube.com\/user\/musicajuliaca\/videos\" target=\"_blank\">\n                <img decoding=\"async\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhKaREGIIUHrl4ZDLZPwFrTQBiv2weZCAyVaB6jtLtnuNW6u06x0EtLpDpL9BgewwV2NSveWfGoGGOwFLkeJZxspHg7CHkP5YjKFrwqL4bcbv1HCWpMHefr5YCSkgD1P8NVF8ZU7EMphEju\/s1600\/tarjeta-melody..png\">\n            <\/a>\n        <\/div>\n\n        <div class=\"slider-item\">\n            <a href=\"https:\/\/www.youtube.com\/embed\/9R15aMC_Tm0?feature=player_embedded\" target=\"_blank\">\n                <img decoding=\"async\" src=\"https:\/\/i.postimg.cc\/yxvMJ4Sc\/EN-ESCENARIO.png\">\n            <\/a>\n        <\/div>\n\n        <div class=\"slider-item\">\n            <a href=\"https:\/\/www.youtube.com\/watch?v=CtHDbpdIddo\" target=\"_blank\">\n                <img decoding=\"async\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEixeX88PGoAuoSRiv_EfakcEYirok-xjJtT_CyPFl-IcVC6tZX-aMCxJ897dbjBDExCXcc7eXbeHWxz6A5cGegeQjUcHgHqURgCJb9MOehiDLMjsI-tlshidwbZPRCyXkzjFn8i-H8nluu9ibw5B1x0vGa-p5yj9VPdyKPnnFI68ZswkkaXsEN6605qOA\/s320\/iconogooglecumbia.png\">\n            <\/a>\n        <\/div>\n\n        <div class=\"slider-item\">\n            <a href=\"https:\/\/www.facebook.com\/plugins\/video.php?height=314&#038;href=https:\/\/www.facebook.com\/rabi.huillca\/videos\/328164900179508\/\" target=\"_blank\">\n                <img decoding=\"async\" src=\"https:\/\/i.postimg.cc\/vZ6rTrJZ\/THIAGO.png\">\n            <\/a>\n        <\/div>\n\n        <div class=\"slider-item\">\n            <a href=\"https:\/\/www.youtube.com\/watch?v=x6F4zmGMn5I\" target=\"_blank\">\n                <img decoding=\"async\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEii3l3c0xW74QlEZFvph2f6_tIbESCSswoEV_OlKGD-fxnhRqqBU4gYmJUFcLok0uyrAFxDOwIzmDB_EUdV57vSj6G6-0Snn5oqDeeJ8LFOVYX-zPctdG5RShttZ_F4fGDdB3uht8qzIMI\/s1600\/letrero12.jpg\">\n            <\/a>\n        <\/div>\n\n    <\/div>\n\n<\/div>\n\n\n\n<style>\n\/* ==========================================\n   REPRODUCTOR HLS GOOGLE CUMBIA\n========================================== *\/\n\n.gcp-tv-player,\n.gcp-tv-player * {\n    box-sizing: border-box;\n}\n\n.gcp-tv-player {\n    --gcp-accent: #ff5a00;\n    --gcp-bg: #090909;\n    --gcp-panel: #171717;\n\n    width: 100%;\n    max-width: 1200px;\n    margin: 24px auto;\n    padding: 18px;\n    overflow: hidden;\n    background:\n        radial-gradient(circle at top, rgba(255, 90, 0, 0.12), transparent 42%),\n        var(--gcp-panel);\n    border: 1px solid rgba(255, 255, 255, 0.08);\n    border-radius: 20px;\n    color: #fff;\n    font-family: Arial, sans-serif;\n    box-shadow: 0 16px 45px rgba(0, 0, 0, 0.35);\n}\n\n.gcp-tv-header {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 15px;\n    margin-bottom: 15px;\n}\n\n.gcp-tv-heading {\n    min-width: 0;\n}\n\n.gcp-tv-heading h2 {\n    margin: 0;\n    color: #fff;\n    font-size: clamp(20px, 3vw, 30px);\n    line-height: 1.2;\n}\n\n.gcp-tv-status {\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    margin: 7px 0 0;\n    color: #bbb;\n    font-size: 14px;\n}\n\n.gcp-tv-status-dot {\n    width: 9px;\n    height: 9px;\n    flex: 0 0 9px;\n    background: #777;\n    border-radius: 50%;\n}\n\n.gcp-tv-status.is-live .gcp-tv-status-dot {\n    background: #21c45a;\n    box-shadow: 0 0 0 5px rgba(33, 196, 90, 0.14);\n}\n\n.gcp-tv-live-badge {\n    display: inline-flex;\n    align-items: center;\n    gap: 7px;\n    flex: 0 0 auto;\n    padding: 8px 12px;\n    background: #d90000;\n    border-radius: 999px;\n    color: #fff;\n    font-size: 12px;\n    font-weight: 800;\n    letter-spacing: 0.7px;\n    text-transform: uppercase;\n}\n\n.gcp-tv-live-badge::before {\n    content: \"\";\n    width: 8px;\n    height: 8px;\n    background: #fff;\n    border-radius: 50%;\n    animation: gcp-live-pulse 1.3s ease-in-out infinite;\n}\n\n.gcp-tv-screen {\n    position: relative;\n    width: 100%;\n    overflow: hidden;\n    background: #000;\n    border-radius: 16px;\n    aspect-ratio: 16 \/ 9;\n}\n\n.gcp-tv-video {\n    display: block;\n    width: 100%;\n    height: 100%;\n    background: #000;\n    object-fit: contain;\n}\n\n\/* Capa inicial y errores *\/\n.gcp-tv-overlay {\n    position: absolute;\n    inset: 0;\n    z-index: 5;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    padding: 24px;\n    background:\n        linear-gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.78));\n    text-align: center;\n    transition:\n        opacity 0.25s ease,\n        visibility 0.25s ease;\n}\n\n.gcp-tv-overlay.is-hidden {\n    visibility: hidden;\n    opacity: 0;\n    pointer-events: none;\n}\n\n.gcp-tv-overlay-content {\n    width: min(100%, 520px);\n}\n\n.gcp-tv-overlay-icon {\n    display: block;\n    margin-bottom: 12px;\n    font-size: 48px;\n}\n\n.gcp-tv-overlay-title {\n    margin: 0 0 8px;\n    color: #fff;\n    font-size: clamp(21px, 4vw, 30px);\n}\n\n.gcp-tv-overlay-message {\n    margin: 0 0 18px;\n    color: #d4d4d4;\n    font-size: 15px;\n    line-height: 1.6;\n}\n\n.gcp-tv-start-button,\n.gcp-tv-retry-button {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 9px;\n    min-height: 48px;\n    padding: 12px 22px;\n    border: 0;\n    border-radius: 999px;\n    background: var(--gcp-accent);\n    color: #fff;\n    font-size: 15px;\n    font-weight: 800;\n    cursor: pointer;\n    transition:\n        transform 0.2s ease,\n        filter 0.2s ease;\n}\n\n.gcp-tv-start-button:hover,\n.gcp-tv-retry-button:hover {\n    transform: translateY(-2px);\n    filter: brightness(1.08);\n}\n\n\/* Cargando *\/\n.gcp-tv-loader {\n    display: none;\n    position: absolute;\n    inset: 0;\n    z-index: 4;\n    align-items: center;\n    justify-content: center;\n    pointer-events: none;\n}\n\n.gcp-tv-loader.is-visible {\n    display: flex;\n}\n\n.gcp-tv-spinner {\n    width: 52px;\n    height: 52px;\n    border: 5px solid rgba(255, 255, 255, 0.2);\n    border-top-color: var(--gcp-accent);\n    border-radius: 50%;\n    animation: gcp-spinner 0.8s linear infinite;\n}\n\n\/* Barra inferior informativa *\/\n.gcp-tv-info {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 14px;\n    margin-top: 14px;\n    padding: 12px 14px;\n    background: rgba(255, 255, 255, 0.04);\n    border-radius: 12px;\n}\n\n.gcp-tv-info-text {\n    min-width: 0;\n}\n\n.gcp-tv-info strong {\n    display: block;\n    margin-bottom: 4px;\n    color: #fff;\n}\n\n.gcp-tv-info small {\n    display: block;\n    overflow: hidden;\n    color: #aaa;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n}\n\n.gcp-tv-actions {\n    display: flex;\n    flex: 0 0 auto;\n    gap: 8px;\n}\n\n.gcp-tv-action {\n    min-height: 40px;\n    padding: 9px 13px;\n    border: 1px solid rgba(255, 255, 255, 0.14);\n    border-radius: 10px;\n    background: rgba(255, 255, 255, 0.06);\n    color: #fff;\n    font-weight: 700;\n    cursor: pointer;\n}\n\n.gcp-tv-action:hover {\n    background: rgba(255, 255, 255, 0.12);\n}\n\n@keyframes gcp-spinner {\n    to {\n        transform: rotate(360deg);\n    }\n}\n\n@keyframes gcp-live-pulse {\n    0%,\n    100% {\n        opacity: 1;\n    }\n\n    50% {\n        opacity: 0.35;\n    }\n}\n\n@media (max-width: 700px) {\n    .gcp-tv-player {\n        margin: 14px auto;\n        padding: 10px;\n        border-radius: 14px;\n    }\n\n    .gcp-tv-screen {\n        border-radius: 10px;\n    }\n\n    .gcp-tv-header {\n        align-items: flex-start;\n    }\n\n    .gcp-tv-info {\n        align-items: stretch;\n        flex-direction: column;\n    }\n\n    .gcp-tv-actions {\n        width: 100%;\n    }\n\n    .gcp-tv-action {\n        flex: 1;\n    }\n}\n<\/style>\n\n<section class=\"gcp-tv-player\" id=\"gcpTvPlayer\">\n    <div class=\"gcp-tv-header\">\n        <div class=\"gcp-tv-heading\">\n            <h2>Televisi\u00f3n en vivo<\/h2>\n\n            <p class=\"gcp-tv-status\" id=\"gcpTvStatus\">\n                <span class=\"gcp-tv-status-dot\"><\/span>\n                <span id=\"gcpTvStatusText\">Preparando se\u00f1al\u2026<\/span>\n            <\/p>\n        <\/div>\n\n        <span class=\"gcp-tv-live-badge\">En vivo<\/span>\n    <\/div>\n\n    <div class=\"gcp-tv-screen\" id=\"gcpTvScreen\">\n        <video class=\"gcp-tv-video\" id=\"gcpHlsVideo\" controls=\"\" playsinline=\"\" preload=\"metadata\" crossorigin=\"anonymous\"><\/video>\n\n        <div class=\"gcp-tv-loader\" id=\"gcpTvLoader\">\n            <span class=\"gcp-tv-spinner\"><\/span>\n        <\/div>\n\n        <div class=\"gcp-tv-overlay\" id=\"gcpTvOverlay\">\n            <div class=\"gcp-tv-overlay-content\">\n                <span class=\"gcp-tv-overlay-icon\" id=\"gcpTvOverlayIcon\">\u25b6<\/span>\n\n                <h3 class=\"gcp-tv-overlay-title\" id=\"gcpTvOverlayTitle\">\n                    Se\u00f1al de televisi\u00f3n\n                <\/h3>\n\n                <p class=\"gcp-tv-overlay-message\" id=\"gcpTvOverlayMessage\">\n                    Pulsa el bot\u00f3n para iniciar la transmisi\u00f3n en vivo.\n                <\/p>\n\n                <button type=\"button\" class=\"gcp-tv-start-button\" id=\"gcpTvStartButton\">\n                    \u25b6 Ver transmisi\u00f3n\n                <\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"gcp-tv-info\">\n        <div class=\"gcp-tv-info-text\">\n            <strong>Canal en vivo<\/strong>\n            <small id=\"gcpTvTechnicalStatus\">HLS \u00b7 Calidad autom\u00e1tica<\/small>\n        <\/div>\n\n        <div class=\"gcp-tv-actions\">\n            <button type=\"button\" class=\"gcp-tv-action\" id=\"gcpTvReload\">\n                \u21bb Recargar\n            <\/button>\n\n            <button type=\"button\" class=\"gcp-tv-action\" id=\"gcpTvFullscreen\">\n                \u26f6 Pantalla completa\n            <\/button>\n        <\/div>\n    <\/div>\n<\/section>\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/hls.js@1\/dist\/hls.min.js\"><\/script>\n\n<script>\n(function () {\n    \"use strict\";\n\n    const STREAM_URL =\n        \"https:\/\/jireh-9-hls-video-us-isp.dps.live\/hls-video\/567ffde3fa319fadf3419efda25619456231dfea\/latinanoticias\/latinanoticias.smil\/latinanoticias\/livestream2\/chunks.m3u8?dpssid=b211934004269fbb0f554e34&amp;sid=ba5t1l1xb273784619569fbb0f65fe4c&amp;ndvc=0\";\n\n    const video = document.getElementById(\"gcpHlsVideo\");\n    const playerContainer = document.getElementById(\"gcpTvPlayer\");\n    const screen = document.getElementById(\"gcpTvScreen\");\n    const overlay = document.getElementById(\"gcpTvOverlay\");\n    const overlayIcon = document.getElementById(\"gcpTvOverlayIcon\");\n    const overlayTitle = document.getElementById(\"gcpTvOverlayTitle\");\n    const overlayMessage = document.getElementById(\"gcpTvOverlayMessage\");\n    const startButton = document.getElementById(\"gcpTvStartButton\");\n    const loader = document.getElementById(\"gcpTvLoader\");\n    const status = document.getElementById(\"gcpTvStatus\");\n    const statusText = document.getElementById(\"gcpTvStatusText\");\n    const technicalStatus = document.getElementById(\"gcpTvTechnicalStatus\");\n    const reloadButton = document.getElementById(\"gcpTvReload\");\n    const fullscreenButton = document.getElementById(\"gcpTvFullscreen\");\n\n    let hls = null;\n    let started = false;\n    let recoveryAttempts = 0;\n    const MAX_RECOVERY_ATTEMPTS = 3;\n\n    function setLoading(isLoading) {\n        loader.classList.toggle(\"is-visible\", isLoading);\n    }\n\n    function setStatus(message, isLive) {\n        statusText.textContent = message;\n        status.classList.toggle(\"is-live\", Boolean(isLive));\n    }\n\n    function hideOverlay() {\n        overlay.classList.add(\"is-hidden\");\n    }\n\n    function showOverlay(options) {\n        const config = Object.assign(\n            {\n                icon: \"\u26a0\",\n                title: \"No se pudo reproducir\",\n                message: \"La se\u00f1al no est\u00e1 disponible temporalmente.\",\n                button: \"Reintentar\"\n            },\n            options || {}\n        );\n\n        overlayIcon.textContent = config.icon;\n        overlayTitle.textContent = config.title;\n        overlayMessage.textContent = config.message;\n        startButton.textContent = config.button;\n        startButton.className = \"gcp-tv-retry-button\";\n        overlay.classList.remove(\"is-hidden\");\n    }\n\n    function destroyCurrentStream() {\n        if (hls) {\n            hls.destroy();\n            hls = null;\n        }\n\n        video.pause();\n        video.removeAttribute(\"src\");\n        video.load();\n    }\n\n    function tryPlay() {\n        const playPromise = video.play();\n\n        if (playPromise && typeof playPromise.catch === \"function\") {\n            playPromise.catch(function () {\n                \/*\n                 * El navegador puede bloquear el autoplay.\n                 * El usuario podr\u00e1 iniciar la reproducci\u00f3n con los controles.\n                 *\/\n                setStatus(\"Pulsa reproducir para comenzar\", false);\n                technicalStatus.textContent =\n                    \"La se\u00f1al est\u00e1 lista \u00b7 Autoplay bloqueado\";\n            });\n        }\n    }\n\n    function loadNativeHls() {\n        technicalStatus.textContent = \"HLS nativo \u00b7 Calidad autom\u00e1tica\";\n        video.src = STREAM_URL;\n\n        video.addEventListener(\n            \"loadedmetadata\",\n            function () {\n                setLoading(false);\n                setStatus(\"Se\u00f1al conectada\", true);\n                hideOverlay();\n                tryPlay();\n            },\n            { once: true }\n        );\n\n        video.addEventListener(\n            \"error\",\n            function () {\n                setLoading(false);\n                showOverlay({\n                    title: \"Error de reproducci\u00f3n\",\n                    message:\n                        \"El navegador no pudo abrir la se\u00f1al HLS nativa.\",\n                    button: \"Volver a intentar\"\n                });\n                setStatus(\"Se\u00f1al no disponible\", false);\n            },\n            { once: true }\n        );\n    }\n\n    function loadWithHlsJs() {\n        hls = new Hls({\n            enableWorker: true,\n            lowLatencyMode: true,\n            backBufferLength: 60,\n            maxBufferLength: 30,\n            maxMaxBufferLength: 60\n        });\n\n        technicalStatus.textContent =\n            \"hls.js \u00b7 Detectando calidad autom\u00e1ticamente\";\n\n        hls.loadSource(STREAM_URL);\n        hls.attachMedia(video);\n\n        hls.on(Hls.Events.MANIFEST_PARSED, function (event, data) {\n            recoveryAttempts = 0;\n            setLoading(false);\n            setStatus(\"Se\u00f1al conectada\", true);\n            hideOverlay();\n\n            const levels = data && data.levels ? data.levels.length : 0;\n\n            technicalStatus.textContent = levels > 1\n                ? \"HLS \u00b7 \" + levels + \" calidades disponibles\"\n                : \"HLS \u00b7 Calidad autom\u00e1tica\";\n\n            tryPlay();\n        });\n\n        hls.on(Hls.Events.LEVEL_SWITCHED, function (event, data) {\n            const level = hls.levels[data.level];\n\n            if (level && level.height) {\n                technicalStatus.textContent =\n                    \"HLS \u00b7 \" + level.height + \"p \u00b7 En vivo\";\n            }\n        });\n\n        hls.on(Hls.Events.ERROR, function (event, data) {\n            if (!data.fatal) {\n                return;\n            }\n\n            recoveryAttempts += 1;\n\n            if (recoveryAttempts > MAX_RECOVERY_ATTEMPTS) {\n                setLoading(false);\n                setStatus(\"Se\u00f1al interrumpida\", false);\n\n                showOverlay({\n                    title: \"Transmisi\u00f3n no disponible\",\n                    message:\n                        \"La se\u00f1al no respondi\u00f3 despu\u00e9s de varios intentos. Puede estar fuera de l\u00ednea o bloqueando la reproducci\u00f3n externa.\",\n                    button: \"Reintentar se\u00f1al\"\n                });\n\n                destroyCurrentStream();\n                return;\n            }\n\n            switch (data.type) {\n                case Hls.ErrorTypes.NETWORK_ERROR:\n                    setStatus(\"Reconectando se\u00f1al\u2026\", false);\n                    technicalStatus.textContent =\n                        \"Error de red \u00b7 Intentando reconectar\";\n                    hls.startLoad();\n                    break;\n\n                case Hls.ErrorTypes.MEDIA_ERROR:\n                    setStatus(\"Recuperando video\u2026\", false);\n                    technicalStatus.textContent =\n                        \"Error multimedia \u00b7 Recuperando\";\n                    hls.recoverMediaError();\n                    break;\n\n                default:\n                    destroyCurrentStream();\n                    startStream();\n                    break;\n            }\n        });\n    }\n\n    function startStream() {\n        destroyCurrentStream();\n\n        started = true;\n        recoveryAttempts = 0;\n\n        setLoading(true);\n        setStatus(\"Conectando con la se\u00f1al\u2026\", false);\n        technicalStatus.textContent = \"Cargando transmisi\u00f3n HLS\u2026\";\n\n        \/*\n         * Safari y algunos dispositivos Apple reproducen HLS\n         * directamente mediante la etiqueta video.\n         *\/\n        if (video.canPlayType(\"application\/vnd.apple.mpegurl\")) {\n            loadNativeHls();\n            return;\n        }\n\n        \/*\n         * Chrome, Edge, Firefox y muchos dispositivos Android\n         * utilizan hls.js mediante Media Source Extensions.\n         *\/\n        if (window.Hls && Hls.isSupported()) {\n            loadWithHlsJs();\n            return;\n        }\n\n        setLoading(false);\n        setStatus(\"Navegador incompatible\", false);\n\n        showOverlay({\n            icon: \"!\",\n            title: \"Navegador no compatible\",\n            message:\n                \"Este navegador no permite reproducir transmisiones HLS.\",\n            button: \"Intentar nuevamente\"\n        });\n    }\n\n    startButton.addEventListener(\"click\", function () {\n        startStream();\n    });\n\n    reloadButton.addEventListener(\"click\", function () {\n        startStream();\n    });\n\n    fullscreenButton.addEventListener(\"click\", function () {\n        if (document.fullscreenElement) {\n            document.exitFullscreen();\n            return;\n        }\n\n        if (screen.requestFullscreen) {\n            screen.requestFullscreen();\n        } else if (video.webkitEnterFullscreen) {\n            video.webkitEnterFullscreen();\n        }\n    });\n\n    video.addEventListener(\"waiting\", function () {\n        if (started) {\n            setLoading(true);\n            setStatus(\"Almacenando se\u00f1al\u2026\", false);\n        }\n    });\n\n    video.addEventListener(\"playing\", function () {\n        setLoading(false);\n        setStatus(\"Transmitiendo en vivo\", true);\n        hideOverlay();\n    });\n\n    video.addEventListener(\"pause\", function () {\n        if (!video.ended && video.currentTime > 0) {\n            setStatus(\"Transmisi\u00f3n pausada\", false);\n        }\n    });\n\n    video.addEventListener(\"ended\", function () {\n        setStatus(\"La transmisi\u00f3n termin\u00f3\", false);\n    });\n\n    window.addEventListener(\"beforeunload\", function () {\n        destroyCurrentStream();\n    });\n})();\n<\/script>\n\n\n\n<!-- REPRODUCTOR HLS PARA WORDPRESS -->\n<div class=\"wptv\" id=\"wptv-1\" data-src=\"https:\/\/lbgo.bozztv.com\/ssh101\/ssh101\/bandera\/chunks.m3u8?lb_backend_hint=7\" data-title=\"tv bandera\" data-poster=\"\" data-autoplay=\"true\" data-muted=\"true\">\n<\/div>\n\n<!-- ESTILOS DEL REPRODUCTOR -->\n<style>\n.wptv{--wptv-accent:#3b82f6;width:100%;max-width:900px;margin:0 auto;font-family:system-ui,-apple-system,\"Segoe UI\",Roboto,sans-serif;color:#fff;-webkit-tap-highlight-color:transparent}\n.wptv *{box-sizing:border-box}\n.wptv__stage{position:relative;width:100%;aspect-ratio:16\/9;background:#000;border-radius:14px;overflow:hidden;box-shadow:0 12px 30px rgba(0,0,0,.55)}\n.wptv__stage:fullscreen{border-radius:0;aspect-ratio:auto;height:100%}\n.wptv__video{width:100%;height:100%;object-fit:contain;display:block;background:#000}\n.wptv__overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:rgba(0,0,0,.78);backdrop-filter:blur(3px);text-align:center;padding:16px;z-index:3;transition:opacity .25s}\n.wptv__overlay[hidden]{display:none}\n.wptv__spinner{width:42px;height:42px;border:3px solid rgba(255,255,255,.2);border-top-color:var(--wptv-accent);border-radius:50%;animation:wptv-spin .9s linear infinite}\n@keyframes wptv-spin{to{transform:rotate(360deg)}}\n@media (prefers-reduced-motion:reduce){.wptv__spinner{animation-duration:2.5s}}\n.wptv__msg{margin:0;font-size:15px;opacity:.92}\n.wptv__btn{appearance:none;border:0;cursor:pointer;background:var(--wptv-accent);color:#fff;font-weight:700;font-size:15px;padding:11px 22px;border-radius:999px;transition:transform .15s,filter .15s}\n.wptv__btn:hover{filter:brightness(1.12)}\n.wptv__btn:active{transform:scale(.97)}\n.wptv__bar{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;align-items:center;gap:6px;padding:26px 10px 8px;background:linear-gradient(to top,rgba(0,0,0,.85),transparent);opacity:0;transform:translateY(6px);transition:opacity .2s,transform .2s;flex-wrap:wrap}\n.wptv__stage:hover .wptv__bar,.wptv__stage.is-paused .wptv__bar,.wptv__bar:focus-within{opacity:1;transform:none}\n.wptv__ico{appearance:none;background:transparent;border:0;color:#fff;cursor:pointer;padding:7px;border-radius:8px;line-height:0;display:inline-flex;align-items:center;justify-content:center;transition:background .15s}\n.wptv__ico:hover{background:rgba(255,255,255,.16)}\n.wptv__ico:focus-visible,.wptv__btn:focus-visible,.wptv__sel:focus-visible{outline:2px solid #fff;outline-offset:2px}\n.wptv__ico svg{width:20px;height:20px;fill:currentColor;pointer-events:none}\n.wptv__live{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:800;letter-spacing:.08em;background:rgba(255,255,255,.12);border:0;color:#fff;padding:6px 10px;border-radius:999px;cursor:pointer}\n.wptv__live i{width:8px;height:8px;border-radius:50%;background:#ef4444;display:block;animation:wptv-pulse 1.6s infinite}\n.wptv__live.is-behind{opacity:.6}\n.wptv__live.is-behind i{background:#94a3b8;animation:none}\n@keyframes wptv-pulse{0%,100%{opacity:1}50%{opacity:.25}}\n.wptv__vol{width:80px;accent-color:var(--wptv-accent);cursor:pointer}\n.wptv__spacer{flex:1}\n.wptv__sel{background:rgba(255,255,255,.12);color:#fff;border:0;border-radius:8px;padding:6px 8px;font-size:12px;cursor:pointer}\n.wptv__sel option{color:#111}\n.wptv__title{position:absolute;top:0;left:0;right:0;z-index:2;padding:12px 14px 30px;font-size:14px;font-weight:600;background:linear-gradient(to bottom,rgba(0,0,0,.7),transparent);opacity:0;transition:opacity .2s}\n.wptv__stage:hover .wptv__title,.wptv__stage.is-paused .wptv__title{opacity:1}\n@media (max-width:480px){.wptv__vol{display:none}.wptv__sel{font-size:11px}}\n<\/style>\n\n<!-- L\u00d3GICA DEL REPRODUCTOR -->\n<script>\n(function () {\n  \"use strict\";\n  var HLS_CDN = \"https:\/\/cdn.jsdelivr.net\/npm\/hls.js@1.5.17\/dist\/hls.min.js\";\n  var hlsLoader = null;\n\n  function loadHls() {\n    if (window.Hls) return Promise.resolve(window.Hls);\n    if (hlsLoader) return hlsLoader;\n    hlsLoader = new Promise(function (res, rej) {\n      var s = document.createElement(\"script\");\n      s.src = HLS_CDN; s.async = true;\n      s.onload = function () { res(window.Hls); };\n      s.onerror = function () { rej(new Error(\"No se pudo cargar hls.js\")); };\n      document.head.appendChild(s);\n    });\n    return hlsLoader;\n  }\n\n  var ICONS = {\n    play: '<svg viewBox=\"0 0 24 24\"><path d=\"M8 5v14l11-7z\"\/><\/svg>',\n    pause: '<svg viewBox=\"0 0 24 24\"><path d=\"M6 5h4v14H6zm8 0h4v14h-4z\"\/><\/svg>',\n    vol: '<svg viewBox=\"0 0 24 24\"><path d=\"M3 9v6h4l5 5V4L7 9H3zm13.5 3a4.5 4.5 0 0 0-2.5-4v8a4.5 4.5 0 0 0 2.5-4z\"\/><\/svg>',\n    mute: '<svg viewBox=\"0 0 24 24\"><path d=\"M16.5 12a4.5 4.5 0 0 0-2.5-4v2.2l2.4 2.4c.07-.2.1-.4.1-.6zM19 12c0 .9-.2 1.8-.5 2.6l1.5 1.5A8.9 8.9 0 0 0 21 12c0-4.3-3-7.9-7-8.8v2A7 7 0 0 1 19 12zM4.3 3L3 4.3 7.7 9H3v6h4l5 5v-6.7l4.2 4.2c-.7.5-1.4.9-2.2 1.1v2c1.4-.3 2.6-.9 3.7-1.7l2 2 1.3-1.3L4.3 3zM12 4L9.9 6.1 12 8.2V4z\"\/><\/svg>',\n    fs: '<svg viewBox=\"0 0 24 24\"><path d=\"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\"\/><\/svg>',\n    pip: '<svg viewBox=\"0 0 24 24\"><path d=\"M19 11h-8v6h8v-6zm4 8V5a2 2 0 0 0-2-2H3a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2zm-2 .02H3V4.98h18v14.04z\"\/><\/svg>'\n  };\n\n  function build(root) {\n    var src = root.dataset.src;\n    if (!src) return;\n    var title = root.dataset.title || \"\";\n    var autoplay = root.dataset.autoplay !== \"false\";\n    var startMuted = root.dataset.muted !== \"false\";\n\n    root.innerHTML =\n      '<div class=\"wptv__stage is-paused\">' +\n        (title ? '<div class=\"wptv__title\">' + title.replace(\/[<>&]\/g, \"\") + \"<\/div>\" : \"\") +\n        '<video class=\"wptv__video\" playsinline webkit-playsinline preload=\"metadata\"' +\n          (root.dataset.poster ? ' poster=\"' + root.dataset.poster + '\"' : \"\") + \"><\/video>\" +\n        '<div class=\"wptv__overlay\" role=\"status\" aria-live=\"polite\">' +\n          '<div class=\"wptv__spinner\"><\/div>' +\n          '<p class=\"wptv__msg\">Cargando transmisi\u00f3n\u2026<\/p>' +\n          '<button class=\"wptv__btn\" type=\"button\" hidden>\u25b6 Iniciar reproducci\u00f3n<\/button>' +\n        \"<\/div>\" +\n        '<div class=\"wptv__bar\">' +\n          '<button class=\"wptv__ico js-play\" type=\"button\" aria-label=\"Reproducir\">' + ICONS.play + \"<\/button>\" +\n          '<button class=\"wptv__ico js-mute\" type=\"button\" aria-label=\"Silenciar\">' + ICONS.vol + \"<\/button>\" +\n          '<input class=\"wptv__vol js-vol\" type=\"range\" min=\"0\" max=\"1\" step=\"0.05\" value=\"1\" aria-label=\"Volumen\">' +\n          '<button class=\"wptv__live js-live\" type=\"button\" title=\"Ir al directo\"><i><\/i>EN VIVO<\/button>' +\n          '<span class=\"wptv__spacer\"><\/span>' +\n          '<select class=\"wptv__sel js-quality\" aria-label=\"Calidad\" hidden><option value=\"-1\">Auto<\/option><\/select>' +\n          '<button class=\"wptv__ico js-pip\" type=\"button\" aria-label=\"Picture in picture\" hidden>' + ICONS.pip + \"<\/button>\" +\n          '<button class=\"wptv__ico js-fs\" type=\"button\" aria-label=\"Pantalla completa\">' + ICONS.fs + \"<\/button>\" +\n        \"<\/div>\" +\n      \"<\/div>\";\n\n    var q = function (s) { return root.querySelector(s); };\n    var stage = q(\".wptv__stage\"), video = q(\".wptv__video\"),\n        overlay = q(\".wptv__overlay\"), spinner = q(\".wptv__spinner\"),\n        msg = q(\".wptv__msg\"), bigBtn = q(\".wptv__btn\"),\n        btnPlay = q(\".js-play\"), btnMute = q(\".js-mute\"), rngVol = q(\".js-vol\"),\n        btnLive = q(\".js-live\"), selQ = q(\".js-quality\"),\n        btnPip = q(\".js-pip\"), btnFs = q(\".js-fs\");\n\n    var hls = null, retries = 0, MAX_RETRIES = 6, retryTimer = null, destroyed = false;\n\n    if (location.protocol === \"https:\" && \/^http:\\\/\\\/\/i.test(src)) {\n      showError(\"El stream usa HTTP y tu sitio HTTPS: el navegador lo bloquear\u00e1 por seguridad. Usa una URL https:\/\/.\");\n      return;\n    }\n\n    function setOverlay(text, opts) {\n      opts = opts || {};\n      overlay.hidden = false;\n      msg.textContent = text;\n      spinner.style.display = opts.loading ? \"\" : \"none\";\n      bigBtn.hidden = !opts.button;\n      if (opts.button) bigBtn.textContent = opts.button;\n    }\n    function hideOverlay() { overlay.hidden = true; }\n    function showError(text) { setOverlay(text, { button: \"\ud83d\udd04 Reintentar\" }); }\n\n    function scheduleRetry(reason) {\n      if (destroyed) return;\n      if (retries >= MAX_RETRIES) { showError(reason + \" Pulsa para reintentar.\"); return; }\n      var wait = Math.min(1000 * Math.pow(2, retries), 15000);\n      retries++;\n      setOverlay(\"Reconectando\u2026 (intento \" + retries + \"\/\" + MAX_RETRIES + \")\", { loading: true });\n      clearTimeout(retryTimer);\n      retryTimer = setTimeout(start, wait);\n    }\n\n    function teardown() {\n      clearTimeout(retryTimer);\n      if (hls) { try { hls.destroy(); } catch (e) {} hls = null; }\n    }\n\n    function tryPlay() {\n      var p = video.play();\n      if (p && p.catch) {\n        p.catch(function () {\n          if (!video.muted) {\n            video.muted = true; syncMute();\n            video.play().catch(function () {\n              setOverlay(\"Pulsa para reproducir\", { button: \"\u25b6 Reproducir\" });\n            });\n          } else {\n            setOverlay(\"Pulsa para reproducir\", { button: \"\u25b6 Reproducir\" });\n          }\n        });\n      }\n    }\n\n    function fillQualities() {\n      if (!hls || !hls.levels || hls.levels.length < 2) { selQ.hidden = true; return; }\n      selQ.innerHTML = '<option value=\"-1\">Auto<\/option>';\n      hls.levels.forEach(function (l, i) {\n        var o = document.createElement(\"option\");\n        o.value = i;\n        o.textContent = (l.height ? l.height + \"p\" : Math.round(l.bitrate \/ 1000) + \"k\");\n        selQ.appendChild(o);\n      });\n      selQ.hidden = false;\n    }\n\n    function start() {\n      teardown();\n      if (destroyed) return;\n      setOverlay(\"Cargando transmisi\u00f3n\u2026\", { loading: true });\n\n      var native = video.canPlayType(\"application\/vnd.apple.mpegurl\");\n\n      loadHls().then(function (Hls) {\n        if (destroyed) return;\n        if (Hls && Hls.isSupported()) {\n          hls = new Hls({\n            lowLatencyMode: true,\n            enableWorker: true,\n            backBufferLength: 30,\n            maxBufferLength: 20,\n            maxMaxBufferLength: 40,\n            liveSyncDurationCount: 3,\n            manifestLoadingMaxRetry: 4,\n            levelLoadingMaxRetry: 4,\n            fragLoadingMaxRetry: 6\n          });\n          hls.loadSource(src);\n          hls.attachMedia(video);\n          hls.on(Hls.Events.MANIFEST_PARSED, function () {\n            retries = 0; fillQualities(); hideOverlay();\n            if (autoplay) tryPlay(); else setOverlay(\"Listo\", { button: \"\u25b6 Reproducir\" });\n          });\n          hls.on(Hls.Events.LEVEL_SWITCHED, function () {\n            if (selQ.value === \"-1\" && hls) {\n              var l = hls.levels[hls.currentLevel];\n              selQ.options[0].textContent = \"Auto\" + (l && l.height ? \" (\" + l.height + \"p)\" : \"\");\n            }\n          });\n          hls.on(Hls.Events.ERROR, function (evt, data) {\n            if (!data.fatal) return;\n            switch (data.type) {\n              case Hls.ErrorTypes.NETWORK_ERROR:\n                if (data.details === Hls.ErrorDetails.MANIFEST_LOAD_ERROR ||\n                    data.details === Hls.ErrorDetails.MANIFEST_LOAD_TIMEOUT) {\n                  scheduleRetry(\"No se pudo conectar con el servidor.\");\n                } else { try { hls.startLoad(); } catch (e) { scheduleRetry(\"Error de red.\"); } }\n                break;\n              case Hls.ErrorTypes.MEDIA_ERROR:\n                try { hls.recoverMediaError(); } catch (e) { scheduleRetry(\"Error de v\u00eddeo.\"); }\n                break;\n              default:\n                scheduleRetry(\"La transmisi\u00f3n no est\u00e1 disponible.\");\n            }\n          });\n        } else if (native) {\n          nativePlay();\n        } else {\n          setOverlay(\"Tu navegador no soporta streaming HLS.\");\n        }\n      }).catch(function () {\n        if (native) nativePlay();\n        else showError(\"No se pudo cargar el reproductor.\");\n      });\n    }\n\n    function nativePlay() {\n      selQ.hidden = true;\n      video.src = src;\n      video.addEventListener(\"loadedmetadata\", function () {\n        retries = 0; hideOverlay(); if (autoplay) tryPlay();\n      }, { once: true });\n      video.addEventListener(\"error\", function () { scheduleRetry(\"Error en la transmisi\u00f3n.\"); }, { once: true });\n    }\n\n    function syncPlay() {\n      var paused = video.paused;\n      btnPlay.innerHTML = paused ? ICONS.play : ICONS.pause;\n      btnPlay.setAttribute(\"aria-label\", paused ? \"Reproducir\" : \"Pausar\");\n      stage.classList.toggle(\"is-paused\", paused);\n    }\n    function syncMute() {\n      var m = video.muted || video.volume === 0;\n      btnMute.innerHTML = m ? ICONS.mute : ICONS.vol;\n      btnMute.setAttribute(\"aria-label\", m ? \"Activar sonido\" : \"Silenciar\");\n      rngVol.value = m ? 0 : video.volume;\n    }\n    function syncLive() {\n      var behind = false;\n      try {\n        if (video.seekable.length) behind = (video.seekable.end(video.seekable.length - 1) - video.currentTime) > 10;\n      } catch (e) {}\n      btnLive.classList.toggle(\"is-behind\", behind);\n    }\n    function goLive() {\n      try {\n        if (hls && hls.liveSyncPosition != null) video.currentTime = hls.liveSyncPosition;\n        else if (video.seekable.length) video.currentTime = video.seekable.end(video.seekable.length - 1) - 0.5;\n      } catch (e) {}\n      video.play();\n    }\n\n    video.muted = startMuted;\n    video.volume = 1;\n    syncMute(); syncPlay();\n\n    btnPlay.addEventListener(\"click\", function () { video.paused ? video.play() : video.pause(); });\n    btnMute.addEventListener(\"click\", function () { video.muted = !video.muted; if (!video.muted && video.volume === 0) video.volume = 1; syncMute(); });\n    rngVol.addEventListener(\"input\", function () { video.volume = +rngVol.value; video.muted = +rngVol.value === 0; syncMute(); });\n    btnLive.addEventListener(\"click\", goLive);\n    selQ.addEventListener(\"change\", function () { if (hls) hls.currentLevel = parseInt(selQ.value, 10); });\n    btnFs.addEventListener(\"click\", function () {\n      if (document.fullscreenElement) document.exitFullscreen();\n      else if (stage.requestFullscreen) stage.requestFullscreen();\n      else if (video.webkitEnterFullscreen) video.webkitEnterFullscreen();\n    });\n    if (document.pictureInPictureEnabled) {\n      btnPip.hidden = false;\n      btnPip.addEventListener(\"click\", function () {\n        if (document.pictureInPictureElement) document.exitPictureInPicture();\n        else video.requestPictureInPicture().catch(function () {});\n      });\n    }\n    bigBtn.addEventListener(\"click\", function () {\n      if (bigBtn.textContent.indexOf(\"Reintentar\") > -1) { retries = 0; start(); }\n      else { hideOverlay(); video.play(); }\n    });\n    video.addEventListener(\"click\", function () { video.paused ? video.play() : video.pause(); });\n\n    video.addEventListener(\"play\", function () { syncPlay(); hideOverlay(); });\n    video.addEventListener(\"pause\", syncPlay);\n    video.addEventListener(\"volumechange\", syncMute);\n    video.addEventListener(\"waiting\", function () { setOverlay(\"Cargando\u2026\", { loading: true }); });\n    video.addEventListener(\"playing\", function () { retries = 0; hideOverlay(); });\n    video.addEventListener(\"timeupdate\", syncLive);\n\n    stage.tabIndex = 0;\n    stage.addEventListener(\"keydown\", function (e) {\n      var k = e.key.toLowerCase();\n      if (k === \" \" || k === \"k\") { e.preventDefault(); video.paused ? video.play() : video.pause(); }\n      else if (k === \"m\") { video.muted = !video.muted; syncMute(); }\n      else if (k === \"f\") { btnFs.click(); }\n      else if (k === \"l\") { goLive(); }\n      else if (k === \"arrowup\") { e.preventDefault(); video.volume = Math.min(1, video.volume + .1); }\n      else if (k === \"arrowdown\") { e.preventDefault(); video.volume = Math.max(0, video.volume - .1); }\n    });\n\n    document.addEventListener(\"visibilitychange\", function () {\n      if (document.hidden && hls) { try { hls.stopLoad(); } catch (e) {} }\n      else if (!document.hidden && hls) { try { hls.startLoad(); goLive(); } catch (e) {} }\n    });\n\n    window.addEventListener(\"pagehide\", function () { destroyed = true; teardown(); });\n\n    if (\"IntersectionObserver\" in window) {\n      var io = new IntersectionObserver(function (entries) {\n        if (entries[0].isIntersecting) { io.disconnect(); start(); }\n      }, { rootMargin: \"200px\" });\n      io.observe(root);\n    } else { start(); }\n  }\n\n  function init() {\n    document.querySelectorAll(\".wptv[data-src]\").forEach(function (el) {\n      if (el.dataset.wptvReady) return;\n      el.dataset.wptvReady = \"1\";\n      build(el);\n    });\n  }\n  if (document.readyState === \"loading\") document.addEventListener(\"DOMContentLoaded\", init);\n  else init();\n})();\n<\/script>\n\n\n\n<p class=\"wp-block-paragraph\">TODO NOVELAS<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/dtsszjrztq9ti.cloudfront.net\/v1\/master\/3722c60a815c199d9c0ef36c5b73da68a62b09d1\/cc-yshah5p4v45g1\/ToDoNovelas_ES.m3u8\"><\/video><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<style>\n.music-app {\n    max-width: 1100px;\n    margin: auto;\n    font-family: Arial, sans-serif;\n}\n\n.player {\n    width: 100%;\n    aspect-ratio: 16 \/ 9;\n    border: 0;\n    border-radius: 12px;\n    margin-bottom: 15px;\n}\n\n.grid {\n    display: grid;\n    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));\n    gap: 12px;\n}\n\n.card {\n    background: #111;\n    color: white;\n    padding: 10px;\n    border-radius: 10px;\n    cursor: pointer;\n    position: relative;\n    transition: 0.2s;\n}\n\n.card:hover {\n    background: #222;\n}\n\n.card.active {\n    border: 2px solid #1db954;\n}\n\n.title {\n    font-weight: bold;\n    margin-bottom: 6px;\n}\n\n.stats {\n    font-size: 12px;\n    display: flex;\n    justify-content: space-between;\n    margin-top: 8px;\n    opacity: 0.9;\n}\n\n.btns {\n    margin-top: 8px;\n    display: flex;\n    gap: 6px;\n}\n\n.btns button {\n    flex: 1;\n    padding: 5px;\n    border: none;\n    border-radius: 5px;\n    cursor: pointer;\n    font-size: 12px;\n}\n\n.like {\n    background: #ff2d55;\n    color: white;\n}\n\n.play {\n    background: #1db954;\n    color: black;\n    font-weight: bold;\n}\n\n.rank {\n    position: absolute;\n    top: 8px;\n    right: 8px;\n    background: gold;\n    color: black;\n    padding: 2px 6px;\n    border-radius: 50%;\n    font-size: 12px;\n    font-weight: bold;\n}\n<\/style>\n\n<div class=\"music-app\">\n\n    <iframe id=\"player\" class=\"player\"\n        src=\"https:\/\/drive.google.com\/file\/d\/1jI-ailx-zk559OESK7u6DLpDXMvlYOqt\/preview\"\n        allow=\"autoplay\">\n    <\/iframe>\n\n    <div id=\"grid\" class=\"grid\"><\/div>\n\n<\/div>\n\n<script>\nconst songs = [\n{n:\"Carnavalitos\", id:\"1jI-ailx-zk559OESK7u6DLpDXMvlYOqt\"},\n{n:\"Tumantadas\", id:\"1hOiicxOuDUpW6EvGD4wqTCuLiX0fBadS\"},\n{n:\"Vida M\u00eda\", id:\"1pTnktIkMIqGCqfzl0D9QD-bDeuf0AnHI\"},\n{n:\"MIX SOCIEDAD\", id:\"1qMDP91W_qsu2NN7AFeQ1ZIE866Yaytzq\"},\n{n:\"Tarde me di cuenta\", id:\"1Ma6JRNoCMkBl24C0A7qUrqt7QID9nGJm\"},\n{n:\"Se termin\u00f3\", id:\"1dC6f9wyDJ5caGxwrmQvQ1GOXjb2HYNdZ\"},\n{n:\"Dulce Amor Voludo\", id:\"1rGwtPIejxlnTAhUBwRThJ-Gx6wDatO6s\"},\n{n:\"Nunca te dejar\u00e9\", id:\"1xEAKqXiNXMHfuEaa77nlBxmfLOIFyQqQ\"},\n{n:\"No podr\u00e9\", id:\"1SPI1deZ2mjpnFu0EBVAI_7xskTrVaM2U\"},\n{n:\"Mundo peque\u00f1o\", id:\"1Sxx9tAd88DlqXcCKj5f0U5RITp_dkk5X\"},\n{n:\"Mix Cuzque\u00f1ita\", id:\"17usgzEqs_aQbUI3fWUqDMgj34KiokP75\"},\n{n:\"Mix Cumbias y Morenadas\", id:\"1uJ0mA2ZO8hdiVpvC4XeROtOHz6bh81_k\"},\n{n:\"Mix Chapis\", id:\"1xQaqvMS2QMvsbt9CClfWedG6UiyXQMzW\"},\n{n:\"Dulce Amor\", id:\"10IJRYu2G24UBOTGGSoKc7BStJ_xIkGTo\"},\n{n:\"Te fuiste\", id:\"1G8VPG6pja_5ikvkkaiQF3ESDITvMv4Vl\"},\n{n:\"Si crees\", id:\"1uFoK6M7yZoE0im3NpRpLUSm5X9Ma6Ama\"},\n{n:\"Me cans\u00e9\", id:\"18r-1WdeauQ241P9l3BCTD_7jq0EBkApw\"},\n{n:\"Felicidad\", id:\"1-8WEkOBFi8bB_7fzYOJoJ_sLthOQKJsG\"},\n{n:\"Me enamoras\", id:\"19nAW2jEBV7VVfRpt48TI3XQuCjb0kaCn\"},\n{n:\"Homenaje a Leo Dan\", id:\"1QtHNgHfmehM_8DKglF0-W6y0TDgkDwDC\"},\n{n:\"Mix Enlace\", id:\"1niklZcHUjalIUh4lAIgLaAIqhgqxW1oI\"},\n{n:\"Qui\u00e9n no llor\u00f3 por amor\", id:\"1p2Up_MfOK5SdrGG-cBxfxnADskuU7MVE\"},\n{n:\"Qu\u00edtame la vida\", id:\"16FCIJ-mbZxu2HPb_hepxyMQeh-6hCTH3\"}\n];\n\nlet state = songs.map((s,i)=>({\n    ...s,\n    likes: Number(localStorage.getItem(\"like_\"+i) || 0),\n    views: Number(localStorage.getItem(\"view_\"+i) || 0)\n}));\n\nlet current = 0;\n\nfunction render() {\n    const grid = document.getElementById(\"grid\");\n    grid.innerHTML = \"\";\n\n    let sorted = [...state].sort((a,b)=>b.views - a.views);\n\n    sorted.forEach((song, rank) => {\n\n        const i = state.findIndex(x => x.id === song.id);\n\n        const card = document.createElement(\"div\");\n        card.className = \"card\" + (i === current ? \" active\" : \"\");\n\n        card.innerHTML = `\n            <div class=\"rank\">${rank+1}<\/div>\n            <div class=\"title\">${song.n}<\/div>\n\n            <div class=\"stats\">\n                <span>\ud83d\udc41 ${song.views}<\/span>\n                <span>\u2764\ufe0f ${song.likes}<\/span>\n            <\/div>\n\n            <div class=\"btns\">\n                <button class=\"play\" onclick=\"playSong(${i})\">Play<\/button>\n                <button class=\"like\" onclick=\"likeSong(${i})\">Like<\/button>\n            <\/div>\n        `;\n\n        grid.appendChild(card);\n    });\n}\n\nfunction playSong(i) {\n    current = i;\n\n    state[i].views++;\n    localStorage.setItem(\"view_\"+i, state[i].views);\n\n    document.getElementById(\"player\").src =\n        \"https:\/\/drive.google.com\/file\/d\/\" + state[i].id + \"\/preview\";\n\n    render();\n}\n\nfunction likeSong(i) {\n    state[i].likes++;\n    localStorage.setItem(\"like_\"+i, state[i].likes);\n    render();\n}\n\nrender();\nplaySong(0);\n<\/script>\n\n\n\n<iframe loading=\"lazy\" src=\"https:\/\/archive.org\/embed\/clips-rabi\" width=\"560\" height=\"384\" frameborder=\"0\" webkitallowfullscreen=\"true\" mozallowfullscreen=\"true\" allowfullscreen><\/iframe>\n","protected":false},"excerpt":{"rendered":"<p>transmisiones en vivo desde arequipa peru pasanos tu video clips y lo pasaremos en nuestro canal a nivel mundial. al whatsap 978424241 Televisi\u00f3n en vivo Preparando se\u00f1al\u2026 En vivo \u25b6&#8230; dale Clik<\/p>\n","protected":false},"author":1,"featured_media":854,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1179","page","type-page","status-publish","has-post-thumbnail","hentry"],"magazineBlocksPostFeaturedMedia":{"thumbnail":"https:\/\/googlecumbia.metricavisual.com\/wp-content\/uploads\/2026\/05\/TV-BANDERA-150x150.png","medium":"https:\/\/googlecumbia.metricavisual.com\/wp-content\/uploads\/2026\/05\/TV-BANDERA-300x169.png","medium_large":"https:\/\/googlecumbia.metricavisual.com\/wp-content\/uploads\/2026\/05\/TV-BANDERA-768x432.png","large":"https:\/\/googlecumbia.metricavisual.com\/wp-content\/uploads\/2026\/05\/TV-BANDERA-1024x576.png","1536x1536":"https:\/\/googlecumbia.metricavisual.com\/wp-content\/uploads\/2026\/05\/TV-BANDERA.png","2048x2048":"https:\/\/googlecumbia.metricavisual.com\/wp-content\/uploads\/2026\/05\/TV-BANDERA.png"},"magazineBlocksPostAuthor":{"name":"Rabi","avatar":"https:\/\/secure.gravatar.com\/avatar\/f801d06501b4b5f3b6f1dd296f2be2e92a3c3f2195efe2eba5a72ee5bdd2e8be?s=96&d=mm&r=g"},"magazineBlocksPostCommentsNumber":"0","magazineBlocksPostExcerpt":"transmisiones en vivo desde arequipa peru pasanos tu video clips y lo pasaremos en nuestro canal a nivel mundial. al whatsap 978424241 Televisi\u00f3n en vivo Preparando se\u00f1al\u2026 En vivo \u25b6... dale Clik","magazineBlocksPostCategories":[],"magazineBlocksPostViewCount":0,"magazineBlocksPostReadTime":1,"_links":{"self":[{"href":"https:\/\/googlecumbia.metricavisual.com\/index.php?rest_route=\/wp\/v2\/pages\/1179","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/googlecumbia.metricavisual.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/googlecumbia.metricavisual.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/googlecumbia.metricavisual.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/googlecumbia.metricavisual.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1179"}],"version-history":[{"count":13,"href":"https:\/\/googlecumbia.metricavisual.com\/index.php?rest_route=\/wp\/v2\/pages\/1179\/revisions"}],"predecessor-version":[{"id":36531,"href":"https:\/\/googlecumbia.metricavisual.com\/index.php?rest_route=\/wp\/v2\/pages\/1179\/revisions\/36531"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/googlecumbia.metricavisual.com\/index.php?rest_route=\/wp\/v2\/media\/854"}],"wp:attachment":[{"href":"https:\/\/googlecumbia.metricavisual.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1179"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}