Domain web.zostream.in
CLOUDFLARENET
Software information

cloudflare cloudflare

tcp/443 tcp/80 tcp/8443

  • Git configuration and history exposed
    First seen 2025-11-05 10:07
    Last seen 2026-02-06 02:04
    Open for 92 days
    • Severity: medium
      Fingerprint: 2580fa947178c88602b1737db148c044b81b03713d63bb82370a652240e5b3e5

      [core]
      	repositoryformatversion = 0
      	filemode = true
      	bare = false
      	logallrefupdates = true
      [remote "origin"]
      	url = https://github.com/kailawn-ai/zostream_web.git
      	fetch = +refs/heads/*:refs/remotes/origin/*
      [branch "main"]
      	remote = origin
      	merge = refs/heads/main
      
      Found on 2026-02-06 02:04
      267 Bytes
  • Open service 104.26.1.178:443 · web.zostream.in

    2026-01-23 17:00

    HTTP/1.1 200 OK
    Date: Fri, 23 Jan 2026 17:00:07 GMT
    Content-Type: text/html
    Transfer-Encoding: chunked
    Connection: close
    Server: cloudflare
    last-modified: Wed, 08 Oct 2025 10:19:21 GMT
    Server-Timing: cfCacheStatus;desc="DYNAMIC"
    Server-Timing: cfEdge;dur=3,cfOrigin;dur=260
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=J3mV9weqNUNqvh%2B4wm%2Fl1FJu%2FM%2BikD5x9pfaQ0VUw%2BI9v2ljDfXkEYtD3g%2FnyNjW2%2FXgxNMb0hgoHSK%2BcmJFDg8ALf3izO%2BAF6Oesum9"}]}
    cf-cache-status: DYNAMIC
    vary: accept-encoding
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    Speculation-Rules: "/cdn-cgi/speculation"
    CF-RAY: 9c28d8736810f473-BLR
    alt-svc: h3=":443"; ma=86400
    
    Page title: ZoStreamTV - Home
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>ZoStreamTV - Home</title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <link rel="stylesheet" href="css/pages/home.css">
      <link rel="stylesheet" href="css/pages/nav.css">
      <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    </head>
    <body>
      <!-- Sidebar Navigation (unchanged) -->
      <aside class="sidebar">
        <div class="logo">
          <img class="logo_img" src="logo.jpg" alt="ZoStreamTV Logo" />
          <h2>ZoStreamTV</h2>
        </div>
        <ul class="nav-menu">
          <li class="nav-item"><a href="home.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">home</i><span>Home</span></a></li>
          <li class="nav-item"><a href="search.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">search</i><span>Search</span></a></li>
          <li class="nav-item"><a href="category.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">movie</i><span>Category</span></a></li>
          <li class="nav-item"><a href="profile.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">person</i><span>Profile</span></a></li>
        </ul>
      </aside>
    
      <!-- Main Content -->
      <main class="main-content"> 
        <div id="hero-slider-container"></div>
        <div id="movies-container">
          <div class="loading">Loading content...</div>
        </div>
      </main>
    
      <script type="module">
        import { initializeRemoteControl } from './js/utils/uniRemote.js';
        import { apiClient } from './js/service/apiClient.js';
        import { protectPage } from './js/service/authGuard.js';
        import { toast } from './js/utils/toastify.js';
        import useAgeRestriction from './js/utils/useAgeRestriction.js';
    
    
        let heroTrack, heroSlides, heroDots, currentHeroIndex = 1; // Start at 1 (the first REAL slide)
        let isTransitioning = false;
        const ageRestricted = useAgeRestriction.value;
    
        document.addEventListener('DOMContentLoaded', async () => {
          document.querySelectorAll('.nav-link').forEach(link => {
            if (link.href === window.location.href) link.classList.add('active');
          });
          try {
            await protectPage();
            await loadContent();
            setupNavigation();
          } catch (error) {
            showError('Authentication required. Redirecting...');
            setTimeout(() => window.location.href = './login.html', 2000);
          }
        });
    
        async function loadContent() {
          // ... (This function is unchanged) ...
          const moviesContainer = document.getElementById('movies-container');
          try {
            moviesContainer.innerHTML = '<div class="loading">Loading content...</div>';
            const response = await apiClient.get(`/movies?age_restriction=${ageRestricted}`);
            if (!response || Object.keys(response).length === 0) {
              moviesContainer.innerHTML = '<div class="loading">No content available</div>';
              return;
            }
            moviesContainer.innerHTML = '';
            let regularCatIndex = 0;
            Object.entries(response).forEach(([category, items]) => {
              if (!items || items.length === 0) return;
              if (category === 'Latest Update') {
                createHeroSlider(items);
              } else {
                const section = document.createElement('div');
                section.className = 'category-section';
                section.innerHTML = `<h2 class="category-title">${category}</h2><div class="movies-scroller"><div class="movies-row" id="category-${regularCatIndex}"></div></div>`;
                const row = section.querySelector('.movies-row');
                items.forEach(item => row.appendChild(createMediaCard(item)));
                moviesContainer.appendChild(section);
                regularCatIndex++;
              }
            });
          } catch (error) {
            showError('Failed to load content. Please try again.');
          }
        }
        
        function createHeroSlider(items) {
          const sliderContainer = document.getElementById('hero-slider-container');
          if (!sliderContainer || items.length === 0) return;
    
          co
    Found 2026-01-23 by HttpPlugin
    Create report
  • Open service 104.26.1.178:8443 · web.zostream.in

    2026-01-22 08:04

    HTTP/1.1 522 <none>
    Date: Thu, 22 Jan 2026 08:04:22 GMT
    Content-Type: text/plain; charset=UTF-8
    Content-Length: 15
    Connection: close
    Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Expires: Thu, 01 Jan 1970 00:00:01 GMT
    Referrer-Policy: same-origin
    Server-Timing: cfEdge;dur=19245,cfOrigin;dur=0
    X-Frame-Options: SAMEORIGIN
    Server: cloudflare
    CF-RAY: 9c1d89d20f4fc469-BLR
    alt-svc: h3=":8443"; ma=86400
    
    
    error code: 522
    Found 2026-01-22 by HttpPlugin
    Create report
  • Open service 2606:4700:20::681a:b2:80 · web.zostream.in

    2026-01-22 08:04

    HTTP/1.1 301 Moved Permanently
    Date: Thu, 22 Jan 2026 08:04:02 GMT
    Content-Length: 0
    Connection: close
    Location: https://web.zostream.in/
    Speculation-Rules: "/cdn-cgi/speculation"
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=DjcY8Qycz9l8CnCsNKT6Xs%2FAZ3o97%2Fv%2Bi%2F9PZSsoWxj2PhrJgsMoVXPqpWvNvp5tObHnE3hUCPqlCciuAJMqpZ5Kzmo9FI1h%2BXk5m61iuVVb6t3jV9BupC9K"}]}
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    Server-Timing: cfEdge;dur=14,cfOrigin;dur=0
    Server: cloudflare
    CF-RAY: 9c1d89cbe8a1fa9a-SJC
    alt-svc: h3=":443"; ma=86400
    
    Found 2026-01-22 by HttpPlugin
    Create report
  • Open service 2606:4700:20::ac43:4885:80 · web.zostream.in

    2026-01-22 08:04

    HTTP/1.1 301 Moved Permanently
    Date: Thu, 22 Jan 2026 08:04:02 GMT
    Content-Length: 0
    Connection: close
    Location: https://web.zostream.in/
    Speculation-Rules: "/cdn-cgi/speculation"
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=GApK3oRFEEOll9ugZ63hzIizP7DSsYU4kSWB%2BS9vOSlb8pC2u4xAOp8WvbKaqKvPu0p3%2BmUZkO6xJO3SQQaqTN1fqwGvvwu89t8KY7niYwejSTcS5LMz%2FnvW"}]}
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    Server-Timing: cfEdge;dur=6,cfOrigin;dur=0
    Server: cloudflare
    CF-RAY: 9c1d89cbea5dfdbe-SIN
    alt-svc: h3=":443"; ma=86400
    
    Found 2026-01-22 by HttpPlugin
    Create report
  • Open service 2606:4700:20::681a:1b2:443 · web.zostream.in

    2026-01-22 08:04

    HTTP/1.1 200 OK
    Date: Thu, 22 Jan 2026 08:04:03 GMT
    Content-Type: text/html
    Transfer-Encoding: chunked
    Connection: close
    Server: cloudflare
    last-modified: Wed, 08 Oct 2025 10:19:21 GMT
    Server-Timing: cfCacheStatus;desc="DYNAMIC"
    Server-Timing: cfEdge;dur=3,cfOrigin;dur=161
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=c3GDZ6%2Ffy85M5CbUqqppo31HLLPHQtc%2F%2Bo4uOChk6M0KLAFnmatmL%2FyWjIi7%2FDltHtl8M30R5YC9jf9EhnXHrTkNHF%2FlNzmxnRy6K%2B3wpQwM286dpeU%2Br00q"}]}
    cf-cache-status: DYNAMIC
    vary: accept-encoding
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    Speculation-Rules: "/cdn-cgi/speculation"
    CF-RAY: 9c1d89cebb80e084-BLR
    alt-svc: h3=":443"; ma=86400
    
    Page title: ZoStreamTV - Home
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>ZoStreamTV - Home</title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <link rel="stylesheet" href="css/pages/home.css">
      <link rel="stylesheet" href="css/pages/nav.css">
      <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    </head>
    <body>
      <!-- Sidebar Navigation (unchanged) -->
      <aside class="sidebar">
        <div class="logo">
          <img class="logo_img" src="logo.jpg" alt="ZoStreamTV Logo" />
          <h2>ZoStreamTV</h2>
        </div>
        <ul class="nav-menu">
          <li class="nav-item"><a href="home.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">home</i><span>Home</span></a></li>
          <li class="nav-item"><a href="search.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">search</i><span>Search</span></a></li>
          <li class="nav-item"><a href="category.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">movie</i><span>Category</span></a></li>
          <li class="nav-item"><a href="profile.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">person</i><span>Profile</span></a></li>
        </ul>
      </aside>
    
      <!-- Main Content -->
      <main class="main-content"> 
        <div id="hero-slider-container"></div>
        <div id="movies-container">
          <div class="loading">Loading content...</div>
        </div>
      </main>
    
      <script type="module">
        import { initializeRemoteControl } from './js/utils/uniRemote.js';
        import { apiClient } from './js/service/apiClient.js';
        import { protectPage } from './js/service/authGuard.js';
        import { toast } from './js/utils/toastify.js';
        import useAgeRestriction from './js/utils/useAgeRestriction.js';
    
    
        let heroTrack, heroSlides, heroDots, currentHeroIndex = 1; // Start at 1 (the first REAL slide)
        let isTransitioning = false;
        const ageRestricted = useAgeRestriction.value;
    
        document.addEventListener('DOMContentLoaded', async () => {
          document.querySelectorAll('.nav-link').forEach(link => {
            if (link.href === window.location.href) link.classList.add('active');
          });
          try {
            await protectPage();
            await loadContent();
            setupNavigation();
          } catch (error) {
            showError('Authentication required. Redirecting...');
            setTimeout(() => window.location.href = './login.html', 2000);
          }
        });
    
        async function loadContent() {
          // ... (This function is unchanged) ...
          const moviesContainer = document.getElementById('movies-container');
          try {
            moviesContainer.innerHTML = '<div class="loading">Loading content...</div>';
            const response = await apiClient.get(`/movies?age_restriction=${ageRestricted}`);
            if (!response || Object.keys(response).length === 0) {
              moviesContainer.innerHTML = '<div class="loading">No content available</div>';
              return;
            }
            moviesContainer.innerHTML = '';
            let regularCatIndex = 0;
            Object.entries(response).forEach(([category, items]) => {
              if (!items || items.length === 0) return;
              if (category === 'Latest Update') {
                createHeroSlider(items);
              } else {
                const section = document.createElement('div');
                section.className = 'category-section';
                section.innerHTML = `<h2 class="category-title">${category}</h2><div class="movies-scroller"><div class="movies-row" id="category-${regularCatIndex}"></div></div>`;
                const row = section.querySelector('.movies-row');
                items.forEach(item => row.appendChild(createMediaCard(item)));
                moviesContainer.appendChild(section);
                regularCatIndex++;
              }
            });
          } catch (error) {
            showError('Failed to load content. Please try again.');
          }
        }
        
        function createHeroSlider(items) {
          const sliderContainer = document.getElementById('hero-slider-container');
          if (!sliderContainer || items.length === 0) return;
    
          co
    Found 2026-01-22 by HttpPlugin
    Create report
  • Open service 2606:4700:20::681a:b2:8443 · web.zostream.in

    2026-01-22 08:04

    HTTP/1.1 522 <none>
    Date: Thu, 22 Jan 2026 08:04:23 GMT
    Content-Type: text/plain; charset=UTF-8
    Content-Length: 15
    Connection: close
    Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Expires: Thu, 01 Jan 1970 00:00:01 GMT
    Referrer-Policy: same-origin
    Server-Timing: cfEdge;dur=19478,cfOrigin;dur=0
    X-Frame-Options: SAMEORIGIN
    Server: cloudflare
    CF-RAY: 9c1d89d21858327e-SJC
    alt-svc: h3=":8443"; ma=86400
    
    
    error code: 522
    Found 2026-01-22 by HttpPlugin
    Create report
  • Open service 104.26.0.178:8443 · web.zostream.in

    2026-01-22 08:04

    HTTP/1.1 522 <none>
    Date: Thu, 22 Jan 2026 08:04:23 GMT
    Content-Type: text/plain; charset=UTF-8
    Content-Length: 15
    Connection: close
    Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Expires: Thu, 01 Jan 1970 00:00:01 GMT
    Referrer-Policy: same-origin
    Server-Timing: cfEdge;dur=19525,cfOrigin;dur=0
    X-Frame-Options: SAMEORIGIN
    Server: cloudflare
    CF-RAY: 9c1d89d1e9aca450-YYZ
    alt-svc: h3=":8443"; ma=86400
    
    
    error code: 522
    Found 2026-01-22 by HttpPlugin
    Create report
  • Open service 2606:4700:20::681a:1b2:8443 · web.zostream.in

    2026-01-22 08:04

    HTTP/1.1 522 <none>
    Date: Thu, 22 Jan 2026 08:04:22 GMT
    Content-Type: text/plain; charset=UTF-8
    Content-Length: 15
    Connection: close
    Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Expires: Thu, 01 Jan 1970 00:00:01 GMT
    Referrer-Policy: same-origin
    Server-Timing: cfEdge;dur=19280,cfOrigin;dur=0
    X-Frame-Options: SAMEORIGIN
    Server: cloudflare
    CF-RAY: 9c1d89d1d8bb741b-BLR
    alt-svc: h3=":8443"; ma=86400
    
    
    error code: 522
    Found 2026-01-22 by HttpPlugin
    Create report
  • Open service 2606:4700:20::ac43:4885:8443 · web.zostream.in

    2026-01-22 08:04

    HTTP/1.1 522 <none>
    Date: Thu, 22 Jan 2026 08:04:23 GMT
    Content-Type: text/plain; charset=UTF-8
    Content-Length: 15
    Connection: close
    Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Expires: Thu, 01 Jan 1970 00:00:01 GMT
    Referrer-Policy: same-origin
    Server-Timing: cfEdge;dur=19644,cfOrigin;dur=0
    X-Frame-Options: SAMEORIGIN
    Server: cloudflare
    CF-RAY: 9c1d89d1d9bbaff6-EWR
    alt-svc: h3=":8443"; ma=86400
    
    
    error code: 522
    Found 2026-01-22 by HttpPlugin
    Create report
  • Open service 2606:4700:20::ac43:4885:443 · web.zostream.in

    2026-01-22 08:04

    HTTP/1.1 200 OK
    Date: Thu, 22 Jan 2026 08:04:03 GMT
    Content-Type: text/html
    Transfer-Encoding: chunked
    Connection: close
    Server: cloudflare
    last-modified: Wed, 08 Oct 2025 10:19:21 GMT
    Server-Timing: cfCacheStatus;desc="DYNAMIC"
    Server-Timing: cfEdge;dur=12,cfOrigin;dur=279
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=P7mQJSufo0IsJpRQqumASPVF%2FI7qb3%2FqY92PQRpzTyb9I0H2Izk8yT3GwW8BSclEL9vt2T13BenzCnxvd7bHEHb3orlWoSkDu7AfspXoMURS%2B1DdfXXYslqJ"}]}
    cf-cache-status: DYNAMIC
    vary: accept-encoding
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    Speculation-Rules: "/cdn-cgi/speculation"
    CF-RAY: 9c1d89cd7905420a-EWR
    alt-svc: h3=":443"; ma=86400
    
    Page title: ZoStreamTV - Home
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>ZoStreamTV - Home</title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <link rel="stylesheet" href="css/pages/home.css">
      <link rel="stylesheet" href="css/pages/nav.css">
      <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    </head>
    <body>
      <!-- Sidebar Navigation (unchanged) -->
      <aside class="sidebar">
        <div class="logo">
          <img class="logo_img" src="logo.jpg" alt="ZoStreamTV Logo" />
          <h2>ZoStreamTV</h2>
        </div>
        <ul class="nav-menu">
          <li class="nav-item"><a href="home.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">home</i><span>Home</span></a></li>
          <li class="nav-item"><a href="search.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">search</i><span>Search</span></a></li>
          <li class="nav-item"><a href="category.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">movie</i><span>Category</span></a></li>
          <li class="nav-item"><a href="profile.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">person</i><span>Profile</span></a></li>
        </ul>
      </aside>
    
      <!-- Main Content -->
      <main class="main-content"> 
        <div id="hero-slider-container"></div>
        <div id="movies-container">
          <div class="loading">Loading content...</div>
        </div>
      </main>
    
      <script type="module">
        import { initializeRemoteControl } from './js/utils/uniRemote.js';
        import { apiClient } from './js/service/apiClient.js';
        import { protectPage } from './js/service/authGuard.js';
        import { toast } from './js/utils/toastify.js';
        import useAgeRestriction from './js/utils/useAgeRestriction.js';
    
    
        let heroTrack, heroSlides, heroDots, currentHeroIndex = 1; // Start at 1 (the first REAL slide)
        let isTransitioning = false;
        const ageRestricted = useAgeRestriction.value;
    
        document.addEventListener('DOMContentLoaded', async () => {
          document.querySelectorAll('.nav-link').forEach(link => {
            if (link.href === window.location.href) link.classList.add('active');
          });
          try {
            await protectPage();
            await loadContent();
            setupNavigation();
          } catch (error) {
            showError('Authentication required. Redirecting...');
            setTimeout(() => window.location.href = './login.html', 2000);
          }
        });
    
        async function loadContent() {
          // ... (This function is unchanged) ...
          const moviesContainer = document.getElementById('movies-container');
          try {
            moviesContainer.innerHTML = '<div class="loading">Loading content...</div>';
            const response = await apiClient.get(`/movies?age_restriction=${ageRestricted}`);
            if (!response || Object.keys(response).length === 0) {
              moviesContainer.innerHTML = '<div class="loading">No content available</div>';
              return;
            }
            moviesContainer.innerHTML = '';
            let regularCatIndex = 0;
            Object.entries(response).forEach(([category, items]) => {
              if (!items || items.length === 0) return;
              if (category === 'Latest Update') {
                createHeroSlider(items);
              } else {
                const section = document.createElement('div');
                section.className = 'category-section';
                section.innerHTML = `<h2 class="category-title">${category}</h2><div class="movies-scroller"><div class="movies-row" id="category-${regularCatIndex}"></div></div>`;
                const row = section.querySelector('.movies-row');
                items.forEach(item => row.appendChild(createMediaCard(item)));
                moviesContainer.appendChild(section);
                regularCatIndex++;
              }
            });
          } catch (error) {
            showError('Failed to load content. Please try again.');
          }
        }
        
        function createHeroSlider(items) {
          const sliderContainer = document.getElementById('hero-slider-container');
          if (!sliderContainer || items.length === 0) return;
    
          co
    Found 2026-01-22 by HttpPlugin
    Create report
  • Open service 172.67.72.133:8443 · web.zostream.in

    2026-01-22 08:04

    HTTP/1.1 522 <none>
    Date: Thu, 22 Jan 2026 08:04:22 GMT
    Content-Type: text/plain; charset=UTF-8
    Content-Length: 15
    Connection: close
    Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Expires: Thu, 01 Jan 1970 00:00:01 GMT
    Referrer-Policy: same-origin
    Server-Timing: cfEdge;dur=19371,cfOrigin;dur=0
    X-Frame-Options: SAMEORIGIN
    Server: cloudflare
    CF-RAY: 9c1d89d1ed159e08-EWR
    alt-svc: h3=":8443"; ma=86400
    
    
    error code: 522
    Found 2026-01-22 by HttpPlugin
    Create report
  • Open service 104.26.1.178:80 · web.zostream.in

    2026-01-22 08:04

    HTTP/1.1 301 Moved Permanently
    Date: Thu, 22 Jan 2026 08:04:02 GMT
    Content-Length: 0
    Connection: close
    Location: https://web.zostream.in/
    Speculation-Rules: "/cdn-cgi/speculation"
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=w4VI0OohdvbuxDiOGz2cuAT9ZXP3lN5oMnSBjp%2BUeL7rYTn3xjOqO0Phv1zm%2FvN1aiv0BFv00CQL6VuueDJqSDu8WJc5Ocaz4CmrRTlf"}]}
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    Server-Timing: cfEdge;dur=12,cfOrigin;dur=0
    Server: cloudflare
    CF-RAY: 9c1d89cc7b81d21e-FRA
    alt-svc: h3=":443"; ma=86400
    
    Found 2026-01-22 by HttpPlugin
    Create report
  • Open service 172.67.72.133:80 · web.zostream.in

    2026-01-22 08:04

    HTTP/1.1 301 Moved Permanently
    Date: Thu, 22 Jan 2026 08:04:02 GMT
    Content-Length: 0
    Connection: close
    Location: https://web.zostream.in/
    Speculation-Rules: "/cdn-cgi/speculation"
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=iwHQsUs6lqZxi%2FxQVcKICe6Th5ZD3AZ%2BL8xId7uHkAg%2FeaWjAsPzzCLmRy%2BkGJNN%2FxU3b18ja2CdQPrlSRqq2lFS%2B7aXC3pY3Q9U%2BfY5"}]}
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    Server-Timing: cfEdge;dur=8,cfOrigin;dur=0
    Server: cloudflare
    CF-RAY: 9c1d89cb7e3bdacf-LHR
    alt-svc: h3=":443"; ma=86400
    
    Found 2026-01-22 by HttpPlugin
    Create report
  • Open service 104.26.0.178:80 · web.zostream.in

    2026-01-22 08:04

    HTTP/1.1 301 Moved Permanently
    Date: Thu, 22 Jan 2026 08:04:02 GMT
    Content-Length: 0
    Connection: close
    Location: https://web.zostream.in/
    Speculation-Rules: "/cdn-cgi/speculation"
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=4IJL8Lz16VpelZB6Tnn%2BiXftmISFnUEzkiXKq5MwRfZtva1s0dcAuySvhtRZHAorZ3X7DJrCa87B17SNlFaxYoI5qbmS1TPYtiP46wFs"}]}
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    Server-Timing: cfEdge;dur=10,cfOrigin;dur=0
    Server: cloudflare
    CF-RAY: 9c1d89cb8f027796-LHR
    alt-svc: h3=":443"; ma=86400
    
    Found 2026-01-22 by HttpPlugin
    Create report
  • Open service 2606:4700:20::681a:1b2:80 · web.zostream.in

    2026-01-22 08:04

    HTTP/1.1 301 Moved Permanently
    Date: Thu, 22 Jan 2026 08:04:02 GMT
    Content-Length: 0
    Connection: close
    Location: https://web.zostream.in/
    Speculation-Rules: "/cdn-cgi/speculation"
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=uyrBKc%2FcJ5iohw3nPxA5kRMODwRDn4x9%2FSzh61NORry%2B7M1vbFRPsx0%2Bb0m%2BdZ2TYZWqAufN5uRDWshxVM1wSmWd0KLLXO6fJemjZeRHAAG%2FPNQuHIIBLeXf"}]}
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    Server-Timing: cfEdge;dur=3,cfOrigin;dur=0
    Server: cloudflare
    CF-RAY: 9c1d89cb89dcd87f-FRA
    alt-svc: h3=":443"; ma=86400
    
    Found 2026-01-22 by HttpPlugin
    Create report
  • Open service 2606:4700:20::681a:b2:443 · web.zostream.in

    2026-01-22 08:04

    HTTP/1.1 200 OK
    Date: Thu, 22 Jan 2026 08:04:02 GMT
    Content-Type: text/html
    Transfer-Encoding: chunked
    Connection: close
    Server: cloudflare
    last-modified: Wed, 08 Oct 2025 10:19:21 GMT
    Server-Timing: cfCacheStatus;desc="DYNAMIC"
    Server-Timing: cfEdge;dur=13,cfOrigin;dur=48
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=bPjh%2B3dot4N9lmEWaJVOY4FQ9%2FoVR4Xrafz3fD0lpLJQ3GMt6JAY%2BnXz6R%2FxhIIcgleh5tqrKMFRYqcv9x7tjsmOr9E%2FNdza6uUF58x8uEirLkEAlFxuo56v"}]}
    cf-cache-status: DYNAMIC
    vary: accept-encoding
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    Speculation-Rules: "/cdn-cgi/speculation"
    CF-RAY: 9c1d89cbcdd177b4-LHR
    alt-svc: h3=":443"; ma=86400
    
    Page title: ZoStreamTV - Home
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>ZoStreamTV - Home</title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <link rel="stylesheet" href="css/pages/home.css">
      <link rel="stylesheet" href="css/pages/nav.css">
      <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    </head>
    <body>
      <!-- Sidebar Navigation (unchanged) -->
      <aside class="sidebar">
        <div class="logo">
          <img class="logo_img" src="logo.jpg" alt="ZoStreamTV Logo" />
          <h2>ZoStreamTV</h2>
        </div>
        <ul class="nav-menu">
          <li class="nav-item"><a href="home.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">home</i><span>Home</span></a></li>
          <li class="nav-item"><a href="search.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">search</i><span>Search</span></a></li>
          <li class="nav-item"><a href="category.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">movie</i><span>Category</span></a></li>
          <li class="nav-item"><a href="profile.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">person</i><span>Profile</span></a></li>
        </ul>
      </aside>
    
      <!-- Main Content -->
      <main class="main-content"> 
        <div id="hero-slider-container"></div>
        <div id="movies-container">
          <div class="loading">Loading content...</div>
        </div>
      </main>
    
      <script type="module">
        import { initializeRemoteControl } from './js/utils/uniRemote.js';
        import { apiClient } from './js/service/apiClient.js';
        import { protectPage } from './js/service/authGuard.js';
        import { toast } from './js/utils/toastify.js';
        import useAgeRestriction from './js/utils/useAgeRestriction.js';
    
    
        let heroTrack, heroSlides, heroDots, currentHeroIndex = 1; // Start at 1 (the first REAL slide)
        let isTransitioning = false;
        const ageRestricted = useAgeRestriction.value;
    
        document.addEventListener('DOMContentLoaded', async () => {
          document.querySelectorAll('.nav-link').forEach(link => {
            if (link.href === window.location.href) link.classList.add('active');
          });
          try {
            await protectPage();
            await loadContent();
            setupNavigation();
          } catch (error) {
            showError('Authentication required. Redirecting...');
            setTimeout(() => window.location.href = './login.html', 2000);
          }
        });
    
        async function loadContent() {
          // ... (This function is unchanged) ...
          const moviesContainer = document.getElementById('movies-container');
          try {
            moviesContainer.innerHTML = '<div class="loading">Loading content...</div>';
            const response = await apiClient.get(`/movies?age_restriction=${ageRestricted}`);
            if (!response || Object.keys(response).length === 0) {
              moviesContainer.innerHTML = '<div class="loading">No content available</div>';
              return;
            }
            moviesContainer.innerHTML = '';
            let regularCatIndex = 0;
            Object.entries(response).forEach(([category, items]) => {
              if (!items || items.length === 0) return;
              if (category === 'Latest Update') {
                createHeroSlider(items);
              } else {
                const section = document.createElement('div');
                section.className = 'category-section';
                section.innerHTML = `<h2 class="category-title">${category}</h2><div class="movies-scroller"><div class="movies-row" id="category-${regularCatIndex}"></div></div>`;
                const row = section.querySelector('.movies-row');
                items.forEach(item => row.appendChild(createMediaCard(item)));
                moviesContainer.appendChild(section);
                regularCatIndex++;
              }
            });
          } catch (error) {
            showError('Failed to load content. Please try again.');
          }
        }
        
        function createHeroSlider(items) {
          const sliderContainer = document.getElementById('hero-slider-container');
          if (!sliderContainer || items.length === 0) return;
    
          co
    Found 2026-01-22 by HttpPlugin
    Create report
  • Open service 104.26.1.178:443 · web.zostream.in

    2026-01-22 08:04

    HTTP/1.1 200 OK
    Date: Thu, 22 Jan 2026 08:04:02 GMT
    Content-Type: text/html
    Transfer-Encoding: chunked
    Connection: close
    Server: cloudflare
    last-modified: Wed, 08 Oct 2025 10:19:21 GMT
    Server-Timing: cfCacheStatus;desc="DYNAMIC"
    Server-Timing: cfEdge;dur=7,cfOrigin;dur=29
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=j6edYNO2tyaO6qk8859BbDjdBKHEfFDgr9a4xt3m7%2BvPEtH4Z08LMSSjLyYNjUBFY%2FF5ENk56WdpJS35fTNRaqcuQFBfGT8k60qxIXG1"}]}
    cf-cache-status: DYNAMIC
    vary: accept-encoding
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    Speculation-Rules: "/cdn-cgi/speculation"
    CF-RAY: 9c1d89cbefd4ca10-LHR
    alt-svc: h3=":443"; ma=86400
    
    Page title: ZoStreamTV - Home
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>ZoStreamTV - Home</title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <link rel="stylesheet" href="css/pages/home.css">
      <link rel="stylesheet" href="css/pages/nav.css">
      <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    </head>
    <body>
      <!-- Sidebar Navigation (unchanged) -->
      <aside class="sidebar">
        <div class="logo">
          <img class="logo_img" src="logo.jpg" alt="ZoStreamTV Logo" />
          <h2>ZoStreamTV</h2>
        </div>
        <ul class="nav-menu">
          <li class="nav-item"><a href="home.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">home</i><span>Home</span></a></li>
          <li class="nav-item"><a href="search.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">search</i><span>Search</span></a></li>
          <li class="nav-item"><a href="category.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">movie</i><span>Category</span></a></li>
          <li class="nav-item"><a href="profile.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">person</i><span>Profile</span></a></li>
        </ul>
      </aside>
    
      <!-- Main Content -->
      <main class="main-content"> 
        <div id="hero-slider-container"></div>
        <div id="movies-container">
          <div class="loading">Loading content...</div>
        </div>
      </main>
    
      <script type="module">
        import { initializeRemoteControl } from './js/utils/uniRemote.js';
        import { apiClient } from './js/service/apiClient.js';
        import { protectPage } from './js/service/authGuard.js';
        import { toast } from './js/utils/toastify.js';
        import useAgeRestriction from './js/utils/useAgeRestriction.js';
    
    
        let heroTrack, heroSlides, heroDots, currentHeroIndex = 1; // Start at 1 (the first REAL slide)
        let isTransitioning = false;
        const ageRestricted = useAgeRestriction.value;
    
        document.addEventListener('DOMContentLoaded', async () => {
          document.querySelectorAll('.nav-link').forEach(link => {
            if (link.href === window.location.href) link.classList.add('active');
          });
          try {
            await protectPage();
            await loadContent();
            setupNavigation();
          } catch (error) {
            showError('Authentication required. Redirecting...');
            setTimeout(() => window.location.href = './login.html', 2000);
          }
        });
    
        async function loadContent() {
          // ... (This function is unchanged) ...
          const moviesContainer = document.getElementById('movies-container');
          try {
            moviesContainer.innerHTML = '<div class="loading">Loading content...</div>';
            const response = await apiClient.get(`/movies?age_restriction=${ageRestricted}`);
            if (!response || Object.keys(response).length === 0) {
              moviesContainer.innerHTML = '<div class="loading">No content available</div>';
              return;
            }
            moviesContainer.innerHTML = '';
            let regularCatIndex = 0;
            Object.entries(response).forEach(([category, items]) => {
              if (!items || items.length === 0) return;
              if (category === 'Latest Update') {
                createHeroSlider(items);
              } else {
                const section = document.createElement('div');
                section.className = 'category-section';
                section.innerHTML = `<h2 class="category-title">${category}</h2><div class="movies-scroller"><div class="movies-row" id="category-${regularCatIndex}"></div></div>`;
                const row = section.querySelector('.movies-row');
                items.forEach(item => row.appendChild(createMediaCard(item)));
                moviesContainer.appendChild(section);
                regularCatIndex++;
              }
            });
          } catch (error) {
            showError('Failed to load content. Please try again.');
          }
        }
        
        function createHeroSlider(items) {
          const sliderContainer = document.getElementById('hero-slider-container');
          if (!sliderContainer || items.length === 0) return;
    
          co
    Found 2026-01-22 by HttpPlugin
    Create report
  • Open service 172.67.72.133:443 · web.zostream.in

    2026-01-22 08:04

    HTTP/1.1 200 OK
    Date: Thu, 22 Jan 2026 08:04:02 GMT
    Content-Type: text/html
    Transfer-Encoding: chunked
    Connection: close
    Server: cloudflare
    last-modified: Wed, 08 Oct 2025 10:19:21 GMT
    Server-Timing: cfCacheStatus;desc="DYNAMIC"
    Server-Timing: cfEdge;dur=6,cfOrigin;dur=52
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=mSC%2FHJDOexZWqV2NKQ4ofiCHnEYeb%2BbHYrVFRzJIdbmXSaz%2FFUEjKniE4TZcY8umZJlugsDqjY6mtXDdWh9FL29WZkRsRkVHrTudT6PZ"}]}
    cf-cache-status: DYNAMIC
    vary: accept-encoding
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    Speculation-Rules: "/cdn-cgi/speculation"
    CF-RAY: 9c1d89cbcb51d28a-FRA
    alt-svc: h3=":443"; ma=86400
    
    Page title: ZoStreamTV - Home
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>ZoStreamTV - Home</title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <link rel="stylesheet" href="css/pages/home.css">
      <link rel="stylesheet" href="css/pages/nav.css">
      <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    </head>
    <body>
      <!-- Sidebar Navigation (unchanged) -->
      <aside class="sidebar">
        <div class="logo">
          <img class="logo_img" src="logo.jpg" alt="ZoStreamTV Logo" />
          <h2>ZoStreamTV</h2>
        </div>
        <ul class="nav-menu">
          <li class="nav-item"><a href="home.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">home</i><span>Home</span></a></li>
          <li class="nav-item"><a href="search.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">search</i><span>Search</span></a></li>
          <li class="nav-item"><a href="category.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">movie</i><span>Category</span></a></li>
          <li class="nav-item"><a href="profile.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">person</i><span>Profile</span></a></li>
        </ul>
      </aside>
    
      <!-- Main Content -->
      <main class="main-content"> 
        <div id="hero-slider-container"></div>
        <div id="movies-container">
          <div class="loading">Loading content...</div>
        </div>
      </main>
    
      <script type="module">
        import { initializeRemoteControl } from './js/utils/uniRemote.js';
        import { apiClient } from './js/service/apiClient.js';
        import { protectPage } from './js/service/authGuard.js';
        import { toast } from './js/utils/toastify.js';
        import useAgeRestriction from './js/utils/useAgeRestriction.js';
    
    
        let heroTrack, heroSlides, heroDots, currentHeroIndex = 1; // Start at 1 (the first REAL slide)
        let isTransitioning = false;
        const ageRestricted = useAgeRestriction.value;
    
        document.addEventListener('DOMContentLoaded', async () => {
          document.querySelectorAll('.nav-link').forEach(link => {
            if (link.href === window.location.href) link.classList.add('active');
          });
          try {
            await protectPage();
            await loadContent();
            setupNavigation();
          } catch (error) {
            showError('Authentication required. Redirecting...');
            setTimeout(() => window.location.href = './login.html', 2000);
          }
        });
    
        async function loadContent() {
          // ... (This function is unchanged) ...
          const moviesContainer = document.getElementById('movies-container');
          try {
            moviesContainer.innerHTML = '<div class="loading">Loading content...</div>';
            const response = await apiClient.get(`/movies?age_restriction=${ageRestricted}`);
            if (!response || Object.keys(response).length === 0) {
              moviesContainer.innerHTML = '<div class="loading">No content available</div>';
              return;
            }
            moviesContainer.innerHTML = '';
            let regularCatIndex = 0;
            Object.entries(response).forEach(([category, items]) => {
              if (!items || items.length === 0) return;
              if (category === 'Latest Update') {
                createHeroSlider(items);
              } else {
                const section = document.createElement('div');
                section.className = 'category-section';
                section.innerHTML = `<h2 class="category-title">${category}</h2><div class="movies-scroller"><div class="movies-row" id="category-${regularCatIndex}"></div></div>`;
                const row = section.querySelector('.movies-row');
                items.forEach(item => row.appendChild(createMediaCard(item)));
                moviesContainer.appendChild(section);
                regularCatIndex++;
              }
            });
          } catch (error) {
            showError('Failed to load content. Please try again.');
          }
        }
        
        function createHeroSlider(items) {
          const sliderContainer = document.getElementById('hero-slider-container');
          if (!sliderContainer || items.length === 0) return;
    
          co
    Found 2026-01-22 by HttpPlugin
    Create report
  • Open service 104.26.0.178:443 · web.zostream.in

    2026-01-22 08:04

    HTTP/1.1 200 OK
    Date: Thu, 22 Jan 2026 08:04:02 GMT
    Content-Type: text/html
    Transfer-Encoding: chunked
    Connection: close
    Server: cloudflare
    last-modified: Wed, 08 Oct 2025 10:19:21 GMT
    Server-Timing: cfCacheStatus;desc="DYNAMIC"
    Server-Timing: cfEdge;dur=16,cfOrigin;dur=74
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=KW5uqFMgxtJAfnNFi6VTzWy7JRqiC7Q0WSkvgYPzkuFMEJ7Sy7p5e1PuerPC8WlTf19qCpMLY6Jt8W82KilY34QkkC7o6toOp%2Fwr8HpL"}]}
    cf-cache-status: DYNAMIC
    vary: accept-encoding
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    Speculation-Rules: "/cdn-cgi/speculation"
    CF-RAY: 9c1d89cbfd1f914a-FRA
    alt-svc: h3=":443"; ma=86400
    
    Page title: ZoStreamTV - Home
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>ZoStreamTV - Home</title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <link rel="stylesheet" href="css/pages/home.css">
      <link rel="stylesheet" href="css/pages/nav.css">
      <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    </head>
    <body>
      <!-- Sidebar Navigation (unchanged) -->
      <aside class="sidebar">
        <div class="logo">
          <img class="logo_img" src="logo.jpg" alt="ZoStreamTV Logo" />
          <h2>ZoStreamTV</h2>
        </div>
        <ul class="nav-menu">
          <li class="nav-item"><a href="home.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">home</i><span>Home</span></a></li>
          <li class="nav-item"><a href="search.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">search</i><span>Search</span></a></li>
          <li class="nav-item"><a href="category.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">movie</i><span>Category</span></a></li>
          <li class="nav-item"><a href="profile.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">person</i><span>Profile</span></a></li>
        </ul>
      </aside>
    
      <!-- Main Content -->
      <main class="main-content"> 
        <div id="hero-slider-container"></div>
        <div id="movies-container">
          <div class="loading">Loading content...</div>
        </div>
      </main>
    
      <script type="module">
        import { initializeRemoteControl } from './js/utils/uniRemote.js';
        import { apiClient } from './js/service/apiClient.js';
        import { protectPage } from './js/service/authGuard.js';
        import { toast } from './js/utils/toastify.js';
        import useAgeRestriction from './js/utils/useAgeRestriction.js';
    
    
        let heroTrack, heroSlides, heroDots, currentHeroIndex = 1; // Start at 1 (the first REAL slide)
        let isTransitioning = false;
        const ageRestricted = useAgeRestriction.value;
    
        document.addEventListener('DOMContentLoaded', async () => {
          document.querySelectorAll('.nav-link').forEach(link => {
            if (link.href === window.location.href) link.classList.add('active');
          });
          try {
            await protectPage();
            await loadContent();
            setupNavigation();
          } catch (error) {
            showError('Authentication required. Redirecting...');
            setTimeout(() => window.location.href = './login.html', 2000);
          }
        });
    
        async function loadContent() {
          // ... (This function is unchanged) ...
          const moviesContainer = document.getElementById('movies-container');
          try {
            moviesContainer.innerHTML = '<div class="loading">Loading content...</div>';
            const response = await apiClient.get(`/movies?age_restriction=${ageRestricted}`);
            if (!response || Object.keys(response).length === 0) {
              moviesContainer.innerHTML = '<div class="loading">No content available</div>';
              return;
            }
            moviesContainer.innerHTML = '';
            let regularCatIndex = 0;
            Object.entries(response).forEach(([category, items]) => {
              if (!items || items.length === 0) return;
              if (category === 'Latest Update') {
                createHeroSlider(items);
              } else {
                const section = document.createElement('div');
                section.className = 'category-section';
                section.innerHTML = `<h2 class="category-title">${category}</h2><div class="movies-scroller"><div class="movies-row" id="category-${regularCatIndex}"></div></div>`;
                const row = section.querySelector('.movies-row');
                items.forEach(item => row.appendChild(createMediaCard(item)));
                moviesContainer.appendChild(section);
                regularCatIndex++;
              }
            });
          } catch (error) {
            showError('Failed to load content. Please try again.');
          }
        }
        
        function createHeroSlider(items) {
          const sliderContainer = document.getElementById('hero-slider-container');
          if (!sliderContainer || items.length === 0) return;
    
          co
    Found 2026-01-22 by HttpPlugin
    Create report
  • Open service 104.26.1.178:443 · web.zostream.in

    2026-01-09 23:39

    HTTP/1.1 200 OK
    Date: Fri, 09 Jan 2026 23:39:53 GMT
    Content-Type: text/html
    Transfer-Encoding: chunked
    Connection: close
    Server: cloudflare
    last-modified: Wed, 08 Oct 2025 10:19:21 GMT
    Server-Timing: cfCacheStatus;desc="DYNAMIC"
    Server-Timing: cfEdge;dur=7,cfOrigin;dur=14
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=jf2t2f6%2Ft%2Bi2OEhUJzFKltTj6M%2FOjjKFtTIVoAkLN2yrwJp7Cu6Vm%2FsvbNX%2B%2F1KiPtnZbVTlzLUAixbsnvQd4OJIG%2FnptFTnwXCmT7RE"}]}
    cf-cache-status: DYNAMIC
    vary: accept-encoding
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    Speculation-Rules: "/cdn-cgi/speculation"
    CF-RAY: 9bb7c6ce4e40aa76-AMS
    alt-svc: h3=":443"; ma=86400
    
    Page title: ZoStreamTV - Home
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>ZoStreamTV - Home</title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <link rel="stylesheet" href="css/pages/home.css">
      <link rel="stylesheet" href="css/pages/nav.css">
      <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    </head>
    <body>
      <!-- Sidebar Navigation (unchanged) -->
      <aside class="sidebar">
        <div class="logo">
          <img class="logo_img" src="logo.jpg" alt="ZoStreamTV Logo" />
          <h2>ZoStreamTV</h2>
        </div>
        <ul class="nav-menu">
          <li class="nav-item"><a href="home.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">home</i><span>Home</span></a></li>
          <li class="nav-item"><a href="search.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">search</i><span>Search</span></a></li>
          <li class="nav-item"><a href="category.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">movie</i><span>Category</span></a></li>
          <li class="nav-item"><a href="profile.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">person</i><span>Profile</span></a></li>
        </ul>
      </aside>
    
      <!-- Main Content -->
      <main class="main-content"> 
        <div id="hero-slider-container"></div>
        <div id="movies-container">
          <div class="loading">Loading content...</div>
        </div>
      </main>
    
      <script type="module">
        import { initializeRemoteControl } from './js/utils/uniRemote.js';
        import { apiClient } from './js/service/apiClient.js';
        import { protectPage } from './js/service/authGuard.js';
        import { toast } from './js/utils/toastify.js';
        import useAgeRestriction from './js/utils/useAgeRestriction.js';
    
    
        let heroTrack, heroSlides, heroDots, currentHeroIndex = 1; // Start at 1 (the first REAL slide)
        let isTransitioning = false;
        const ageRestricted = useAgeRestriction.value;
    
        document.addEventListener('DOMContentLoaded', async () => {
          document.querySelectorAll('.nav-link').forEach(link => {
            if (link.href === window.location.href) link.classList.add('active');
          });
          try {
            await protectPage();
            await loadContent();
            setupNavigation();
          } catch (error) {
            showError('Authentication required. Redirecting...');
            setTimeout(() => window.location.href = './login.html', 2000);
          }
        });
    
        async function loadContent() {
          // ... (This function is unchanged) ...
          const moviesContainer = document.getElementById('movies-container');
          try {
            moviesContainer.innerHTML = '<div class="loading">Loading content...</div>';
            const response = await apiClient.get(`/movies?age_restriction=${ageRestricted}`);
            if (!response || Object.keys(response).length === 0) {
              moviesContainer.innerHTML = '<div class="loading">No content available</div>';
              return;
            }
            moviesContainer.innerHTML = '';
            let regularCatIndex = 0;
            Object.entries(response).forEach(([category, items]) => {
              if (!items || items.length === 0) return;
              if (category === 'Latest Update') {
                createHeroSlider(items);
              } else {
                const section = document.createElement('div');
                section.className = 'category-section';
                section.innerHTML = `<h2 class="category-title">${category}</h2><div class="movies-scroller"><div class="movies-row" id="category-${regularCatIndex}"></div></div>`;
                const row = section.querySelector('.movies-row');
                items.forEach(item => row.appendChild(createMediaCard(item)));
                moviesContainer.appendChild(section);
                regularCatIndex++;
              }
            });
          } catch (error) {
            showError('Failed to load content. Please try again.');
          }
        }
        
        function createHeroSlider(items) {
          const sliderContainer = document.getElementById('hero-slider-container');
          if (!sliderContainer || items.length === 0) return;
    
          co
    Found 2026-01-09 by HttpPlugin
    Create report
  • Open service 104.26.1.178:443 · web.zostream.in

    2026-01-02 21:52

    HTTP/1.1 200 OK
    Date: Fri, 02 Jan 2026 21:52:36 GMT
    Content-Type: text/html
    Transfer-Encoding: chunked
    Connection: close
    Server: cloudflare
    last-modified: Wed, 08 Oct 2025 10:19:21 GMT
    Server-Timing: cfCacheStatus;desc="DYNAMIC"
    Server-Timing: cfEdge;dur=13,cfOrigin;dur=14
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Ar5Wry0BdDd1q36wMuF4njOLxbIo3YIpYKD%2B8wsYs%2BVGhJriF%2FsgThFBu8mDLsuNCw3ryjHk58nNY9Ns03dtpUvG6uB22nAwygiUQJxX"}]}
    cf-cache-status: DYNAMIC
    vary: accept-encoding
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    Speculation-Rules: "/cdn-cgi/speculation"
    CF-RAY: 9b7d7c0528bc0bad-AMS
    alt-svc: h3=":443"; ma=86400
    
    Page title: ZoStreamTV - Home
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>ZoStreamTV - Home</title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <link rel="stylesheet" href="css/pages/home.css">
      <link rel="stylesheet" href="css/pages/nav.css">
      <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    </head>
    <body>
      <!-- Sidebar Navigation (unchanged) -->
      <aside class="sidebar">
        <div class="logo">
          <img class="logo_img" src="logo.jpg" alt="ZoStreamTV Logo" />
          <h2>ZoStreamTV</h2>
        </div>
        <ul class="nav-menu">
          <li class="nav-item"><a href="home.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">home</i><span>Home</span></a></li>
          <li class="nav-item"><a href="search.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">search</i><span>Search</span></a></li>
          <li class="nav-item"><a href="category.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">movie</i><span>Category</span></a></li>
          <li class="nav-item"><a href="profile.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">person</i><span>Profile</span></a></li>
        </ul>
      </aside>
    
      <!-- Main Content -->
      <main class="main-content"> 
        <div id="hero-slider-container"></div>
        <div id="movies-container">
          <div class="loading">Loading content...</div>
        </div>
      </main>
    
      <script type="module">
        import { initializeRemoteControl } from './js/utils/uniRemote.js';
        import { apiClient } from './js/service/apiClient.js';
        import { protectPage } from './js/service/authGuard.js';
        import { toast } from './js/utils/toastify.js';
        import useAgeRestriction from './js/utils/useAgeRestriction.js';
    
    
        let heroTrack, heroSlides, heroDots, currentHeroIndex = 1; // Start at 1 (the first REAL slide)
        let isTransitioning = false;
        const ageRestricted = useAgeRestriction.value;
    
        document.addEventListener('DOMContentLoaded', async () => {
          document.querySelectorAll('.nav-link').forEach(link => {
            if (link.href === window.location.href) link.classList.add('active');
          });
          try {
            await protectPage();
            await loadContent();
            setupNavigation();
          } catch (error) {
            showError('Authentication required. Redirecting...');
            setTimeout(() => window.location.href = './login.html', 2000);
          }
        });
    
        async function loadContent() {
          // ... (This function is unchanged) ...
          const moviesContainer = document.getElementById('movies-container');
          try {
            moviesContainer.innerHTML = '<div class="loading">Loading content...</div>';
            const response = await apiClient.get(`/movies?age_restriction=${ageRestricted}`);
            if (!response || Object.keys(response).length === 0) {
              moviesContainer.innerHTML = '<div class="loading">No content available</div>';
              return;
            }
            moviesContainer.innerHTML = '';
            let regularCatIndex = 0;
            Object.entries(response).forEach(([category, items]) => {
              if (!items || items.length === 0) return;
              if (category === 'Latest Update') {
                createHeroSlider(items);
              } else {
                const section = document.createElement('div');
                section.className = 'category-section';
                section.innerHTML = `<h2 class="category-title">${category}</h2><div class="movies-scroller"><div class="movies-row" id="category-${regularCatIndex}"></div></div>`;
                const row = section.querySelector('.movies-row');
                items.forEach(item => row.appendChild(createMediaCard(item)));
                moviesContainer.appendChild(section);
                regularCatIndex++;
              }
            });
          } catch (error) {
            showError('Failed to load content. Please try again.');
          }
        }
        
        function createHeroSlider(items) {
          const sliderContainer = document.getElementById('hero-slider-container');
          if (!sliderContainer || items.length === 0) return;
    
          co
    Found 2026-01-02 by HttpPlugin
    Create report
  • Open service 104.26.1.178:443 · web.zostream.in

    2025-12-22 20:31

    HTTP/1.1 200 OK
    Date: Mon, 22 Dec 2025 20:31:43 GMT
    Content-Type: text/html
    Transfer-Encoding: chunked
    Connection: close
    Server: cloudflare
    last-modified: Wed, 08 Oct 2025 10:19:21 GMT
    Server-Timing: cfCacheStatus;desc="DYNAMIC"
    Server-Timing: cfEdge;dur=13,cfOrigin;dur=333
    Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=6ncmzUqbFuJSHcUJico8adJl%2FmTb6fGTbdafHvxBAGU6TfilfOwZzSsfOVP4xbt9g4bGHqvBYTr804j78C6KXL68yl9Ngcy7%2FWFwqHZL"}]}
    cf-cache-status: DYNAMIC
    vary: accept-encoding
    Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
    Speculation-Rules: "/cdn-cgi/speculation"
    CF-RAY: 9b22626569de39ea-YYZ
    alt-svc: h3=":443"; ma=86400
    
    Page title: ZoStreamTV - Home
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>ZoStreamTV - Home</title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <link rel="stylesheet" href="css/pages/home.css">
      <link rel="stylesheet" href="css/pages/nav.css">
      <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    </head>
    <body>
      <!-- Sidebar Navigation (unchanged) -->
      <aside class="sidebar">
        <div class="logo">
          <img class="logo_img" src="logo.jpg" alt="ZoStreamTV Logo" />
          <h2>ZoStreamTV</h2>
        </div>
        <ul class="nav-menu">
          <li class="nav-item"><a href="home.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">home</i><span>Home</span></a></li>
          <li class="nav-item"><a href="search.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">search</i><span>Search</span></a></li>
          <li class="nav-item"><a href="category.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">movie</i><span>Category</span></a></li>
          <li class="nav-item"><a href="profile.html" class="nav-link focusable" tabindex="-1"><i class="material-icons">person</i><span>Profile</span></a></li>
        </ul>
      </aside>
    
      <!-- Main Content -->
      <main class="main-content"> 
        <div id="hero-slider-container"></div>
        <div id="movies-container">
          <div class="loading">Loading content...</div>
        </div>
      </main>
    
      <script type="module">
        import { initializeRemoteControl } from './js/utils/uniRemote.js';
        import { apiClient } from './js/service/apiClient.js';
        import { protectPage } from './js/service/authGuard.js';
        import { toast } from './js/utils/toastify.js';
        import useAgeRestriction from './js/utils/useAgeRestriction.js';
    
    
        let heroTrack, heroSlides, heroDots, currentHeroIndex = 1; // Start at 1 (the first REAL slide)
        let isTransitioning = false;
        const ageRestricted = useAgeRestriction.value;
    
        document.addEventListener('DOMContentLoaded', async () => {
          document.querySelectorAll('.nav-link').forEach(link => {
            if (link.href === window.location.href) link.classList.add('active');
          });
          try {
            await protectPage();
            await loadContent();
            setupNavigation();
          } catch (error) {
            showError('Authentication required. Redirecting...');
            setTimeout(() => window.location.href = './login.html', 2000);
          }
        });
    
        async function loadContent() {
          // ... (This function is unchanged) ...
          const moviesContainer = document.getElementById('movies-container');
          try {
            moviesContainer.innerHTML = '<div class="loading">Loading content...</div>';
            const response = await apiClient.get(`/movies?age_restriction=${ageRestricted}`);
            if (!response || Object.keys(response).length === 0) {
              moviesContainer.innerHTML = '<div class="loading">No content available</div>';
              return;
            }
            moviesContainer.innerHTML = '';
            let regularCatIndex = 0;
            Object.entries(response).forEach(([category, items]) => {
              if (!items || items.length === 0) return;
              if (category === 'Latest Update') {
                createHeroSlider(items);
              } else {
                const section = document.createElement('div');
                section.className = 'category-section';
                section.innerHTML = `<h2 class="category-title">${category}</h2><div class="movies-scroller"><div class="movies-row" id="category-${regularCatIndex}"></div></div>`;
                const row = section.querySelector('.movies-row');
                items.forEach(item => row.appendChild(createMediaCard(item)));
                moviesContainer.appendChild(section);
                regularCatIndex++;
              }
            });
          } catch (error) {
            showError('Failed to load content. Please try again.');
          }
        }
        
        function createHeroSlider(items) {
          const sliderContainer = document.getElementById('hero-slider-container');
          if (!sliderContainer || items.length === 0) return;
    
          co
    Found 2025-12-22 by HttpPlugin
    Create report
zostream.in*.zostream.in
CN:
zostream.in
Key:
ECDSA-256
Issuer:
WE1
Not before:
2026-01-18 08:52
Not after:
2026-02-17 09:52
zostream.in*.zostream.in
CN:
zostream.in
Key:
ECDSA-256
Issuer:
WE1
Not before:
2025-12-27 08:39
Not after:
2026-01-26 09:39
zostream.in*.zostream.in
CN:
zostream.in
Key:
ECDSA-256
Issuer:
WE1
Not before:
2025-12-05 08:22
Not after:
2026-01-04 09:22