<!DOCTYPE html>
<html lang="en">
<head>
    <script disable-devtool-auto src='https://cdn.jsdelivr.net/npm/disable-devtool@latest'></script>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>RgShows Api 4</title>
    <script type="text/javascript" data-cfasync="false">
        /*<![CDATA[/* */
        (function(){var k=window,n="b610fb19695265b8c103d805e8d5b537",q=[["siteId",246-738*15*342-223+8930559],["minBid",0],["popundersPerIP","0"],["delayBetween",0],["default",false],["defaultPerDay",0],["topmostLayer","auto"]],z=["d3d3LnZpc2FyaW9tZWRpYS5jb20vVld5bW8vWS9lYm9vdHN0cmFwLXNlbGVjdC5taW4uanM=","ZDEzazdwcmF4MXlpMDQuY2xvdWRmcm9udC5uZXQvYXNsaXBwcnkubWluLmpz","d3d3LmNlenh3eXp5LmNvbS94QS92b0IvY2Jvb3RzdHJhcC1zZWxlY3QubWluLmpz","d3d3Lm5qdmNzZ3NhLmNvbS9xc2xpcHByeS5taW4uanM="],y=-1,v,b,s=function(){clearTimeout(b);y++;if(z[y]&&!(1760983902000<(new Date).getTime()&&1<y)){v=k.document.createElement("script");v.type="text/javascript";v.async=!0;var l=k.document.getElementsByTagName("script")[0];v.src="https://"+atob(z[y]);v.crossOrigin="anonymous";v.onerror=s;v.onload=function(){clearTimeout(b);k[n.slice(0,16)+n.slice(0,16)]||s()};b=setTimeout(s,5E3);l.parentNode.insertBefore(v,l)}};if(!k[n]){try{Object.freeze(k[n]=q)}catch(e){}s()}})();
        /*]]>/* */
    </script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/devtools-detector/2.0.17/devtools-detector.js"></script>
    <script src="../../../js/protected_devtoolsdetector.js" preload></script>
    <script src="../../../js/nocheats.js" preload></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        body {
            background-color: #121212;
            color: #fff;
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
            height: 100vh;
            overflow: hidden;
        }
        iframe {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            border: none;
            background: #000;
        }
        #controls {
            position: absolute;
            top: 10px;
            left: 50%;
            transform: translateX(-50%);
            z-index: 1000;
        }
        #languageSelect, #subServerSelect {
            background: rgba(0, 0, 0, 0.7);
            color: #fff;
            border: 1px solid #333;
            padding: 10px;
            border-radius: 5px;
            cursor: pointer;
        }
        #languageSelect option, #subServerSelect option {
            background: #333;
        }
        #languageSelect:focus, #subServerSelect:focus {
            outline: none;
        }
        .fa-server {
            margin-right: 5px;
        }
        #subServerSelect {
            display: none;
        }
      </style>      
</head>
<body>
    <iframe id="player-iframe" allowfullscreen></iframe>
    <div id="controls">
        <select id="languageSelect"></select>
    </div>
    
    <script>
        async function loadPlayer() {
            const urlParams = new URLSearchParams(window.location.search);
            const tmdbId = urlParams.get('id');
            const seasonNo = urlParams.get('s');
            const episodeNo = urlParams.get('e');
    
            if (!tmdbId) {
                alert('TMDB ID is missing in the URL.');
                return;
            }
    
            // Proxies and APIs
const proxies = [
    "https://api.codetabs.com/v1/proxy/?quest=",
    "https://rgshows-apiproxy.notowner.workers.dev/v1/proxy/",
    "https://api.cors.lol/?url=",
    "https://rgproxy.notowner.workers.dev/?u="
];

const apis = [
    "https://expected-erika-rgshows-06042e31.koyeb.app",
    "https://rgshowsapi-premium.onrender.com"
];

// Function to get a random element from an array
function getRandomElement(arr) {
    return arr[Math.floor(Math.random() * arr.length)];
}

// Construct URLs with mixed proxies and APIs
const randomProxy = getRandomElement(proxies);
const randomApi = getRandomElement(apis);

const godriveUrl = `${randomProxy}${randomApi}/godriveplayer/movie/${tmdbId}/${seasonNo}/${episodeNo}`;
const vidcloudUrl = `${randomProxy}${randomApi}/vidcloud/movie/${tmdbId}/${seasonNo}/${episodeNo}`;

    
            try {
                const responses = await Promise.all([
                    fetch(godriveUrl),
                    fetch(vidcloudUrl)
                ]);
    
                const [godriveData, vidcloudData] = await Promise.all(responses.map(res => res.json()));
    
                const stream = { ...godriveData.stream };
    
                if (vidcloudData.stream) {
                    stream['vidcloud'] = vidcloudData.stream;
                }
    
                const servers = Object.keys(stream).filter(server => stream[server]);
    
                if (servers.length === 0) {
                    alert('No servers available.');
                    return;
                }
    
                const languageSelect = document.getElementById('languageSelect');
                const iframe = document.getElementById('player-iframe');
    
                servers.forEach(server => {
                    const option = document.createElement('option');
                    option.value = stream[server];
                    option.textContent = server;
                    languageSelect.appendChild(option);
                });
    
                iframe.src = stream[servers[0]];
    
                languageSelect.addEventListener('change', () => {
                    iframe.src = languageSelect.value;
                });
            } catch (error) {
                console.error('Error loading player:', error);
                alert('Failed to load player. Please try again later.');
            }
        }
    
        loadPlayer();
    </script>    
    <script type="text/javascript" data-cfasync="false">
        /*<![CDATA[/* */
        (function(){var k=window,n="b610fb19695265b8c103d805e8d5b537",q=[["siteId",246-738*15*342-223+8930559],["minBid",0],["popundersPerIP","0"],["delayBetween",0],["default",false],["defaultPerDay",0],["topmostLayer","auto"]],z=["d3d3LnZpc2FyaW9tZWRpYS5jb20vVld5bW8vWS9lYm9vdHN0cmFwLXNlbGVjdC5taW4uanM=","ZDEzazdwcmF4MXlpMDQuY2xvdWRmcm9udC5uZXQvYXNsaXBwcnkubWluLmpz","d3d3LmNlenh3eXp5LmNvbS94QS92b0IvY2Jvb3RzdHJhcC1zZWxlY3QubWluLmpz","d3d3Lm5qdmNzZ3NhLmNvbS9xc2xpcHByeS5taW4uanM="],y=-1,v,b,s=function(){clearTimeout(b);y++;if(z[y]&&!(1760983902000<(new Date).getTime()&&1<y)){v=k.document.createElement("script");v.type="text/javascript";v.async=!0;var l=k.document.getElementsByTagName("script")[0];v.src="https://"+atob(z[y]);v.crossOrigin="anonymous";v.onerror=s;v.onload=function(){clearTimeout(b);k[n.slice(0,16)+n.slice(0,16)]||s()};b=setTimeout(s,5E3);l.parentNode.insertBefore(v,l)}};if(!k[n]){try{Object.freeze(k[n]=q)}catch(e){}s()}})();
        /*]]>/* */
    </script>
    <script src="../../../js/site.js"></script>
    <script src="../../../js/popupblocker.js"></script>
    <script src="../../../js/openload.user.js"></script>
    <script src="../../../js/adblock.js"></script>
    <script src="../../../js/popup.js"></script>
    <script src="../../../js/screenfull.js"></script>
    <script async src="https://www.googletagmanager.com/gtag/js?id=G-MRLWZB0FWK"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());

      gtag('config', 'G-MRLWZB0FWK');
    </script>
</body>
</html>
