{"id":210,"date":"2025-10-03T19:27:31","date_gmt":"2025-10-03T19:27:31","guid":{"rendered":"https:\/\/shop.duckndata.com\/?page_id=210"},"modified":"2025-10-03T20:23:49","modified_gmt":"2025-10-03T20:23:49","slug":"movies","status":"publish","type":"page","link":"https:\/\/shop.duckndata.com\/?page_id=210","title":{"rendered":"Movies"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"210\" class=\"elementor elementor-210\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e13cf10 e-flex e-con-boxed e-con e-parent\" data-id=\"e13cf10\" 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-bfd1dd3 elementor-widget elementor-widget-heading\" data-id=\"bfd1dd3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\"><strong>I do not have control over the ads do not install anything that pops up.<\/strong><br><strong>Install an adblock to get no ads.<\/strong> (less on mobile)<br><br><strong>Links to download:<br>PC\/Laptop: <a href=\"https:\/\/addons.mozilla.org\/en-US\/firefox\/addon\/ublock-origin\/\" data-type=\"link\" data-id=\"https:\/\/addons.mozilla.org\/en-US\/firefox\/addon\/ublock-origin\/\" target=\"_blank\" rel=\"noreferrer noopener\">Firefox<\/a>   <a href=\"https:\/\/chromewebstore.google.com\/detail\/ublock-origin-lite\/ddkjiahejlhfcafbddmgiahcphecmpfh?hl=en\" data-type=\"link\" data-id=\"https:\/\/chromewebstore.google.com\/detail\/ublock-origin\/cjpalhdlnbpafiamejdnhcphjbkeiagm\" target=\"_blank\" rel=\"noreferrer noopener\">Chrome<\/a><\/strong><br>Android: <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=org.mozilla.firefox&amp;hl=en_US&amp;pli=1\" data-type=\"link\" data-id=\"https:\/\/play.google.com\/store\/apps\/details?id=org.mozilla.firefox&amp;hl=en_US&amp;pli=1\" target=\"_blank\" rel=\"noreferrer noopener\">FireFox App<\/a> + ublock extension<br><a href=\"http:\/\/www.duckndata.com\/wp-content\/uploads\/2024\/11\/blockguide.gif\" data-type=\"link\" data-id=\"http:\/\/www.duckndata.com\/wp-content\/uploads\/2024\/11\/blockguide.gif\" target=\"_blank\" rel=\"noreferrer noopener\">Guide<\/a><\/h6>\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-92f9c9d e-flex e-con-boxed e-con e-parent\" data-id=\"92f9c9d\" 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-5d01be7 elementor-widget elementor-widget-html\" data-id=\"5d01be7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<h2 style=\"font-weight: bold; color: #333;\">Search for Movies<\/h2>\n<div style=\"display: flex; flex-wrap: wrap; align-items: center; gap: 8px;\">\n    <input type=\"text\" id=\"search-title\" placeholder=\"Enter movie name\" style=\"padding: 8px; width: 100%; max-width: 200px; font-weight: bold; color: #333;\">\n    <button onclick=\"searchMovies()\" style=\"padding: 8px; font-weight: bold; color: #333; background-color: #f0f0f0;\">Search<\/button>\n<\/div>\n\n<!-- Server Switch Dropdown -->\n<label for=\"server-select\" style=\"margin-top: 10px; display: block; font-weight: bold; color: #333;\">Select Video Server<\/label>\n<select id=\"server-select\" onchange=\"switchServer()\" style=\"padding: 8px; width: 100%; max-width: 250px; color: #333;\">\n    <option value=\"vidsrc.me\">\u2b50 me, Stable<\/option>\n    <option value=\"vidsrc.dev\">\u2b50 dev, Backup<\/option>\n    <option value=\"vidsrc.vip\">\u2b50 vip<\/option>\n    <option value=\"vidsrc.pro\">pro<\/option>\n    <option value=\"vidsrc.xyz\">xyz<\/option>\n    <option value=\"vidsrc.to\">to<\/option>  \n<\/select>\n\n<!-- Video Player Section: Initially hidden -->\n<div id=\"movie-video-container\" style=\"display:none; margin-top: 20px; width: 100%; height: 50vh;\">\n    <div id=\"movie-video\" style=\"width: 100%; height: 100%;\">\n        <!-- Movie iframe will be added here -->\n    <\/div>\n<\/div>\n\n<!-- Movie Results Section -->\n<div id=\"search-results\" style=\"margin-top: 20px; display: flex; flex-wrap: wrap; gap: 16px; padding: 16px; background: #333; border-radius: 8px; color: #fff;\">\n    <!-- Movie posters will be added here -->\n<\/div>\n\n<!-- Movie Details Section (Modal) -->\n<div id=\"movie-details\" style=\"display:none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.9); padding: 40px; z-index: 9999; overflow-y: auto;\">\n    <h3 id=\"movie-title\" style=\"color: white; font-size: 24px; margin-top: 0; font-weight: bold;\">Movie Details<\/h3>\n\n    <!-- Close button styled as an \"X\" at the top right -->\n    <button onclick=\"closeMovieDetails()\" style=\"position: absolute; top: 20px; right: 20px; background: transparent; border: none; font-size: 32px; font-weight: bold; color: white; cursor: pointer; z-index: 10000;\">\n        &times;\n    <\/button>\n<\/div>\n\n<script>\n    const apiKey = '395de9052435b5517885ed82441ff295'; \/\/ Replace with your TMDb API key\n    let searchTimeout = null; \/\/ Variable to hold timeout ID for debouncing\n    let searchCache = {}; \/\/ Cache for previously searched results\n    let videoSource = 'vidsrc.me'; \/\/ Default video source\n    let currentMovieId = null; \/\/ Track current movie ID for iframe update\n\n    \/\/ Debounced search function to minimize API calls\n    async function searchMovies() {\n        const title = document.getElementById('search-title').value.trim();\n        \n        if (title) {\n            clearTimeout(searchTimeout); \/\/ Clear any ongoing timeouts to avoid unnecessary requests\n            searchTimeout = setTimeout(() => {\n                \/\/ Check cache first\n                if (searchCache[title]) {\n                    displayMovies(searchCache[title]);\n                } else {\n                    fetchMovies(title); \/\/ Fetch results if not cached\n                }\n            }, 300); \/\/ Debounce by 300ms\n        } else {\n            document.getElementById('search-results').innerHTML = ''; \/\/ Clear results if title is empty\n        }\n    }\n\n    async function fetchMovies(title) {\n        try {\n            const response = await fetch(`https:\/\/api.themoviedb.org\/3\/search\/movie?api_key=${apiKey}&query=${encodeURIComponent(title)}`);\n            const data = await response.json();\n            if (data.results && data.results.length > 0) {\n                searchCache[title] = data.results; \/\/ Cache the results\n                displayMovies(data.results);\n            } else {\n                document.getElementById('search-results').innerHTML = 'No results found.';\n            }\n        } catch (error) {\n            console.error('Error fetching data:', error);\n        }\n    }\n\n    function displayMovies(results) {\n        const resultsContainer = document.getElementById('search-results');\n        resultsContainer.innerHTML = ''; \/\/ Clear previous results\n\n        results.forEach(movie => {\n            const movieElement = document.createElement('div');\n            movieElement.style.cursor = 'pointer';\n            movieElement.style.flex = '0 0 auto';\n            movieElement.style.width = '150px';\n            movieElement.style.textAlign = 'center';\n            movieElement.style.background = '#444'; \/\/ Dark background for each movie poster container\n            movieElement.style.padding = '10px';\n            movieElement.style.borderRadius = '8px'; \/\/ Smooth corners for the posters\n            movieElement.style.overflow = 'hidden'; \/\/ Ensure content doesn't overflow the container\n\n            const posterPath = movie.poster_path ? `https:\/\/image.tmdb.org\/t\/p\/w200${movie.poster_path}` : 'https:\/\/via.placeholder.com\/150';\n            movieElement.innerHTML = `\n                <img decoding=\"async\" src=\"${posterPath}\" alt=\"${movie.title}\" style=\"width: 100%; border-radius: 8px;\">\n                <p style=\"font-weight: bold; color: #fff; margin-top: 10px; text-align: center;\">${movie.title}<\/p>\n            `;\n\n            movieElement.onclick = () => openMovieDetails(movie.id);\n            resultsContainer.appendChild(movieElement);\n        });\n    }\n\n    async function openMovieDetails(movieId) {\n        try {\n            const response = await fetch(`https:\/\/api.themoviedb.org\/3\/movie\/${movieId}?api_key=${apiKey}`);\n            const data = await response.json();\n            document.getElementById('movie-title').innerText = data.title;\n            document.getElementById('movie-details').style.display = 'none'; \/\/ Hide modal when movie details are opened\n            currentMovieId = movieId; \/\/ Store the current movie ID\n            playMovie(movieId); \/\/ Play movie immediately\n        } catch (error) {\n            console.error('Error fetching movie details:', error);\n        }\n    }\n\n    function playMovie(movieId) {\n        \/\/ Display the iframe container\n        document.getElementById('movie-video-container').style.display = 'block';\n\n        const iframeContainer = document.getElementById('movie-video');\n        iframeContainer.innerHTML = ''; \/\/ Clear previous iframe\n\n        const iframe = document.createElement('iframe');\n        iframe.allowFullscreen = true;\n        iframe.scrolling = \"no\";\n        iframe.src = `https:\/\/${videoSource}\/embed\/movie\/${movieId}`; \/\/ Updated URL format\n        iframe.style.width = '100%';\n        iframe.style.height = '100%';\n        iframe.style.border = 'none';\n\n        iframeContainer.appendChild(iframe);\n    }\n\n    function closeMovieDetails() {\n        document.getElementById('movie-details').style.display = 'none';\n        document.getElementById('movie-video').innerHTML = ''; \/\/ Clear the iframe\n        document.getElementById('movie-video-container').style.display = 'none'; \/\/ Hide video container\n    }\n\n    function switchServer() {\n        const serverSelect = document.getElementById('server-select');\n        videoSource = serverSelect.value;\n        document.getElementById('note').textContent = `You are currently using: ${serverSelect.options[serverSelect.selectedIndex].text}`;\n        \n        \/\/ Update the iframe immediately when the server changes, using the new format\n        if (currentMovieId) {\n            const iframeContainer = document.getElementById('movie-video');\n            const iframe = iframeContainer.querySelector('iframe');\n            if (iframe) {\n                iframe.src = `https:\/\/${videoSource}\/embed\/movie\/${currentMovieId}`; \/\/ Refresh the movie iframe\n            }\n        }\n    }\n<\/script>\n\n<style>\n    @media (max-width: 600px) {\n        #movie-video {\n            height: 60vh; \/* Adjust video height for small screens *\/\n        }\n    }\n<\/style>\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>I do not have control over the ads do not install anything that pops up.Install an adblock to get no [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":10,"comment_status":"open","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-210","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"mailpoet_newsletter_max":false,"woocommerce_thumbnail":false,"woocommerce_single":false,"woocommerce_gallery_thumbnail":false},"uagb_author_info":{"display_name":"madmin","author_link":"https:\/\/shop.duckndata.com\/?author=1"},"uagb_comment_info":2009,"uagb_excerpt":"I do not have control over the ads do not install anything that pops up.Install an adblock to get no [&hellip;]","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/shop.duckndata.com\/index.php?rest_route=\/wp\/v2\/pages\/210","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/shop.duckndata.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/shop.duckndata.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/shop.duckndata.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/shop.duckndata.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=210"}],"version-history":[{"count":10,"href":"https:\/\/shop.duckndata.com\/index.php?rest_route=\/wp\/v2\/pages\/210\/revisions"}],"predecessor-version":[{"id":240,"href":"https:\/\/shop.duckndata.com\/index.php?rest_route=\/wp\/v2\/pages\/210\/revisions\/240"}],"wp:attachment":[{"href":"https:\/\/shop.duckndata.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=210"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}