{"id":640,"date":"2026-03-03T00:00:38","date_gmt":"2026-03-03T00:00:38","guid":{"rendered":"https:\/\/viewanonymous.com\/?page_id=640"},"modified":"2026-03-31T08:58:08","modified_gmt":"2026-03-31T08:58:08","slug":"url","status":"publish","type":"page","link":"https:\/\/viewanonymous.com\/tools\/youtube\/url\/","title":{"rendered":"YouTube URL Viewer \u2013 Watch &amp; Analyze Videos Instantly"},"content":{"rendered":"\n[et_pb_section fb_built=&#8221;1&#8243; fullwidth=&#8221;on&#8221; theme_builder_area=&#8221;post_content&#8221; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221;][et_pb_fullwidth_code _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; theme_builder_area=&#8221;post_content&#8221; hover_enabled=&#8221;0&#8243; sticky_enabled=&#8221;0&#8243;]    <link rel=\"canonical\" href=\"\">\r\n  \r\n     \r\n      \r\n      <!-- Google Fonts - Premium Typography -->\r\n      <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n      <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\">\r\n      <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Space+Grotesk:wght@300;400;500;600;700&family=Manrope:wght@300;400;500;600;700;800&display=swap\" rel=\"stylesheet\">\r\n      \r\n      <!-- Bootstrap CSS -->\r\n      <link href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.0\/dist\/css\/bootstrap.min.css\" rel=\"stylesheet\">\r\n      <!-- Boxicons -->\r\n      <link href=\"https:\/\/unpkg.com\/boxicons@2.1.4\/css\/boxicons.min.css\" rel=\"stylesheet\">\r\n      <!-- AOS Animation -->\r\n      <link href=\"https:\/\/unpkg.com\/aos@2.3.1\/dist\/aos.css\" rel=\"stylesheet\">\r\n      <!-- Font Awesome CSS -->\r\n      <link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/5.15.3\/css\/all.min.css\" rel=\"stylesheet\">\r\n  \r\n  \r\n  <style id=\"vvvebjs-styles\">\r\n      html{\r\n          overflow-x: hidden;\r\n      }\r\n      :root {\r\n              --va-purple: #8a6cfc;\r\n              --va-purple-hover: #7355e8;\r\n              --va-black: #000000;\r\n              --va-white: #ffffff;\r\n              --ytvv-primary-color: var(--va-purple);\r\n              --ytvv-secondary-color: #1a1a1a;\r\n              --ytvv-dark-color: var(--va-black);\r\n              --ytvv-light-color: var(--va-white);\r\n              --ytvv-gray-color: #f5f5f7;\r\n              --ytvv-primary-hover: var(--va-purple-hover);\r\n              --ytvv-secondary-hover: #333333;\r\n              --ytvv-section-padding: 100px 0;\r\n          }\r\n          \r\n\/*           body {\r\n              font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\r\n              scroll-behavior: smooth;\r\n              overflow-x: hidden;\r\n              background-color: var(--ytvv-light-color);\r\n              color: var(--ytvv-dark-color);\r\n          }\r\n      h1, h2, h3, h4, h5, h6 {\r\n          font-family: 'Space Grotesk', -apple-system, BlinkMacSystemFont, sans-serif;\r\n          font-weight: bold; \r\n      } *\/\r\n    \r\n      \/* YouTube-style Hero Section *\/\r\n      .ytvv-hero-section {\r\n              padding: var(--ytvv-section-padding);\r\n              text-align: center;\r\n              background-color: var(--ytvv-light-color);\r\n          }\r\n          \r\n          .ytvv-hero-content {\r\n              position: relative;\r\n              z-index: 1;\r\n          }\r\n          \r\n          .ytvv-hero-section h1 {\r\n              font-size: 3.5rem;\r\n              font-weight: 700;\r\n              margin-bottom: 1.5rem;\r\n              color: var(--ytvv-primary-color);\r\n          }\r\n          \r\n          .ytvv-hero-section p {\r\n              font-size: 1.25rem;\r\n              max-width: 700px;\r\n              margin: 0 auto 2rem;\r\n              opacity: 0.9;\r\n              font-weight: 300;\r\n              color: #333;\r\n          }\r\n          \r\n          \/* Work Process Section with YouTube Colors *\/\r\n          .ytvv-work-process-section {\r\n              padding: var(--ytvv-section-padding);\r\n              background: var(--ytvv-primary-color);\r\n              color: white;\r\n              position: relative;\r\n              overflow: hidden;\r\n          }\r\n          \r\n          .ytvv-work-process-section::before {\r\n              content: '';\r\n              position: absolute;\r\n              top: 0;\r\n              left: 0;\r\n              width: 100%;\r\n              height: 100%;\r\n              background: rgba(0,0,0,0.05);\r\n          }\r\n          \r\n          .ytvv-work-process-content {\r\n              position: relative;\r\n              z-index: 1;\r\n          }\r\n          \r\n          .ytvv-process-step {\r\n              text-align: center;\r\n              padding: 30px 20px;\r\n              position: relative;\r\n              z-index: 1;\r\n              background: rgba(255,255,255,0.1);\r\n              backdrop-filter: blur(10px);\r\n              border-radius: 16px;\r\n              margin: 15px;\r\n              border: 1px solid rgba(255,255,255,0.2);\r\n              transition: all 0.3s ease;\r\n          }\r\n          \r\n          .ytvv-process-step:hover {\r\n              transform: translateY(-10px);\r\n              background: rgba(255,255,255,0.15);\r\n              box-shadow: 0 15px 30px rgba(0,0,0,0.2);\r\n          }\r\n          \r\n          .ytvv-step-number {\r\n              width: 60px;\r\n              height: 60px;\r\n              background: white;\r\n              color: var(--ytvv-primary-color);\r\n              border-radius: 50%;\r\n              display: flex;\r\n              align-items: center;\r\n              justify-content: center;\r\n              font-weight: 700;\r\n              margin: 0 auto 20px;\r\n              font-size: 1.5rem;\r\n              box-shadow: 0 5px 15px rgba(0,0,0,0.1);\r\n          }\r\n          \r\n          \/* Features Section *\/\r\n          .ytvv-features-section {\r\n              padding: var(--ytvv-section-padding);\r\n              background: white;\r\n          }\r\n          \r\n          .ytvv-feature-card {\r\n              padding: 40px 30px;\r\n              border-radius: 16px;\r\n              background: white;\r\n              box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);\r\n              margin-bottom: 30px;\r\n              transition: all 0.3s ease;\r\n              border: 1px solid rgba(0,0,0,0.05);\r\n              height: 100%;\r\n              position: relative;\r\n              overflow: hidden;\r\n          }\r\n          \r\n          .ytvv-feature-card::before {\r\n              content: '';\r\n              position: absolute;\r\n              top: 0;\r\n              left: 0;\r\n              width: 4px;\r\n              height: 100%;\r\n              background: var(--ytvv-primary-color);\r\n              transition: all 0.3s ease;\r\n          }\r\n          \r\n          .ytvv-feature-card:hover {\r\n              transform: translateY(-10px);\r\n              box-shadow: 0 15px 40px rgba(0,0,0,0.1);\r\n          }\r\n          \r\n          .ytvv-feature-card:hover::before {\r\n              width: 100%;\r\n              opacity: 0.1;\r\n          }\r\n          \r\n          .ytvv-feature-icon {\r\n              width: 70px;\r\n              height: 70px;\r\n              border-radius: 20px;\r\n              display: flex;\r\n              align-items: center;\r\n              justify-content: center;\r\n              margin-bottom: 25px;\r\n              background: var(--ytvv-primary-color);\r\n              color: white;\r\n              font-size: 1.8rem;\r\n              transition: all 0.3s ease;\r\n          }\r\n          \r\n          .ytvv-feature-card:hover .ytvv-feature-icon {\r\n              transform: rotate(15deg) scale(1.1);\r\n              background: var(--ytvv-primary-hover);\r\n          }\r\n          \r\n          \/* Why Choose Section *\/\r\n          .ytvv-why-choose-section {\r\n              padding: var(--ytvv-section-padding);\r\n              background: #f9f9f9;\r\n          }\r\n          \r\n          .ytvv-why-choose-image {\r\n              border-radius: 16px;\r\n              overflow: hidden;\r\n              box-shadow: 0 20px 40px rgba(0,0,0,0.1);\r\n              transform: perspective(1000px) rotateY(-5deg);\r\n              transition: all 0.5s ease;\r\n          }\r\n          \r\n          .ytvv-why-choose-image:hover {\r\n              transform: perspective(1000px) rotateY(0deg);\r\n          }\r\n          \r\n          .ytvv-benefit-item {\r\n              display: flex;\r\n              align-items: flex-start;\r\n              margin-bottom: 20px;\r\n              padding: 15px;\r\n              border-radius: 12px;\r\n              background: white;\r\n              box-shadow: 0 5px 15px rgba(0,0,0,0.03);\r\n              transition: all 0.3s ease;\r\n          }\r\n          \r\n          .ytvv-benefit-item:hover {\r\n              transform: translateX(10px);\r\n              box-shadow: 0 10px 25px rgba(0,0,0,0.1);\r\n          }\r\n          \r\n          .ytvv-benefit-icon {\r\n              width: 40px;\r\n              height: 40px;\r\n              border-radius: 12px;\r\n              display: flex;\r\n              align-items: center;\r\n              justify-content: center;\r\n              margin-right: 15px;\r\n              background: var(--ytvv-primary-color);\r\n              color: white;\r\n              font-size: 1.2rem;\r\n              flex-shrink: 0;\r\n          }\r\n          \r\n          \/* FAQ Section *\/\r\n          .ytvv-faq-section {\r\n              padding: var(--ytvv-section-padding);\r\n              background: white;\r\n          }\r\n          \r\n          .ytvv-accordion-item {\r\n              border: none;\r\n              border-radius: 12px !important;\r\n              overflow: hidden;\r\n              margin-bottom: 15px;\r\n              box-shadow: 0 5px 15px rgba(0,0,0,0.05);\r\n          }\r\n          \r\n          .ytvv-accordion-button {\r\n              font-weight: 600;\r\n              color: var(--ytvv-dark-color);\r\n              padding: 20px 25px;\r\n              background: white;\r\n              box-shadow: none;\r\n              border-radius: 12px 12px 0 0 !important;\r\n          }\r\n          \r\n          .ytvv-accordion-button:not(.collapsed) {\r\n              background: white;\r\n              color: var(--ytvv-primary-color);\r\n              box-shadow: none;\r\n          }\r\n          \r\n          .ytvv-accordion-button:focus {\r\n              box-shadow: none;\r\n              border-color: rgba(138, 108, 252, 0.35);\r\n          }\r\n          \r\n          .ytvv-accordion-button::after {\r\n              background-image: url(\"data:image\/svg+xml,%3csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 16 16' fill='%238a6cfc'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'\/%3e%3c\/svg%3e\");\r\n          }\r\n          \r\n          .ytvv-accordion-body {\r\n              padding: 25px;\r\n              color: #333;\r\n          }\r\n          \r\n          \/* Section Titles *\/\r\n          .ytvv-section-title {\r\n              font-weight: 700;\r\n              color: var(--ytvv-dark-color);\r\n              margin-bottom: 1.5rem;\r\n              position: relative;\r\n              display: inline-block;\r\n          }\r\n          \r\n          .ytvv-section-title::after {\r\n              content: '';\r\n              position: absolute;\r\n              bottom: -10px;\r\n              left: 0;\r\n              width: 60px;\r\n              height: 4px;\r\n              background: var(--ytvv-primary-color);\r\n              border-radius: 2px;\r\n          }\r\n          \r\n          .ytvv-light-title {\r\n              color: white;\r\n          }\r\n          \r\n          .ytvv-light-title::after {\r\n              background: white;\r\n          }\r\n          \r\n          .ytvv-section-subtitle {\r\n              color: #333;\r\n              max-width: 700px;\r\n              margin: 0 auto 3rem;\r\n              font-size: 1.1rem;\r\n          }\r\n          \r\n          .ytvv-light-subtitle {\r\n              color: rgba(255,255,255,0.8);\r\n          }\r\n          \r\n          \/* Responsive Design *\/\r\n          @media (max-width: 991px) {\r\n              :root {\r\n                  --ytvv-section-padding: 80px 0;\r\n              }\r\n              \r\n              .ytvv-hero-section h1 {\r\n                  font-size: 2.8rem;\r\n              }\r\n              \r\n              .ytvv-process-step::before {\r\n                  display: none;\r\n              }\r\n          }\r\n          \r\n          @media (max-width: 767px) {\r\n              :root {\r\n                  --ytvv-section-padding: 70px 0;\r\n              }\r\n              \r\n              .ytvv-hero-section {\r\n                  padding: 100px 0 60px;\r\n              }\r\n              \r\n              .ytvv-hero-section h1 {\r\n                  font-size: 2.2rem;\r\n              }\r\n              \r\n              .ytvv-hero-section p {\r\n                  font-size: 1rem;\r\n              }\r\n              \r\n              .ytvv-section-title {\r\n                  font-size: 1.8rem;\r\n              }\r\n          }\r\n          \r\n          \/* Animation *\/\r\n          @keyframes ytvv-float {\r\n              0% { transform: translateY(0px); }\r\n              50% { transform: translateY(-15px); }\r\n              100% { transform: translateY(0px); }\r\n          }\r\n          \r\n          .ytvv-floating-element {\r\n              animation: ytvv-float 6s ease-in-out infinite;\r\n          }\r\n          \r\n          \/* Custom Scrollbar *\/\r\n          ::-webkit-scrollbar {\r\n              width: 8px;\r\n          }\r\n          \r\n          ::-webkit-scrollbar-track {\r\n              background: #f1f1f1;\r\n          }\r\n          \r\n          ::-webkit-scrollbar-thumb {\r\n              background: var(--ytvv-primary-color);\r\n              border-radius: 10px;\r\n          }\r\n          \r\n          ::-webkit-scrollbar-thumb:hover {\r\n              background: var(--ytvv-primary-hover);\r\n          }\r\n        \r\n  \r\n  <\/style>\r\n  <!-- tools -->\r\n  <style>\r\n      @import url('https:\/\/fonts.googleapis.com\/css2?family=Outfit:wght@300;400;500;600;700;800;900&display=swap');\r\n  \r\n      * {\r\n          margin: 0;\r\n          padding: 0;\r\n          box-sizing: border-box;\r\n      }\r\n  \r\n      :root {\r\n          --primary-color: #8a6cfc;\r\n          --primary-light: #a78bfa;\r\n          --secondary-color: #7355e8;\r\n          --secondary-light: #b8a0fd;\r\n          --accent-color: #8a6cfc;\r\n          --accent-light: #c4b5fd;\r\n          --success-color: #8a6cfc;\r\n          --success-light: #a78bfa;\r\n          --warning-color: #7355e8;\r\n          --warning-light: #8a6cfc;\r\n          --danger-color: #DC2626;\r\n          --danger-light: #EF4444;\r\n          --bg-primary: #ffffff;\r\n          --bg-secondary: #fafafa;\r\n          --bg-tertiary: #f0f0f5;\r\n          --bg-card: #ffffff;\r\n          --glass-bg: rgba(138, 108, 252, 0.08);\r\n          --glass-border: rgba(138, 108, 252, 0.25);\r\n          --text-primary: #000000;\r\n          --text-secondary: #333333;\r\n          --text-muted: rgba(0, 0, 0, 0.5);\r\n          --text-accent: #8a6cfc;\r\n          --shadow-sm: 0 2px 8px rgba(138, 108, 252, 0.12);\r\n          --shadow-md: 0 4px 16px rgba(138, 108, 252, 0.14);\r\n          --shadow-lg: 0 8px 32px rgba(138, 108, 252, 0.16);\r\n          --shadow-xl: 0 16px 48px rgba(138, 108, 252, 0.12);\r\n          --border-radius: 16px;\r\n          --border-radius-lg: 24px;\r\n      }\r\n  \r\n      .custom-hero-tools-ytvv{\r\n          font-family: 'Outfit', sans-serif;\r\n          background: #ffffff;\r\n          padding: 80px 0;\r\n          line-height: 1.6;\r\n          color: var(--text-primary);\r\n          position: relative;\r\n          overflow-x: hidden;\r\n          margin-top: 0;\r\n          border-bottom: 1px solid rgba(138, 108, 252, 0.15);\r\n      }\r\n  \r\n      .custom-hero-tools-ytvv::before {\r\n          content: '';\r\n          position: fixed;\r\n          top: 0;\r\n          left: 0;\r\n          width: 100%;\r\n          height: 100%;\r\n          background:\r\n              radial-gradient(circle at 20% 20%, rgba(138, 108, 252, 0.08) 0%, transparent 50%),\r\n              radial-gradient(circle at 80% 80%, rgba(138, 108, 252, 0.06) 0%, transparent 50%),\r\n              radial-gradient(circle at 50% 50%, rgba(167, 139, 250, 0.05) 0%, transparent 50%);\r\n          pointer-events: none;\r\n          z-index: -1;\r\n      }\r\n  \r\n      .yvv-container {\r\n          max-width: 1400px;\r\n          margin: 0 auto;\r\n          padding: 20px;\r\n          position: relative;\r\n          z-index: 1;\r\n      }\r\n  \r\n      \/* Header Section *\/\r\n      .yvv-header {\r\n          text-align: center;\r\n          margin-bottom: 40px;\r\n          padding: 40px 0;\r\n          animation: fadeInDown 1s ease-out;\r\n      }\r\n  \r\n      .yvv-brand-logo {\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          gap: 25px;\r\n          margin-bottom: 25px;\r\n          flex-wrap: wrap;\r\n      }\r\n  \r\n    .yvv-brand-icon {\r\n      width: 80px;\r\n      height: 80px;\r\n      background: linear-gradient(135deg, #8a6cfc, #7355e8);\r\n      border-radius: var(--border-radius);\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      color: #ffffff;\r\n      font-size: 36px;\r\n      font-weight: 800;\r\n      box-shadow: var(--shadow-lg);\r\n      animation: float 4s ease-in-out infinite;\r\n      position: relative;\r\n  }\r\n  \r\n      .yvv-brand-icon::after {\r\n          content: '';\r\n          position: absolute;\r\n          inset: -2px;\r\n          background: linear-gradient(135deg, var(--primary-light), var(--accent-light));\r\n          border-radius: var(--border-radius);\r\n          z-index: -1;\r\n          opacity: 0.5;\r\n          animation: pulse 2s ease-in-out infinite;\r\n      }\r\n  \r\n  .yvv-brand-title {\r\n      font-size: clamp(2.25rem, 5vw, 3.5rem);\r\n      font-weight: 800;\r\n      color: #000000;\r\n      letter-spacing: -0.02em;\r\n      line-height: 1.15;\r\n      margin: 0;\r\n      -webkit-text-fill-color: unset;\r\n      background: none;\r\n      text-shadow: none;\r\n  }\r\n\r\n  .yvv-brand-title .va-cap {\r\n      color: #8a6cfc;\r\n      font-size: 1.12em;\r\n      font-weight: 900;\r\n  }\r\n  \r\n  .yvv-brand-subtitle {\r\n      color: #333333;\r\n      font-size: 20px;\r\n      font-weight: 500;\r\n      margin-bottom: 30px;\r\n      max-width: 700px;\r\n      margin-left: auto;\r\n      margin-right: auto;\r\n  }\r\n  \r\n      .yvv-feature-badges {\r\n          display: flex;\r\n          justify-content: center;\r\n          gap: 15px;\r\n          flex-wrap: wrap;\r\n      }\r\n  \r\n     .yvv-feature-badge {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      background: #fafafa;\r\n      backdrop-filter: blur(20px);\r\n      border: 1px solid var(--glass-border);\r\n      padding: 12px 24px;\r\n      border-radius: 50px;\r\n      color: #000000;\r\n      font-size: 14px;\r\n      font-weight: 600;\r\n      transition: all 0.3s ease;\r\n  }\r\n  \r\n      .yvv-feature-badge:hover {\r\n          transform: translateY(-3px);\r\n          box-shadow: var(--shadow-md);\r\n          background: rgba(138, 108, 252, 0.08);\r\n      }\r\n  \r\n      .yvv-badge-icon {\r\n          width: 20px;\r\n          height: 20px;\r\n          background: linear-gradient(135deg, #8a6cfc, #7355e8);\r\n          border-radius: 50%;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          font-size: 10px;\r\n          color: white;\r\n          font-weight: 700;\r\n      }\r\n  \r\n      \/* Search Section *\/\r\n  .yvv-search-section {\r\n      background: #ffffff;\r\n      border: 1px solid rgba(138, 108, 252, 0.25);\r\n      padding: 40px;\r\n      border-radius: var(--border-radius-lg);\r\n      box-shadow: var(--shadow-xl);\r\n      margin-bottom: 40px;\r\n      animation: fadeInUp 1s ease-out 0.2s both;\r\n      position: relative;\r\n      overflow: hidden;\r\n  }\r\n  \r\n      .yvv-search-section::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          height: 2px;\r\n          background: linear-gradient(90deg, var(--primary-color), var(--accent-color), var(--secondary-color));\r\n      }\r\n  \r\n      .yvv-search-form {\r\n          display: flex;\r\n          gap: 20px;\r\n          margin-bottom: 25px;\r\n          position: relative;\r\n      }\r\n  \r\n  .yvv-search-input {\r\n      flex: 1 !important;\r\n      padding: 20px 25px !important;\r\n      background: #ffffff !important;\r\n      border: 2px solid rgba(0, 0, 0, 0.12) !important;\r\n      border-radius: var(--border-radius) !important;\r\n      color: #000000 !important;\r\n      font-size: 16px !important;\r\n      font-weight: 500 !important;\r\n      transition: all 0.3s ease !important;\r\n      outline: none !important;\r\n      font-family: inherit !important;\r\n  }\r\n  \r\n      .yvv-search-input:focus {\r\n          border-color: #8a6cfc !important;\r\n          box-shadow: 0 0 0 4px rgba(138, 108, 252, 0.2) !important;\r\n          transform: translateY(-2px) !important;\r\n      }\r\n  \r\n      .yvv-search-input.error {\r\n          border-color: var(--danger-color) !important;\r\n          box-shadow: 0 0 0 4px rgba(220, 38, 38, 0.1) !important;\r\n      }\r\n  \r\n      .yvv-search-input::placeholder {\r\n          color: var(--text-muted) !important;\r\n          font-weight: 400 !important;\r\n      }\r\n  \r\n  .yvv-search-btn {\r\n      padding: 20px 40px;\r\n      background: linear-gradient(135deg, #8a6cfc, #7355e8);\r\n      color: white;\r\n      border: none;\r\n      border-radius: var(--border-radius);\r\n      font-size: 16px;\r\n      font-weight: 700;\r\n      cursor: pointer;\r\n      transition: all 0.3s ease;\r\n      min-width: 200px;\r\n      position: relative;\r\n      overflow: hidden;\r\n      box-shadow: var(--shadow-md);\r\n      font-family: inherit;\r\n  }\r\n  \r\n      .yvv-search-btn:hover:not(:disabled) {\r\n          transform: translateY(-3px);\r\n          box-shadow: var(--shadow-lg);\r\n          background: linear-gradient(135deg, var(--primary-light), var(--accent-color));\r\n      }\r\n  \r\n      .yvv-search-btn:disabled {\r\n          opacity: 0.6;\r\n          cursor: not-allowed;\r\n          transform: none;\r\n      }\r\n  \r\n      .yvv-loading-indicator {\r\n          display: none;\r\n          text-align: center;\r\n          padding: 30px;\r\n          color: var(--text-primary);\r\n      }\r\n  \r\n      .yvv-error-display {\r\n          background: rgba(220, 38, 38, 0.1);\r\n          border: 1px solid rgba(220, 38, 38, 0.3);\r\n          color: var(--danger-light);\r\n          padding: 20px 25px;\r\n          border-radius: var(--border-radius);\r\n          margin-top: 20px;\r\n          display: none;\r\n          font-weight: 500;\r\n      }\r\n  \r\n      \/* Video Player Section - Full Interface *\/\r\n      .yvv-video-player-section {\r\n          display: none;\r\n          background: var(--bg-secondary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: var(--border-radius-lg);\r\n          overflow: hidden;\r\n          box-shadow: var(--shadow-xl);\r\n          margin-bottom: 40px;\r\n          animation: slideInUp 0.8s ease-out;\r\n      }\r\n  \r\n      .yvv-video-header {\r\n          background: linear-gradient(135deg, var(--bg-tertiary), var(--bg-card));\r\n          padding: 25px 30px;\r\n          border-bottom: 1px solid rgba(138, 108, 252, 0.1);\r\n          display: flex;\r\n          justify-content: space-between;\r\n          align-items: center;\r\n      }\r\n  \r\n      .yvv-video-title {\r\n          color: var(--text-primary);\r\n          font-size: 24px;\r\n          font-weight: 700;\r\n          margin: 0;\r\n          flex: 1;\r\n          margin-right: 20px;\r\n      }\r\n  \r\n      .yvv-current-quality-badge {\r\n          background: linear-gradient(135deg, var(--success-color), var(--success-light));\r\n          color: white;\r\n          padding: 8px 16px;\r\n          border-radius: 20px;\r\n          font-size: 14px;\r\n          font-weight: 600;\r\n          margin-right: 15px;\r\n      }\r\n  \r\n      .yvv-close-viewer-btn {\r\n          background: var(--danger-color);\r\n          border: none;\r\n          border-radius: 50%;\r\n          width: 40px;\r\n          height: 40px;\r\n          color: white;\r\n          font-size: 18px;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n      }\r\n  \r\n      .yvv-close-viewer-btn:hover {\r\n          background: var(--danger-light);\r\n          transform: scale(1.1);\r\n      }\r\n  \r\n      .yvv-video-container {\r\n          position: relative;\r\n          background: #000;\r\n          width: 100%;\r\n      }\r\n  \r\n      .yvv-main-video {\r\n          width: 100%;\r\n          height: 70vh;\r\n          max-height: 600px;\r\n          min-height: 400px;\r\n          background: #000;\r\n          border: none;\r\n          outline: none;\r\n          display: block;\r\n      }\r\n  \r\n      \/* Video Thumbnail Overlay *\/\r\n      .yvv-video-thumbnail-overlay {\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          bottom: 0;\r\n          background-size: cover;\r\n          background-position: center;\r\n          background-repeat: no-repeat;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n      }\r\n  \r\n      .yvv-video-thumbnail-overlay.hidden {\r\n          display: none;\r\n      }\r\n  \r\n      .yvv-thumbnail-play-btn {\r\n          width: 100px;\r\n          height: 100px;\r\n          background: rgba(0, 0, 0, 0.8);\r\n          border: 4px solid white;\r\n          border-radius: 50%;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          color: white;\r\n          font-size: 36px;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          backdrop-filter: blur(10px);\r\n      }\r\n  \r\n      .yvv-thumbnail-play-btn:hover {\r\n          transform: scale(1.1);\r\n          background: rgba(0, 0, 0, 0.9);\r\n      }\r\n  \r\n      \/* Video Controls - Below Video *\/\r\n      .yvv-video-controls-section {\r\n          background: var(--bg-tertiary);\r\n          padding: 20px 30px;\r\n          border-top: 1px solid rgba(138, 108, 252, 0.1);\r\n      }\r\n  \r\n      .yvv-video-controls {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 20px;\r\n      }\r\n  \r\n      .yvv-control-btn {\r\n          width: 50px;\r\n          height: 50px;\r\n          background: linear-gradient(135deg, var(--primary-color), var(--primary-light));\r\n          border: none;\r\n          border-radius: 50%;\r\n          color: white;\r\n          font-size: 18px;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          box-shadow: var(--shadow-sm);\r\n      }\r\n  \r\n      .yvv-control-btn:hover {\r\n          transform: scale(1.1);\r\n          box-shadow: var(--shadow-md);\r\n      }\r\n  \r\n      .yvv-progress-section {\r\n          flex: 1;\r\n          margin: 0 20px;\r\n      }\r\n  \r\n      .yvv-progress-bar {\r\n          width: 100%;\r\n          height: 10px;\r\n          background: rgba(0, 0, 0, 0.1);\r\n          border-radius: 5px;\r\n          cursor: pointer;\r\n          position: relative;\r\n          overflow: hidden;\r\n          margin-bottom: 8px;\r\n      }\r\n  \r\n      .yvv-progress-fill {\r\n          height: 100%;\r\n          background: linear-gradient(135deg, var(--secondary-color), var(--secondary-light));\r\n          border-radius: 5px;\r\n          width: 0%;\r\n          transition: width 0.1s ease;\r\n          box-shadow: 0 2px 8px rgba(138, 108, 252, 0.35);\r\n      }\r\n  \r\n      .yvv-time-info {\r\n          color: var(--text-primary);\r\n          font-size: 14px;\r\n          font-weight: 600;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-volume-section {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 10px;\r\n          min-width: 120px;\r\n      }\r\n  \r\n      .yvv-volume-icon {\r\n          color: var(--text-primary);\r\n          font-size: 18px;\r\n          width: 24px;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-volume-control {\r\n          width: 80px;\r\n          height: 8px;\r\n          background: rgba(0, 0, 0, 0.1);\r\n          border-radius: 4px;\r\n          outline: none;\r\n          cursor: pointer;\r\n          -webkit-appearance: none;\r\n          appearance: none;\r\n      }\r\n  \r\n      .yvv-volume-control::-webkit-slider-thumb {\r\n          -webkit-appearance: none;\r\n          appearance: none;\r\n          width: 16px;\r\n          height: 16px;\r\n          background: var(--primary-color);\r\n          border-radius: 50%;\r\n          cursor: pointer;\r\n          box-shadow: 0 2px 6px rgba(138, 108, 252, 0.4);\r\n      }\r\n  \r\n      .yvv-volume-control::-moz-range-thumb {\r\n          width: 16px;\r\n          height: 16px;\r\n          background: var(--primary-color);\r\n          border-radius: 50%;\r\n          cursor: pointer;\r\n          border: none;\r\n          box-shadow: 0 2px 6px rgba(138, 108, 252, 0.4);\r\n      }\r\n  \r\n      \/* Video Info Section *\/\r\n      .yvv-video-info-section {\r\n          display: none;\r\n          background: var(--bg-secondary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: var(--border-radius-lg);\r\n          padding: 35px;\r\n          box-shadow: var(--shadow-xl);\r\n          margin-bottom: 40px;\r\n          animation: slideInLeft 0.8s ease-out;\r\n      }\r\n  \r\n      .yvv-video-metadata {\r\n          display: grid;\r\n          grid-template-columns: auto 1fr;\r\n          gap: 30px;\r\n          align-items: start;\r\n          margin-bottom: 30px;\r\n      }\r\n  \r\n      .yvv-video-thumbnail {\r\n          width: 160px;\r\n          height: 120px;\r\n          border-radius: var(--border-radius);\r\n          object-fit: cover;\r\n          box-shadow: var(--shadow-md);\r\n      }\r\n  \r\n      .yvv-video-details {\r\n          display: flex;\r\n          flex-direction: column;\r\n          gap: 15px;\r\n      }\r\n  \r\n      .yvv-video-details h2 {\r\n          color: var(--text-primary);\r\n          font-size: 28px;\r\n          font-weight: 700;\r\n          line-height: 1.3;\r\n          margin: 0;\r\n      }\r\n  \r\n      .yvv-video-stats {\r\n          display: flex;\r\n          gap: 25px;\r\n          flex-wrap: wrap;\r\n      }\r\n  \r\n      .yvv-stat-item {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 10px;\r\n          color: var(--text-secondary);\r\n          font-size: 16px;\r\n          font-weight: 500;\r\n      }\r\n  \r\n      .yvv-stat-icon {\r\n          width: 24px;\r\n          height: 24px;\r\n          background: linear-gradient(135deg, var(--secondary-color), var(--secondary-light));\r\n          border-radius: 8px;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          font-size: 12px;\r\n          color: white;\r\n          font-weight: 700;\r\n      }\r\n  \r\n      \/* Format Selection *\/\r\n      .yvv-format-selection {\r\n          background: rgba(138, 108, 252, 0.05);\r\n          border: 1px solid rgba(138, 108, 252, 0.1);\r\n          border-radius: var(--border-radius);\r\n          padding: 30px;\r\n      }\r\n  \r\n      .yvv-format-title {\r\n          color: var(--text-primary);\r\n          font-size: 22px;\r\n          font-weight: 700;\r\n          margin-bottom: 25px;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-format-tabs {\r\n          display: flex;\r\n          gap: 10px;\r\n          margin-bottom: 25px;\r\n          justify-content: center;\r\n      }\r\n  \r\n      .yvv-format-tab {\r\n          padding: 12px 24px;\r\n          background: var(--bg-tertiary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: 50px;\r\n          color: var(--text-secondary);\r\n          font-size: 14px;\r\n          font-weight: 600;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n      }\r\n  \r\n      .yvv-format-tab.active {\r\n          background: linear-gradient(135deg, var(--primary-color), var(--primary-light));\r\n          color: white;\r\n          border-color: var(--primary-light);\r\n      }\r\n  \r\n      .yvv-format-tab:hover:not(.active) {\r\n          background: var(--bg-card);\r\n          color: var(--text-primary);\r\n      }\r\n  \r\n      .yvv-format-grid {\r\n          display: grid;\r\n          grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\r\n          gap: 20px;\r\n      }\r\n  \r\n      .yvv-format-option {\r\n          background: var(--bg-tertiary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: var(--border-radius);\r\n          padding: 25px;\r\n          transition: all 0.3s ease;\r\n          position: relative;\r\n      }\r\n  \r\n      .yvv-format-option:hover {\r\n          transform: translateY(-5px);\r\n          box-shadow: var(--shadow-md);\r\n          border-color: var(--primary-light);\r\n      }\r\n  \r\n      .yvv-format-option.playing {\r\n          border-color: var(--success-color);\r\n          background: rgba(5, 150, 105, 0.1);\r\n          box-shadow: 0 0 20px rgba(5, 150, 105, 0.3);\r\n      }\r\n  \r\n      .yvv-format-option.playing::before {\r\n          content: '\u25b6 NOW PLAYING';\r\n          position: absolute;\r\n          top: -10px;\r\n          right: 15px;\r\n          background: linear-gradient(135deg, var(--success-color), var(--success-light));\r\n          color: white;\r\n          padding: 4px 12px;\r\n          border-radius: 12px;\r\n          font-size: 10px;\r\n          font-weight: 700;\r\n          letter-spacing: 0.5px;\r\n      }\r\n  \r\n      .yvv-format-header {\r\n          display: flex;\r\n          justify-content: space-between;\r\n          align-items: center;\r\n          margin-bottom: 15px;\r\n      }\r\n  \r\n      .yvv-format-quality {\r\n          font-size: 20px;\r\n          font-weight: 700;\r\n          color: var(--text-primary);\r\n      }\r\n  \r\n      .yvv-format-type-badge {\r\n          background: linear-gradient(135deg, var(--accent-color), var(--accent-light));\r\n          color: white;\r\n          padding: 6px 16px;\r\n          border-radius: 20px;\r\n          font-size: 12px;\r\n          font-weight: 700;\r\n      }\r\n  \r\n      .yvv-format-actions {\r\n          display: flex;\r\n          gap: 12px;\r\n      }\r\n  \r\n      .yvv-action-btn {\r\n          flex: 1;\r\n          padding: 14px;\r\n          border: none;\r\n          border-radius: 10px;\r\n          font-size: 14px;\r\n          font-weight: 600;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          gap: 8px;\r\n          font-family: inherit;\r\n      }\r\n  \r\n      .yvv-stream-action {\r\n          background: linear-gradient(135deg, var(--secondary-color), var(--secondary-light));\r\n          color: white;\r\n      }\r\n  \r\n      .yvv-stream-action:hover {\r\n          transform: translateY(-2px);\r\n          box-shadow: var(--shadow-sm);\r\n      }\r\n  \r\n      .yvv-stream-action.playing {\r\n          background: linear-gradient(135deg, var(--success-color), var(--success-light));\r\n      }\r\n  \r\n      .yvv-download-action {\r\n          background: linear-gradient(135deg, var(--warning-color), var(--warning-light));\r\n          color: white;\r\n      }\r\n  \r\n      .yvv-download-action:hover {\r\n          transform: translateY(-2px);\r\n          box-shadow: var(--shadow-sm);\r\n      }\r\n  \r\n      .yvv-audio-action {\r\n          background: linear-gradient(135deg, var(--accent-color), var(--accent-light));\r\n          color: white;\r\n      }\r\n  \r\n      .yvv-audio-action:hover {\r\n          transform: translateY(-2px);\r\n          box-shadow: var(--shadow-sm);\r\n      }\r\n  \r\n      \/* Audio Player Section *\/\r\n      .yvv-audio-player-section {\r\n          display: none;\r\n          background: var(--bg-secondary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: var(--border-radius-lg);\r\n          padding: 35px;\r\n          box-shadow: var(--shadow-xl);\r\n          margin-bottom: 40px;\r\n          animation: slideInRight 0.8s ease-out;\r\n      }\r\n  \r\n      .yvv-audio-visualizer {\r\n          background: linear-gradient(135deg, rgba(138, 108, 252, 0.1), rgba(167, 139, 250, 0.12));\r\n          border: 1px solid rgba(138, 108, 252, 0.3);\r\n          border-radius: var(--border-radius);\r\n          padding: 30px;\r\n          margin-bottom: 25px;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-visualizer-bars {\r\n          display: flex;\r\n          align-items: end;\r\n          justify-content: center;\r\n          gap: 6px;\r\n          height: 80px;\r\n          margin-bottom: 20px;\r\n      }\r\n  \r\n      .yvv-visualizer-bar {\r\n          width: 6px;\r\n          background: linear-gradient(to top, var(--accent-color), var(--accent-light), var(--secondary-light));\r\n          border-radius: 3px;\r\n          animation: audioWave 1.8s ease-in-out infinite;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(1) {\r\n          height: 30px;\r\n          animation-delay: 0s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(2) {\r\n          height: 50px;\r\n          animation-delay: 0.1s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(3) {\r\n          height: 35px;\r\n          animation-delay: 0.2s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(4) {\r\n          height: 60px;\r\n          animation-delay: 0.3s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(5) {\r\n          height: 45px;\r\n          animation-delay: 0.4s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(6) {\r\n          height: 70px;\r\n          animation-delay: 0.5s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(7) {\r\n          height: 40px;\r\n          animation-delay: 0.6s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(8) {\r\n          height: 55px;\r\n          animation-delay: 0.7s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(9) {\r\n          height: 35px;\r\n          animation-delay: 0.8s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(10) {\r\n          height: 65px;\r\n          animation-delay: 0.9s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(11) {\r\n          height: 45px;\r\n          animation-delay: 1.0s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(12) {\r\n          height: 30px;\r\n          animation-delay: 1.1s;\r\n      }\r\n  \r\n      @keyframes audioWave {\r\n  \r\n          0%,\r\n          100% {\r\n              transform: scaleY(0.4);\r\n              opacity: 0.7;\r\n          }\r\n  \r\n          50% {\r\n              transform: scaleY(1);\r\n              opacity: 1;\r\n          }\r\n      }\r\n  \r\n      .yvv-audio-controls {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 20px;\r\n          background: rgba(138, 108, 252, 0.1);\r\n          border-radius: var(--border-radius);\r\n          padding: 20px 25px;\r\n      }\r\n  \r\n      .yvv-audio-play-btn {\r\n          width: 60px;\r\n          height: 60px;\r\n          background: linear-gradient(135deg, var(--accent-color), var(--accent-light));\r\n          border: none;\r\n          border-radius: 50%;\r\n          color: white;\r\n          font-size: 24px;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          box-shadow: var(--shadow-md);\r\n      }\r\n  \r\n      .yvv-audio-play-btn:hover {\r\n          transform: scale(1.1);\r\n          box-shadow: var(--shadow-lg);\r\n      }\r\n  \r\n      .yvv-audio-progress {\r\n          flex: 1;\r\n          cursor: pointer;\r\n          padding: 15px 0;\r\n      }\r\n  \r\n      .yvv-audio-progress-track {\r\n          width: 100%;\r\n          height: 8px;\r\n          background: rgba(255, 255, 255, 0.2);\r\n          border-radius: 4px;\r\n          position: relative;\r\n          overflow: hidden;\r\n      }\r\n  \r\n      .yvv-audio-progress-fill {\r\n          height: 100%;\r\n          background: linear-gradient(135deg, var(--accent-color), var(--accent-light));\r\n          border-radius: 4px;\r\n          width: 0%;\r\n          transition: width 0.1s ease;\r\n      }\r\n  \r\n      .yvv-audio-time {\r\n          color: var(--text-primary);\r\n          font-size: 16px;\r\n          font-weight: 600;\r\n          min-width: 100px;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-audio-volume {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 12px;\r\n          min-width: 120px;\r\n      }\r\n  \r\n      .yvv-audio-volume-icon {\r\n          color: var(--text-primary);\r\n          font-size: 20px;\r\n          width: 24px;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-audio-volume-slider {\r\n          width: 80px;\r\n          height: 6px;\r\n          background: rgba(255, 255, 255, 0.2);\r\n          border-radius: 3px;\r\n          outline: none;\r\n          cursor: pointer;\r\n          -webkit-appearance: none;\r\n          appearance: none;\r\n      }\r\n  \r\n      .yvv-audio-volume-slider::-webkit-slider-thumb {\r\n          -webkit-appearance: none;\r\n          appearance: none;\r\n          width: 16px;\r\n          height: 16px;\r\n          background: var(--accent-light);\r\n          border-radius: 50%;\r\n          cursor: pointer;\r\n      }\r\n  \r\n      .yvv-audio-volume-slider::-moz-range-thumb {\r\n          width: 16px;\r\n          height: 16px;\r\n          background: var(--accent-light);\r\n          border-radius: 50%;\r\n          cursor: pointer;\r\n          border: none;\r\n      }\r\n  \r\n      \/* Download Progress *\/\r\n      .yvv-download-progress {\r\n          position: fixed;\r\n          bottom: 20px;\r\n          right: 20px;\r\n          background: var(--bg-secondary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: var(--border-radius);\r\n          padding: 20px;\r\n          min-width: 320px;\r\n          box-shadow: var(--shadow-xl);\r\n          z-index: 1000;\r\n          display: none;\r\n          color: var(--text-primary);\r\n      }\r\n  \r\n      .yvv-download-progress.show {\r\n          display: block;\r\n          animation: slideInRight 0.4s ease-out;\r\n      }\r\n  \r\n      .yvv-progress-header {\r\n          display: flex;\r\n          justify-content: space-between;\r\n          align-items: center;\r\n          margin-bottom: 15px;\r\n      }\r\n  \r\n      .yvv-progress-text {\r\n          font-weight: 600;\r\n          font-size: 14px;\r\n      }\r\n  \r\n      .yvv-cancel-btn {\r\n          background: rgba(220, 38, 38, 0.1);\r\n          border: 1px solid rgba(220, 38, 38, 0.3);\r\n          color: var(--danger-light);\r\n          padding: 6px 12px;\r\n          border-radius: 6px;\r\n          font-size: 12px;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          font-weight: 500;\r\n      }\r\n  \r\n      .yvv-cancel-btn:hover {\r\n          background: rgba(220, 38, 38, 0.2);\r\n      }\r\n  \r\n      .yvv-progress-bar-container {\r\n          width: 100%;\r\n          height: 8px;\r\n          background: rgba(255, 255, 255, 0.2);\r\n          border-radius: 4px;\r\n          overflow: hidden;\r\n          margin-bottom: 10px;\r\n      }\r\n  \r\n      .yvv-progress-bar-fill {\r\n          height: 100%;\r\n          background: linear-gradient(135deg, var(--success-color), var(--success-light));\r\n          border-radius: 4px;\r\n          width: 0%;\r\n          transition: width 0.3s ease;\r\n      }\r\n  \r\n      .yvv-progress-details {\r\n          display: flex;\r\n          justify-content: space-between;\r\n          font-size: 12px;\r\n          color: var(--text-secondary);\r\n      }\r\n  \r\n      \/* Loading Animation *\/\r\n      .yvv-cyber-loading {\r\n          position: relative;\r\n          width: 100%;\r\n          max-width: 500px;\r\n          margin: 0 auto;\r\n          padding: 40px;\r\n          background: linear-gradient(135deg, rgba(138, 108, 252, 0.1), rgba(167, 139, 250, 0.12));\r\n          border: 1px solid rgba(138, 108, 252, 0.3);\r\n          border-radius: var(--border-radius-lg);\r\n      }\r\n  \r\n      .yvv-loading-grid {\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          bottom: 0;\r\n          background-image:\r\n              linear-gradient(rgba(138, 108, 252, 0.1) 1px, transparent 1px),\r\n              linear-gradient(90deg, rgba(138, 108, 252, 0.1) 1px, transparent 1px);\r\n          background-size: 25px 25px;\r\n          animation: gridShift 8s linear infinite;\r\n      }\r\n  \r\n      @keyframes gridShift {\r\n          0% {\r\n              transform: translate(0, 0);\r\n          }\r\n  \r\n          100% {\r\n              transform: translate(25px, 25px);\r\n          }\r\n      }\r\n  \r\n      .yvv-loading-waves {\r\n          display: flex;\r\n          flex-direction: column;\r\n          gap: 12px;\r\n          margin-bottom: 25px;\r\n      }\r\n  \r\n      .yvv-loading-wave {\r\n          height: 4px;\r\n          background: linear-gradient(90deg, transparent, var(--primary-light), transparent);\r\n          border-radius: 2px;\r\n          animation: waveFlow 2.5s ease-in-out infinite;\r\n      }\r\n  \r\n      .yvv-loading-wave:nth-child(2) {\r\n          animation-delay: 0.5s;\r\n      }\r\n  \r\n      .yvv-loading-wave:nth-child(3) {\r\n          animation-delay: 1s;\r\n      }\r\n  \r\n      @keyframes waveFlow {\r\n  \r\n          0%,\r\n          100% {\r\n              opacity: 0.3;\r\n              transform: scaleX(0.3);\r\n          }\r\n  \r\n          50% {\r\n              opacity: 1;\r\n              transform: scaleX(1);\r\n          }\r\n      }\r\n  \r\n      .yvv-loading-text {\r\n          text-align: center;\r\n          color: var(--text-primary);\r\n          font-size: 18px;\r\n          font-weight: 600;\r\n      }\r\n  \r\n      .yvv-loading-dots::after {\r\n          content: '';\r\n          animation: loadingDots 2.5s steps(4, end) infinite;\r\n      }\r\n  \r\n      @keyframes loadingDots {\r\n  \r\n          0%,\r\n          20% {\r\n              content: '';\r\n          }\r\n  \r\n          40% {\r\n              content: '.';\r\n          }\r\n  \r\n          60% {\r\n              content: '..';\r\n          }\r\n  \r\n          80%,\r\n          100% {\r\n              content: '...';\r\n          }\r\n      }\r\n  \r\n      .yvv-loading-progress-bar {\r\n          width: 100%;\r\n          height: 6px;\r\n          background: rgba(0, 0, 0, 0.08);\r\n          border-radius: 3px;\r\n          overflow: hidden;\r\n          margin-top: 15px;\r\n      }\r\n  \r\n      .yvv-loading-progress-fill {\r\n          height: 100%;\r\n          background: linear-gradient(90deg, var(--primary-light), var(--accent-light));\r\n          border-radius: 3px;\r\n          animation: progressFlow 3s ease-in-out infinite;\r\n      }\r\n  \r\n      @keyframes progressFlow {\r\n          0% {\r\n              width: 0%;\r\n          }\r\n  \r\n          50% {\r\n              width: 80%;\r\n          }\r\n  \r\n          100% {\r\n              width: 100%;\r\n          }\r\n      }\r\n  \r\n      \/* Animations *\/\r\n      @keyframes fadeInDown {\r\n          from {\r\n              opacity: 0;\r\n              transform: translateY(-30px);\r\n          }\r\n  \r\n          to {\r\n              opacity: 1;\r\n              transform: translateY(0);\r\n          }\r\n      }\r\n  \r\n      @keyframes fadeInUp {\r\n          from {\r\n              opacity: 0;\r\n              transform: translateY(30px);\r\n          }\r\n  \r\n          to {\r\n              opacity: 1;\r\n              transform: translateY(0);\r\n          }\r\n      }\r\n  \r\n      @keyframes slideInUp {\r\n          from {\r\n              opacity: 0;\r\n              transform: translateY(50px);\r\n          }\r\n  \r\n          to {\r\n              opacity: 1;\r\n              transform: translateY(0);\r\n          }\r\n      }\r\n  \r\n      @keyframes slideInLeft {\r\n          from {\r\n              opacity: 0;\r\n              transform: translateX(-50px);\r\n          }\r\n  \r\n          to {\r\n              opacity: 1;\r\n              transform: translateX(0);\r\n          }\r\n      }\r\n  \r\n      @keyframes slideInRight {\r\n          from {\r\n              opacity: 0;\r\n              transform: translateX(50px);\r\n          }\r\n  \r\n          to {\r\n              opacity: 1;\r\n              transform: translateX(0);\r\n          }\r\n      }\r\n  \r\n      @keyframes float {\r\n  \r\n          0%,\r\n          100% {\r\n              transform: translateY(0px) scale(1);\r\n          }\r\n  \r\n          50% {\r\n              transform: translateY(-10px) scale(1.05);\r\n          }\r\n      }\r\n  \r\n      @keyframes pulse {\r\n  \r\n          0%,\r\n          100% {\r\n              transform: scale(1);\r\n              opacity: 0.5;\r\n          }\r\n  \r\n          50% {\r\n              transform: scale(1.1);\r\n              opacity: 0.8;\r\n          }\r\n      }\r\n  \r\n      \/* Responsive Design *\/\r\n      @media (max-width: 768px) {\r\n          .yvv-container {\r\n              padding: 15px;\r\n          }\r\n  \r\n          .yvv-search-form {\r\n              flex-direction: column;\r\n              gap: 15px;\r\n          }\r\n  \r\n          .yvv-search-btn {\r\n              min-width: 100%;\r\n          }\r\n  \r\n          .yvv-video-metadata {\r\n              grid-template-columns: 1fr;\r\n              text-align: center;\r\n          }\r\n  \r\n          .yvv-video-stats {\r\n              justify-content: center;\r\n          }\r\n  \r\n          .yvv-format-grid {\r\n              grid-template-columns: 1fr;\r\n          }\r\n  \r\n          .yvv-format-actions {\r\n              flex-direction: column;\r\n          }\r\n  \r\n          .yvv-main-video {\r\n              height: 50vh;\r\n              min-height: 300px;\r\n          }\r\n  \r\n          .yvv-video-controls {\r\n              flex-wrap: wrap;\r\n              gap: 15px;\r\n          }\r\n  \r\n          .yvv-progress-section {\r\n              order: 3;\r\n              width: 100%;\r\n              margin: 15px 0 0 0;\r\n          }\r\n  \r\n          .yvv-audio-controls {\r\n              flex-wrap: wrap;\r\n              gap: 15px;\r\n          }\r\n  \r\n          .yvv-audio-progress {\r\n              order: 3;\r\n              width: 100%;\r\n          }\r\n  \r\n          .yvv-download-progress {\r\n              left: 15px;\r\n              right: 15px;\r\n              min-width: auto;\r\n          }\r\n      }\r\n  \r\n      @media (max-width: 480px) {\r\n          .yvv-container {\r\n              padding: 10px;\r\n          }\r\n  \r\n          .yvv-search-section,\r\n          .yvv-video-info-section,\r\n          .yvv-audio-player-section {\r\n              padding: 25px;\r\n          }\r\n  \r\n          .yvv-brand-logo {\r\n              flex-direction: column;\r\n              gap: 20px;\r\n          }\r\n  \r\n          .yvv-feature-badges {\r\n              flex-direction: column;\r\n              align-items: center;\r\n              gap: 10px;\r\n          }\r\n  \r\n          .yvv-feature-badge {\r\n              width: 100%;\r\n              max-width: 300px;\r\n              justify-content: center;\r\n          }\r\n  \r\n          .yvv-format-tabs {\r\n              flex-direction: column;\r\n              align-items: center;\r\n              gap: 8px;\r\n          }\r\n  \r\n          .yvv-format-tab {\r\n              width: 100%;\r\n              max-width: 200px;\r\n              text-align: center;\r\n          }\r\n  \r\n          .yvv-main-video {\r\n              height: 40vh;\r\n              min-height: 250px;\r\n          }\r\n  \r\n          .yvv-video-header {\r\n              flex-direction: column;\r\n              gap: 15px;\r\n              text-align: center;\r\n          }\r\n  \r\n          .yvv-current-quality-badge {\r\n              margin-right: 0;\r\n          }\r\n      }\r\n  <\/style>\r\n  \r\n <body data-aos-easing=\"ease-in-out\" data-aos-duration=\"800\" data-aos-delay=\"0\" data-new-gr-c-s-check-loaded=\"14.1249.0\" data-gr-ext-installed=\"\" data-new-gr-c-s-loaded=\"14.1223.0\" class=\"\" style=\"\">\r\n  \r\n       <section class=\"custom-hero-tools-ytvv\">\r\n          <div class=\"container\">\r\n              <!-- Header Section -->\r\n          <div class=\"yvv-header\">\r\n              <div class=\"yvv-brand-logo\">\r\n                  <div class=\"yvv-brand-icon\">\ud83c\udfa5<\/div>\r\n                  <h1 class=\"yvv-brand-title\"><span class=\"va-cap\">Y<\/span>outube <span class=\"va-cap\">U<\/span>rl <span class=\"va-cap\">V<\/span>iewer<\/h1>\r\n              <\/div>\r\n              <div class=\"yvv-brand-subtitle\">Experience YouTube videos with advanced streaming capabilities and premium\r\n                  audio quality<\/div>\r\n  \r\n              <div class=\"yvv-feature-badges\">\r\n                  <div class=\"yvv-feature-badge\">\r\n                      <div class=\"yvv-badge-icon\">\u2713<\/div>\r\n                      <span>HD Streaming<\/span>\r\n                  <\/div>\r\n                  <div class=\"yvv-feature-badge\">\r\n                      <div class=\"yvv-badge-icon\">\u2713<\/div>\r\n                      <span>Audio Player<\/span>\r\n                  <\/div>\r\n                  <div class=\"yvv-feature-badge\">\r\n                      <div class=\"yvv-badge-icon\">\u2713<\/div>\r\n                      <span>Download Options<\/span>\r\n                  <\/div>\r\n                  <div class=\"yvv-feature-badge\">\r\n                      <div class=\"yvv-badge-icon\">\u2713<\/div>\r\n                      <span>Premium Experience<\/span>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n  \r\n          <!-- Search Section -->\r\n          <div class=\"yvv-search-section\">\r\n              <div class=\"yvv-search-form\">\r\n                  <input type=\"text\" class=\"yvv-search-input\" placeholder=\"Enter YouTube URL to start viewing (e.g., https:\/\/www.youtube.com\/watch?v=dQw4w9WgXcQ)\" id=\"yvv-videoInput\">\r\n                  <button class=\"yvv-search-btn\" onclick=\"yvv_loadVideo()\" id=\"yvv-loadBtn\">\r\n                      <span id=\"yvv-loadBtnText\">\ud83c\udfa5 Load Video<\/span>\r\n                  <\/button>\r\n              <\/div>\r\n  \r\n              <div class=\"yvv-loading-indicator\" id=\"yvv-loadingIndicator\">\r\n                  <div class=\"yvv-cyber-loading\">\r\n                      <div class=\"yvv-loading-grid\"><\/div>\r\n                      <div class=\"yvv-loading-waves\">\r\n                          <div class=\"yvv-loading-wave\"><\/div>\r\n                          <div class=\"yvv-loading-wave\"><\/div>\r\n                          <div class=\"yvv-loading-wave\"><\/div>\r\n                      <\/div>\r\n                      <div class=\"yvv-loading-text\">\r\n                          <span class=\"yvv-loading-dots\">Loading video content<\/span>\r\n                          <div class=\"yvv-loading-progress-bar\">\r\n                              <div class=\"yvv-loading-progress-fill\"><\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                  <\/div>\r\n              <\/div>\r\n  \r\n              <div class=\"yvv-error-display\" id=\"yvv-errorDisplay\"><\/div>\r\n          <\/div>\r\n  \r\n          <!-- Video Player Section - Shows immediately after loading -->\r\n          <div class=\"yvv-video-player-section\" id=\"yvv-videoPlayerSection\">\r\n              <div class=\"yvv-video-header\">\r\n                  <h2 class=\"yvv-video-title\" id=\"yvv-playerVideoTitle\">Video Title<\/h2>\r\n                  <div class=\"yvv-current-quality-badge\" id=\"yvv-currentQualityBadge\">Ready to Play<\/div>\r\n                  <button class=\"yvv-close-viewer-btn\" onclick=\"yvv_closeVideoPlayer()\">\u00d7<\/button>\r\n              <\/div>\r\n              <div class=\"yvv-video-container\">\r\n                  <video class=\"yvv-main-video\" id=\"yvv-mainVideoPlayer\" controls=\"\">\r\n                      Your browser does not support the video tag.\r\n                  <\/video>\r\n                  <div class=\"yvv-video-thumbnail-overlay\" id=\"yvv-videoThumbnailOverlay\">\r\n                      <div class=\"yvv-thumbnail-play-btn\" onclick=\"yvv_playDefaultVideo()\">\u25b6<\/div>\r\n                  <\/div>\r\n              <\/div>\r\n              <div class=\"yvv-video-controls-section\">\r\n                  <div class=\"yvv-video-controls\">\r\n                      <button class=\"yvv-control-btn\" id=\"yvv-playPauseControl\" onclick=\"yvv_toggleVideoPlayback()\">\u25b6<\/button>\r\n                      <div class=\"yvv-progress-section\">\r\n                          <div class=\"yvv-progress-bar\" onclick=\"yvv_seekVideoTo(event)\">\r\n                              <div class=\"yvv-progress-fill\" id=\"yvv-videoProgressFill\"><\/div>\r\n                          <\/div>\r\n                          <div class=\"yvv-time-info\" id=\"yvv-videoTimeInfo\">0:00 \/ 0:00<\/div>\r\n                      <\/div>\r\n                      <div class=\"yvv-volume-section\">\r\n                          <span class=\"yvv-volume-icon\" id=\"yvv-videoVolumeIcon\">\ud83d\udd0a<\/span>\r\n                          <input type=\"range\" class=\"yvv-volume-control\" id=\"yvv-videoVolumeControl\" min=\"0\" max=\"100\" value=\"50\" oninput=\"yvv_adjustVideoVolume(this.value)\">\r\n                      <\/div>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n  \r\n          <!-- Video Info Section -->\r\n          <div class=\"yvv-video-info-section\" id=\"yvv-videoInfoSection\">\r\n              <div class=\"yvv-video-metadata\">\r\n                  <img decoding=\"async\" class=\"yvv-video-thumbnail\" id=\"yvv-videoThumbnail\" src=\"\/placeholder.svg\" alt=\"Video Thumbnail\">\r\n                  <div class=\"yvv-video-details\">\r\n                      <h2 id=\"yvv-videoDetailsTitle\">Video Title<\/h2>\r\n                      <div class=\"yvv-video-stats\">\r\n                          <div class=\"yvv-stat-item\">\r\n                              <div class=\"yvv-stat-icon\">\u23f1<\/div>\r\n                              <span id=\"yvv-videoDurationStat\">Duration<\/span>\r\n                          <\/div>\r\n                          <div class=\"yvv-stat-item\">\r\n                              <div class=\"yvv-stat-icon\">\ud83d\udc64<\/div>\r\n                              <span id=\"yvv-videoUploaderStat\">Channel<\/span>\r\n                          <\/div>\r\n                          <div class=\"yvv-stat-item\">\r\n                              <div class=\"yvv-stat-icon\">\ud83c\udfac<\/div>\r\n                              <span>Premium Quality<\/span>\r\n                          <\/div>\r\n                      <\/div>\r\n                  <\/div>\r\n              <\/div>\r\n  \r\n              <div class=\"yvv-format-selection\">\r\n                  <h3 class=\"yvv-format-title\">Available Formats & Downloads<\/h3>\r\n                  <div class=\"yvv-format-tabs\">\r\n                      <div class=\"yvv-format-tab active\" onclick=\"yvv_switchFormatTab('video')\">Video Formats<\/div>\r\n                      <div class=\"yvv-format-tab\" onclick=\"yvv_switchFormatTab('audio')\">Audio Only<\/div>\r\n                  <\/div>\r\n                  <div class=\"yvv-format-grid\" id=\"yvv-formatGrid\">\r\n                      <!-- Format options will be populated here -->\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n  \r\n          <!-- Audio Player Section -->\r\n          <div class=\"yvv-audio-player-section\" id=\"yvv-audioPlayerSection\">\r\n              <div class=\"yvv-audio-visualizer\">\r\n                  <div class=\"yvv-visualizer-bars\">\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                  <\/div>\r\n                  <div class=\"yvv-audio-controls\">\r\n                      <button class=\"yvv-audio-play-btn\" id=\"yvv-audioPlayBtn\" onclick=\"yvv_toggleAudioPlayback()\">\u25b6<\/button>\r\n                      <div class=\"yvv-audio-progress\" onclick=\"yvv_seekAudioTo(event)\">\r\n                          <div class=\"yvv-audio-progress-track\">\r\n                              <div class=\"yvv-audio-progress-fill\" id=\"yvv-audioProgressFill\"><\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      <div class=\"yvv-audio-time\" id=\"yvv-audioTimeInfo\">0:00 \/ 0:00<\/div>\r\n                      <div class=\"yvv-audio-volume\">\r\n                          <span class=\"yvv-audio-volume-icon\" id=\"yvv-audioVolumeIcon\">\ud83d\udd0a<\/span>\r\n                          <input type=\"range\" class=\"yvv-audio-volume-slider\" id=\"yvv-audioVolumeSlider\" min=\"0\" max=\"100\" value=\"50\" oninput=\"yvv_adjustAudioVolume(this.value)\">\r\n                      <\/div>\r\n                  <\/div>\r\n                  <audio id=\"yvv-audioPlayer\" preload=\"none\" style=\"display: none;\"><\/audio>\r\n              <\/div>\r\n          <\/div>\r\n      <\/div>\r\n  \r\n      <!-- Download Progress -->\r\n      <div class=\"yvv-download-progress\" id=\"yvv-downloadProgress\">\r\n          <div class=\"yvv-progress-header\">\r\n              <span class=\"yvv-progress-text\" id=\"yvv-progressText\">Downloading...<\/span>\r\n              <button class=\"yvv-cancel-btn\" onclick=\"yvv_cancelDownload()\">Cancel<\/button>\r\n          <\/div>\r\n          <div class=\"yvv-progress-bar-container\">\r\n              <div class=\"yvv-progress-bar-fill\" id=\"yvv-progressBarFill\"><\/div>\r\n          <\/div>\r\n          <div class=\"yvv-progress-details\">\r\n              <span id=\"yvv-progressPercent\">0%<\/span>\r\n              <span id=\"yvv-progressSize\">0 MB \/ 0 MB<\/span>\r\n          <\/div>\r\n      <\/div>\r\n          \r\n       <\/section>\r\n  \r\n  <!-- Work Process Section -->\r\n  <section class=\"ytvv-work-process-section\" id=\"how-it-works\">\r\n      <div class=\"container ytvv-work-process-content\">\r\n          <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n              <h2 class=\"ytvv-section-title ytvv-light-title\">How Our YouTube URL Viewer Works<\/h2>\r\n              <p class=\"ytvv-section-subtitle ytvv-light-subtitle\">View any YouTube video securely and anonymously in 3 easy steps<\/p>\r\n          <\/div>\r\n          \r\n          <div class=\"row\">\r\n              <div class=\"col-md-4\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                  <div class=\"ytvv-process-step\">\r\n                      <div class=\"ytvv-step-number\">1<\/div>\r\n                      <h4 class=\"text-white\">Enter YouTube URL<\/h4>\r\n                      <p class=\"ytvv-light-subtitle\">Paste the video link you want to view privately without login or tracking<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-md-4\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                  <div class=\"ytvv-process-step\">\r\n                      <div class=\"ytvv-step-number\">2<\/div>\r\n                      <h4 class=\"text-white\">Process the Link<\/h4>\r\n                      <p class=\"ytvv-light-subtitle\">Our secure system fetches the video using the YouTube URL without connecting to official servers<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-md-4\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                  <div class=\"ytvv-process-step\">\r\n                      <div class=\"ytvv-step-number\">3<\/div>\r\n                      <h4 class=\"text-white\">Watch Anonymously<\/h4>\r\n                      <p class=\"ytvv-light-subtitle\">Enjoy the video safely without view tracking or recommendations<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n      <\/div>\r\n  <\/section>\r\n  \r\n  <!-- Features Section -->\r\n  <section class=\"ytvv-features-section\">\r\n      <div class=\"container\">\r\n          <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n              <h2 class=\"ytvv-section-title\">Key Features<\/h2>\r\n              <p class=\"ytvv-section-subtitle\">Our YouTube URL Viewer offers smart and private tools for secure viewing<\/p>\r\n          <\/div>\r\n          \r\n          <div class=\"row\">\r\n              <div class=\"col-lg-4 mb-4\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-user\"><\/i>\r\n                      <\/div>\r\n                      <h4>Private Viewing<\/h4>\r\n                      <p>Watch YouTube videos without being tracked, logged, or identified<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-lg-4 mb-4\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-shield\"><\/i>\r\n                      <\/div>\r\n                      <h4>Safe & Secure<\/h4>\r\n                      <p>Your connection is encrypted \u2014 no tracking, no cookies, no footprints<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-lg-4 mb-4\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-video\"><\/i>\r\n                      <\/div>\r\n                      <h4>HD Quality<\/h4>\r\n                      <p>View YouTube videos in full HD or 4K without buffering or compression<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-lg-4 mb-5\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-stopwatch\"><\/i>\r\n                      <\/div>\r\n                      <h4>Instant Access<\/h4>\r\n                      <p>Paste the link and start watching immediately \u2014 no waiting time<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-lg-4 mb-5\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-mobile\"><\/i>\r\n                      <\/div>\r\n                      <h4>Ad-Free Experience<\/h4>\r\n                      <p>Enjoy uninterrupted videos with zero YouTube ads or recommendations<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-lg-4 mb-5\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-devices\"><\/i>\r\n                      <\/div>\r\n                      <h4>Universal Compatibility<\/h4>\r\n                      <p>Works seamlessly on any device \u2014 mobile, tablet, or desktop<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n      <\/div>\r\n  <\/section>\r\n  \r\n  <!-- Why Choose Section -->\r\n  <section class=\"ytvv-why-choose-section\">\r\n      <div class=\"container\">\r\n          <div class=\"row align-items-center\">\r\n              <div class=\"col-lg-6 mb-5 mb-lg-0\" data-aos=\"fade-right\">\r\n                  <div class=\"ytvv-why-choose-image ytvv-floating-element\">\r\n                      <img decoding=\"async\" src=\"https:\/\/viewanonymous.com\/wp-content\/uploads\/2026\/03\/Youtube_Url_Viewer.webp\" alt=\"YouTube URL Viewer\" class=\"img-fluid rounded-3\">\r\n                  <\/div>\r\n              <\/div>\r\n              <div class=\"col-lg-6\" data-aos=\"fade-left\">\r\n                  <h2 class=\"ytvv-section-title mb-4\">Why Choose Our YouTube URL Viewer?<\/h2>\r\n                  <p class=\"mb-4\">Our YouTube URL Viewer is designed to give you full control over your privacy while watching videos. Whether you want to explore content anonymously or bypass login barriers, this viewer ensures a fast and secure experience every time.<\/p>\r\n                  \r\n                  <div class=\"ytvv-benefit-item\">\r\n                      <div class=\"ytvv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">No Sign-Up Required<\/h5>\r\n                          <p class=\"mb-0\">Paste the link and watch videos instantly \u2014 no login needed<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n                  \r\n                  <div class=\"ytvv-benefit-item\">\r\n                      <div class=\"ytvv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">Total Privacy<\/h5>\r\n                          <p class=\"mb-0\">We never track, log, or store your browsing activity<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n                  \r\n                  <div class=\"ytvv-benefit-item\">\r\n                      <div class=\"ytvv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">Fast Processing<\/h5>\r\n                          <p class=\"mb-0\">Our optimized engine loads YouTube URLs quickly and efficiently<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n                  \r\n                  <div class=\"ytvv-benefit-item\">\r\n                      <div class=\"ytvv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">Ad-Free Viewing<\/h5>\r\n                          <p class=\"mb-0\">Enjoy a smooth, ad-free video experience every time<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n      <\/div>\r\n  <\/section>\r\n  \r\n  <!-- FAQ Section -->\r\n  <section class=\"ytvv-faq-section\">\r\n      <div class=\"container\">\r\n          <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n              <h2 class=\"ytvv-section-title\">Frequently Asked Questions<\/h2>\r\n              <p class=\"ytvv-section-subtitle\">Find answers to the most common questions about our YouTube URL Viewer<\/p>\r\n          <\/div>\r\n          \r\n          <div class=\"row justify-content-center\">\r\n              <div class=\"col-lg-8\">\r\n                  <div class=\"accordion\" id=\"ytvv-faqAccordion\">\r\n                      <div class=\"ytvv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                          <h3 class=\"accordion-header\" id=\"ytvv-heading1\">\r\n                              <button class=\"ytvv-accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#ytvv-collapse1\" aria-expanded=\"true\" aria-controls=\"ytvv-collapse1\">\r\n                                  Is using YouTube URL Viewer legal?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"ytvv-collapse1\" class=\"accordion-collapse collapse show\" aria-labelledby=\"ytvv-heading1\" data-bs-parent=\"#ytvv-faqAccordion\">\r\n                              <div class=\"ytvv-accordion-body\">\r\n                                  Yes, our tool is fully legal to use. It only displays publicly available YouTube videos using the URL you provide. We don\u2019t bypass security or access private content.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"ytvv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"100\">\r\n                          <h3 class=\"accordion-header\" id=\"ytvv-heading2\">\r\n                              <button class=\"ytvv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#ytvv-collapse2\" aria-expanded=\"false\" aria-controls=\"ytvv-collapse2\">\r\n                                  Can I view private or unlisted YouTube links?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"ytvv-collapse2\" class=\"accordion-collapse collapse\" aria-labelledby=\"ytvv-heading2\" data-bs-parent=\"#ytvv-faqAccordion\">\r\n                              <div class=\"ytvv-accordion-body\">\r\n                                  No, the YouTube URL Viewer only works with public URLs. Private or restricted links remain inaccessible to maintain privacy and security standards.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"ytvv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                          <h3 class=\"accordion-header\" id=\"ytvv-heading3\">\r\n                              <button class=\"ytvv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#ytvv-collapse3\" aria-expanded=\"false\" aria-controls=\"ytvv-collapse3\">\r\n                                  Does this tool affect YouTube view counts?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"ytvv-collapse3\" class=\"accordion-collapse collapse\" aria-labelledby=\"ytvv-heading3\" data-bs-parent=\"#ytvv-faqAccordion\">\r\n                              <div class=\"ytvv-accordion-body\">\r\n                                  No, videos viewed through our tool are not tracked by YouTube and do not increase the video\u2019s view count. Your activity stays invisible.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"ytvv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"200\">\r\n                          <h3 class=\"accordion-header\" id=\"ytvv-heading4\">\r\n                              <button class=\"ytvv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#ytvv-collapse4\" aria-expanded=\"false\" aria-controls=\"ytvv-collapse4\">\r\n                                  Do I need any software to use YouTube URL Viewer?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"ytvv-collapse4\" class=\"accordion-collapse collapse\" aria-labelledby=\"ytvv-heading4\" data-bs-parent=\"#ytvv-faqAccordion\">\r\n                              <div class=\"ytvv-accordion-body\">\r\n                                  No installation required! Our YouTube URL Viewer is fully web-based. Just visit our site, enter the video link, and start watching instantly.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"ytvv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                          <h3 class=\"accordion-header\" id=\"ytvv-heading5\">\r\n                              <button class=\"ytvv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#ytvv-collapse5\" aria-expanded=\"false\" aria-controls=\"ytvv-collapse5\">\r\n                                  Can I download videos with this YouTube URL Viewer?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"ytvv-collapse5\" class=\"accordion-collapse collapse\" aria-labelledby=\"ytvv-heading5\" data-bs-parent=\"#ytvv-faqAccordion\">\r\n                              <div class=\"ytvv-accordion-body\">\r\n                                  No, downloading is not supported. This tool is purely for private, anonymous viewing of public YouTube content.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n      <\/div>\r\n  <\/section>\r\n  \r\n  \r\n    <!-- Footer -->\r\n    \r\n  \r\n  <!-- Copyright Section -->\r\n  \r\n  \r\n  \r\n  \r\n   <!-- YouTub Video Viewer js -->\r\n    <script src=\"https:\/\/tools.xrespond.com\/api\/rate-limit-handler.js\"><\/script>\r\n    <script src=\"https:\/\/tools.xrespond.com\/api\/js\/client-ip-detector.js\"><\/script>\r\n   <script>\r\n      \/\/ Using your original API\r\n      const API_URL = 'https:\/\/tools.xrespond.com\/api\/youtube\/video\/downloader';\r\n      let currentVideoData = null;\r\n      let videoPlayer = null;\r\n      let audioPlayer = null;\r\n      let isVideoPlaying = false;\r\n      let isAudioPlaying = false;\r\n      let currentFormatTab = 'video';\r\n      let downloadController = null;\r\n      let currentPlayingFormat = null;\r\n      let defaultVideoFormat = null;\r\n  \r\n      function yvv_isValidYouTubeURL(url) {\r\n          const patterns = [\r\n              \/^https:\\\/\\\/(?:www\\.)?youtube\\.com\\\/watch\\?v=[\\w-]+\/,\r\n              \/^https:\\\/\\\/youtu\\.be\\\/[\\w-]+\/,\r\n              \/^https:\\\/\\\/(?:www\\.)?youtube\\.com\\\/shorts\\\/[\\w-]+\/\r\n          ];\r\n          return patterns.some(pattern => pattern.test(url));\r\n      }\r\n  \r\n      function yvv_showError(message) {\r\n          const errorDiv = document.getElementById('yvv-errorDisplay');\r\n          const urlInput = document.getElementById('yvv-videoInput');\r\n  \r\n          errorDiv.textContent = message;\r\n          errorDiv.style.display = 'block';\r\n          urlInput.classList.add('error');\r\n  \r\n          setTimeout(() => {\r\n              errorDiv.style.display = 'none';\r\n              urlInput.classList.remove('error');\r\n          }, 5000);\r\n      }\r\n  \r\n      function yvv_hideError() {\r\n          const errorDiv = document.getElementById('yvv-errorDisplay');\r\n          const urlInput = document.getElementById('yvv-videoInput');\r\n  \r\n          errorDiv.style.display = 'none';\r\n          urlInput.classList.remove('error');\r\n      }\r\n  \r\n      function yvv_showLoading() {\r\n          document.getElementById('yvv-loadingIndicator').style.display = 'block';\r\n          document.getElementById('yvv-loadBtn').disabled = true;\r\n          document.getElementById('yvv-loadBtnText').textContent = '\u23f3 Loading...';\r\n      }\r\n  \r\n      function yvv_hideLoading() {\r\n          document.getElementById('yvv-loadingIndicator').style.display = 'none';\r\n          document.getElementById('yvv-loadBtn').disabled = false;\r\n          document.getElementById('yvv-loadBtnText').textContent = '\ud83c\udfa5 Load Video';\r\n      }\r\n  \r\n      function yvv_formatFileSize(bytes) {\r\n          if (bytes === 0) return '0 Bytes';\r\n          const k = 1024;\r\n          const sizes = ['Bytes', 'KB', 'MB', 'GB'];\r\n          const i = Math.floor(Math.log(bytes) \/ Math.log(k));\r\n          return parseFloat((bytes \/ Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\r\n      }\r\n  \r\n      function yvv_showDownloadProgress(text, progress = 0, downloaded = 0, total = 0) {\r\n          const progressDiv = document.getElementById('yvv-downloadProgress');\r\n          const progressText = document.getElementById('yvv-progressText');\r\n          const progressFill = document.getElementById('yvv-progressBarFill');\r\n          const progressPercent = document.getElementById('yvv-progressPercent');\r\n          const progressSize = document.getElementById('yvv-progressSize');\r\n  \r\n          progressText.textContent = text;\r\n          progressFill.style.width = `${progress}%`;\r\n          progressPercent.textContent = `${Math.round(progress)}%`;\r\n          progressSize.textContent = `${yvv_formatFileSize(downloaded)} \/ ${yvv_formatFileSize(total)}`;\r\n          progressDiv.classList.add('show');\r\n      }\r\n  \r\n      function yvv_hideDownloadProgress() {\r\n          document.getElementById('yvv-downloadProgress').classList.remove('show');\r\n      }\r\n  \r\n      async function yvv_loadVideo() {\r\n          const urlInput = document.getElementById('yvv-videoInput');\r\n          const url = urlInput.value.trim();\r\n  \r\n          if (!url) {\r\n              yvv_showError('Please enter a YouTube URL');\r\n              return;\r\n          }\r\n  \r\n          if (!yvv_isValidYouTubeURL(url)) {\r\n              yvv_showError('Please enter a valid YouTube URL');\r\n              return;\r\n          }\r\n  \r\n          yvv_hideError();\r\n          yvv_showLoading();\r\n  \r\n          try {\r\n              const formData = new FormData();\r\n              formData.append('url', url);\r\n  \r\n              const response = await fetch(API_URL, {\r\n                  method: 'POST',\r\n                  body: formData\r\n              });\r\n  \r\n              if (!response.ok) {\r\n                  throw new Error(`HTTP error! status: ${response.status}`);\r\n              }\r\n  \r\n              const data = await response.json();\r\n  \r\n              if (!data.success) {\r\n                  throw new Error(data.message || 'Failed to load video data');\r\n              }\r\n  \r\n              currentVideoData = data.data.data;\r\n              yvv_displayVideoInfo(currentVideoData);\r\n  \r\n              \/\/ Show video player with thumbnail\r\n              yvv_setupVideoPlayerWithThumbnail();\r\n  \r\n          } catch (error) {\r\n              console.error('Error:', error);\r\n              yvv_showError('Failed to load video data. Please check the URL and try again.');\r\n          } finally {\r\n              yvv_hideLoading();\r\n          }\r\n      }\r\n  \r\n      function yvv_setupVideoPlayerWithThumbnail() {\r\n          const videoPlayerSection = document.getElementById('yvv-videoPlayerSection');\r\n          const thumbnailOverlay = document.getElementById('yvv-videoThumbnailOverlay');\r\n          const playerTitle = document.getElementById('yvv-playerVideoTitle');\r\n          const qualityBadge = document.getElementById('yvv-currentQualityBadge');\r\n  \r\n          \/\/ Set thumbnail background\r\n          thumbnailOverlay.style.backgroundImage = `url(${currentVideoData.thumbnail})`;\r\n          thumbnailOverlay.classList.remove('hidden');\r\n  \r\n          \/\/ Set title\r\n          playerTitle.textContent = currentVideoData.title;\r\n          qualityBadge.textContent = 'Ready to Play';\r\n  \r\n          \/\/ Show video player section\r\n          videoPlayerSection.style.display = 'block';\r\n  \r\n          \/\/ Find default video format (prefer 720p or first available)\r\n          const videoFormats = currentVideoData.links.filter(link => link.type === 'video');\r\n          defaultVideoFormat = videoFormats.find(f => f.resolution.includes('720p')) || videoFormats[0];\r\n  \r\n          \/\/ Reset video player\r\n          const videoPlayer = document.getElementById('yvv-mainVideoPlayer');\r\n          videoPlayer.src = '';\r\n          isVideoPlaying = false;\r\n          document.getElementById('yvv-playPauseControl').textContent = '\u25b6';\r\n  \r\n          \/\/ Hide audio player if open\r\n          document.getElementById('yvv-audioPlayerSection').style.display = 'none';\r\n      }\r\n  \r\n      function yvv_playDefaultVideo() {\r\n          if (defaultVideoFormat) {\r\n              yvv_streamVideoDirectly(defaultVideoFormat.download_url, defaultVideoFormat.resolution);\r\n              yvv_updateCurrentPlayingFormat(defaultVideoFormat.resolution, 'video');\r\n          }\r\n      }\r\n  \r\n      function yvv_displayVideoInfo(data) {\r\n          \/\/ Set video info\r\n          document.getElementById('yvv-videoDetailsTitle').textContent = data.title;\r\n          document.getElementById('yvv-videoDurationStat').textContent = data.duration;\r\n          document.getElementById('yvv-videoUploaderStat').textContent = data.uploader;\r\n          document.getElementById('yvv-videoThumbnail').src = data.thumbnail;\r\n  \r\n          \/\/ Display formats\r\n          yvv_displayFormats(data.links);\r\n  \r\n          document.getElementById('yvv-videoInfoSection').style.display = 'block';\r\n      }\r\n  \r\n      function yvv_streamVideoDirectly(url, resolution) {\r\n          const videoPlayer = document.getElementById('yvv-mainVideoPlayer');\r\n          const thumbnailOverlay = document.getElementById('yvv-videoThumbnailOverlay');\r\n          const qualityBadge = document.getElementById('yvv-currentQualityBadge');\r\n  \r\n          \/\/ Hide thumbnail overlay\r\n          thumbnailOverlay.classList.add('hidden');\r\n  \r\n          \/\/ Set video source\r\n          videoPlayer.src = url;\r\n          videoPlayer.load();\r\n  \r\n          \/\/ Update quality badge\r\n          qualityBadge.textContent = resolution;\r\n  \r\n          \/\/ Reset controls\r\n          isVideoPlaying = false;\r\n          document.getElementById('yvv-playPauseControl').textContent = '\u25b6';\r\n  \r\n          \/\/ Setup event listeners\r\n          yvv_setupVideoEventListeners();\r\n  \r\n          \/\/ Scroll to video player\r\n          document.getElementById('yvv-videoPlayerSection').scrollIntoView({\r\n              behavior: 'smooth',\r\n              block: 'start'\r\n          });\r\n      }\r\n  \r\n      function yvv_updateCurrentPlayingFormat(quality, type) {\r\n          \/\/ Remove previous playing indicators\r\n          document.querySelectorAll('.yvv-format-option').forEach(option => {\r\n              option.classList.remove('playing');\r\n          });\r\n          document.querySelectorAll('.yvv-stream-action').forEach(btn => {\r\n              btn.classList.remove('playing');\r\n              btn.innerHTML = btn.innerHTML.replace('\u23f8 Playing', '\u25b6 Stream').replace('\ud83c\udfb5 Playing', '\ud83c\udfb5 Stream Audio');\r\n          });\r\n  \r\n          \/\/ Set current playing format\r\n          currentPlayingFormat = { quality, type };\r\n  \r\n          \/\/ Update format cards to show which is playing\r\n          const formatCards = document.querySelectorAll('.yvv-format-option');\r\n          formatCards.forEach(card => {\r\n              const qualityElement = card.querySelector('.yvv-format-quality');\r\n              const streamBtn = card.querySelector('.yvv-stream-action, .yvv-audio-action');\r\n  \r\n              if (qualityElement && streamBtn) {\r\n                  const cardQuality = qualityElement.textContent;\r\n                  const isCurrentFormat = (type === 'video' && cardQuality === quality) ||\r\n                      (type === 'audio' && cardQuality === 'Audio Quality' && quality === 'Audio');\r\n  \r\n                  if (isCurrentFormat) {\r\n                      card.classList.add('playing');\r\n                      streamBtn.classList.add('playing');\r\n                      if (type === 'video') {\r\n                          streamBtn.innerHTML = '\u23f8 Playing';\r\n                      } else {\r\n                          streamBtn.innerHTML = '\ud83c\udfb5 Playing';\r\n                      }\r\n                  }\r\n              }\r\n          });\r\n      }\r\n  \r\n      function yvv_switchFormatTab(tab) {\r\n          currentFormatTab = tab;\r\n  \r\n          \/\/ Update tab appearance\r\n          document.querySelectorAll('.yvv-format-tab').forEach(t => t.classList.remove('active'));\r\n          event.target.classList.add('active');\r\n  \r\n          \/\/ Display formats for selected tab\r\n          if (currentVideoData) {\r\n              yvv_displayFormats(currentVideoData.links);\r\n          }\r\n      }\r\n  \r\n      function yvv_displayFormats(links) {\r\n          const formatGrid = document.getElementById('yvv-formatGrid');\r\n          formatGrid.innerHTML = '';\r\n  \r\n          let formats;\r\n          if (currentFormatTab === 'video') {\r\n              formats = links.filter(link => link.type === 'video');\r\n          } else {\r\n              formats = links.filter(link => link.type === 'audio');\r\n          }\r\n  \r\n          formats.forEach((format, index) => {\r\n              const formatCard = document.createElement('div');\r\n              formatCard.className = 'yvv-format-option';\r\n  \r\n              \/\/ Check if this format is currently playing\r\n              const isPlaying = currentPlayingFormat &&\r\n                  ((currentFormatTab === 'video' && currentPlayingFormat.quality === format.resolution && currentPlayingFormat.type === 'video') ||\r\n                      (currentFormatTab === 'audio' && currentPlayingFormat.type === 'audio'));\r\n  \r\n              if (isPlaying) {\r\n                  formatCard.classList.add('playing');\r\n              }\r\n  \r\n              if (currentFormatTab === 'video') {\r\n                  \/\/ Check if this is 360p to hide download button\r\n                  const is360p = format.resolution.includes('360p');\r\n  \r\n                  formatCard.innerHTML = `\r\n                      <div class=\"yvv-format-header\">\r\n                          <div class=\"yvv-format-quality\">${format.resolution}<\/div>\r\n                          <div class=\"yvv-format-type-badge\">MP4<\/div>\r\n                      <\/div>\r\n                      <div class=\"yvv-format-actions\">\r\n                          <button class=\"yvv-action-btn yvv-stream-action ${isPlaying ? 'playing' : ''}\" onclick=\"yvv_streamVideo('${format.download_url}', '${format.resolution}')\">\r\n                              ${isPlaying ? '\u23f8 Playing' : '\u25b6 Stream'}\r\n                          <\/button>\r\n                          ${!is360p ? `<button class=\"yvv-action-btn yvv-download-action\" onclick=\"yvv_downloadFile('${format.download_url}', '${format.resolution}', 'video')\">\r\n                              \u2b07\ufe0f Download\r\n                          <\/button>` : ''}\r\n                      <\/div>\r\n                  `;\r\n              } else {\r\n                  formatCard.innerHTML = `\r\n                      <div class=\"yvv-format-header\">\r\n                          <div class=\"yvv-format-quality\">Audio Quality<\/div>\r\n                          <div class=\"yvv-format-type-badge\">MP3<\/div>\r\n                      <\/div>\r\n                      <div class=\"yvv-format-actions\">\r\n                          <button class=\"yvv-action-btn yvv-audio-action ${isPlaying ? 'playing' : ''}\" onclick=\"yvv_streamAudio('${format.download_url}')\">\r\n                              ${isPlaying ? '\ud83c\udfb5 Playing' : '\ud83c\udfb5 Stream Audio'}\r\n                          <\/button>\r\n                          <button class=\"yvv-action-btn yvv-download-action\" onclick=\"yvv_downloadFile('${format.download_url}', 'Audio', 'audio')\">\r\n                              \u2b07\ufe0f Download\r\n                          <\/button>\r\n                      <\/div>\r\n                  `;\r\n              }\r\n  \r\n              formatGrid.appendChild(formatCard);\r\n          });\r\n      }\r\n  \r\n      function yvv_streamVideo(url, resolution) {\r\n          yvv_streamVideoDirectly(url, resolution);\r\n          yvv_updateCurrentPlayingFormat(resolution, 'video');\r\n      }\r\n  \r\n      function yvv_streamAudio(url) {\r\n          const audioPlayer = document.getElementById('yvv-audioPlayer');\r\n          const audioPlayerSection = document.getElementById('yvv-audioPlayerSection');\r\n  \r\n          \/\/ Set audio source\r\n          audioPlayer.src = url;\r\n          audioPlayer.load();\r\n  \r\n          \/\/ Show audio player section\r\n          audioPlayerSection.style.display = 'block';\r\n          audioPlayerSection.scrollIntoView({ behavior: 'smooth' });\r\n  \r\n          \/\/ Reset controls\r\n          isAudioPlaying = false;\r\n          document.getElementById('yvv-audioPlayBtn').textContent = '\u25b6';\r\n  \r\n          \/\/ Setup event listeners\r\n          yvv_setupAudioEventListeners();\r\n  \r\n          \/\/ Update playing format\r\n          yvv_updateCurrentPlayingFormat('Audio', 'audio');\r\n  \r\n          \/\/ Hide video player if open\r\n          document.getElementById('yvv-videoPlayerSection').style.display = 'none';\r\n      }\r\n  \r\n      async function yvv_downloadFile(url, quality, type) {\r\n          const downloadBtn = event.target;\r\n          const originalText = downloadBtn.innerHTML;\r\n  \r\n          downloadBtn.disabled = true;\r\n          downloadBtn.innerHTML = '\u23f3 Preparing...';\r\n  \r\n          \/\/ Create abort controller for cancellation\r\n          downloadController = new AbortController();\r\n  \r\n          try {\r\n              yvv_showDownloadProgress(`Starting ${quality} download...`, 0);\r\n  \r\n              const response = await fetch(url, {\r\n                  signal: downloadController.signal\r\n              });\r\n  \r\n              if (!response.ok) {\r\n                  throw new Error(`HTTP error! status: ${response.status}`);\r\n              }\r\n  \r\n              const totalSize = parseInt(response.headers.get('content-length') || '0');\r\n              const reader = response.body.getReader();\r\n              let receivedSize = 0;\r\n              const chunks = [];\r\n  \r\n              while (true) {\r\n                  const { done, value } = await reader.read();\r\n  \r\n                  if (done) break;\r\n  \r\n                  chunks.push(value);\r\n                  receivedSize += value.length;\r\n  \r\n                  const progress = totalSize ? (receivedSize \/ totalSize) * 100 : 0;\r\n                  yvv_showDownloadProgress(`Downloading ${quality}...`, progress, receivedSize, totalSize);\r\n              }\r\n  \r\n              yvv_showDownloadProgress('Processing download...', 95, receivedSize, totalSize);\r\n  \r\n              \/\/ Create blob and download\r\n              const mimeType = type === 'video' ? 'video\/mp4' : 'audio\/mpeg';\r\n              const extension = type === 'video' ? 'mp4' : 'mp3';\r\n              const blob = new Blob(chunks, { type: mimeType });\r\n              const downloadUrl = URL.createObjectURL(blob);\r\n  \r\n              \/\/ Create download link\r\n              const a = document.createElement('a');\r\n              a.href = downloadUrl;\r\n              a.download = `${currentVideoData.title.replace(\/[^a-zA-Z0-9\\s]\/g, '_').trim()}_${quality}.${extension}`;\r\n              a.style.display = 'none';\r\n              document.body.appendChild(a);\r\n              a.click();\r\n              document.body.removeChild(a);\r\n  \r\n              \/\/ Clean up URL\r\n              setTimeout(() => URL.revokeObjectURL(downloadUrl), 1000);\r\n  \r\n              yvv_showDownloadProgress('Download completed!', 100, receivedSize, totalSize);\r\n              setTimeout(yvv_hideDownloadProgress, 3000);\r\n  \r\n          } catch (error) {\r\n              if (error.name === 'AbortError') {\r\n                  yvv_showDownloadProgress('Download cancelled', 0);\r\n                  setTimeout(yvv_hideDownloadProgress, 2000);\r\n              } else {\r\n                  yvv_showError(`Download failed: ${error.message}`);\r\n                  yvv_hideDownloadProgress();\r\n              }\r\n          } finally {\r\n              downloadBtn.disabled = false;\r\n              downloadBtn.innerHTML = originalText;\r\n              downloadController = null;\r\n          }\r\n      }\r\n  \r\n      function yvv_cancelDownload() {\r\n          if (downloadController) {\r\n              downloadController.abort();\r\n              downloadController = null;\r\n          }\r\n      }\r\n  \r\n      function yvv_setupVideoEventListeners() {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n  \r\n          \/\/ Remove existing event listeners\r\n          video.removeEventListener('timeupdate', yvv_updateVideoProgress);\r\n          video.removeEventListener('loadedmetadata', yvv_updateVideoProgress);\r\n          video.removeEventListener('ended', yvv_handleVideoEnded);\r\n  \r\n          \/\/ Add event listeners\r\n          video.addEventListener('timeupdate', yvv_updateVideoProgress);\r\n          video.addEventListener('loadedmetadata', yvv_updateVideoProgress);\r\n          video.addEventListener('ended', yvv_handleVideoEnded);\r\n  \r\n          \/\/ Initialize volume\r\n          const volumeSlider = document.getElementById('yvv-videoVolumeControl');\r\n          video.volume = volumeSlider.value \/ 100;\r\n      }\r\n  \r\n      function yvv_setupAudioEventListeners() {\r\n          const audio = document.getElementById('yvv-audioPlayer');\r\n  \r\n          \/\/ Remove existing event listeners\r\n          audio.removeEventListener('timeupdate', yvv_updateAudioProgress);\r\n          audio.removeEventListener('loadedmetadata', yvv_updateAudioProgress);\r\n          audio.removeEventListener('ended', yvv_handleAudioEnded);\r\n  \r\n          \/\/ Add event listeners\r\n          audio.addEventListener('timeupdate', yvv_updateAudioProgress);\r\n          audio.addEventListener('loadedmetadata', yvv_updateAudioProgress);\r\n          audio.addEventListener('ended', yvv_handleAudioEnded);\r\n  \r\n          \/\/ Initialize volume\r\n          const volumeSlider = document.getElementById('yvv-audioVolumeSlider');\r\n          audio.volume = volumeSlider.value \/ 100;\r\n      }\r\n  \r\n      function yvv_toggleVideoPlayback() {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n          const btn = document.getElementById('yvv-playPauseControl');\r\n  \r\n          if (isVideoPlaying) {\r\n              video.pause();\r\n              btn.textContent = '\u25b6';\r\n              isVideoPlaying = false;\r\n          } else {\r\n              video.play().catch(error => {\r\n                  console.error('Video playback failed:', error);\r\n                  yvv_showError('Video streaming not available. Please try another format.');\r\n              });\r\n              btn.textContent = '\u23f8';\r\n              isVideoPlaying = true;\r\n          }\r\n      }\r\n  \r\n      function yvv_toggleAudioPlayback() {\r\n          const audio = document.getElementById('yvv-audioPlayer');\r\n          const btn = document.getElementById('yvv-audioPlayBtn');\r\n  \r\n          if (isAudioPlaying) {\r\n              audio.pause();\r\n              btn.textContent = '\u25b6';\r\n              isAudioPlaying = false;\r\n              yvv_stopVisualizerAnimation();\r\n          } else {\r\n              audio.play().catch(error => {\r\n                  console.error('Audio playback failed:', error);\r\n                  yvv_showError('Audio streaming not available. Please try another format.');\r\n              });\r\n              btn.textContent = '\u23f8';\r\n              isAudioPlaying = true;\r\n              yvv_startVisualizerAnimation();\r\n          }\r\n      }\r\n  \r\n      function yvv_adjustVideoVolume(value) {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n          const volumeIcon = document.getElementById('yvv-videoVolumeIcon');\r\n  \r\n          video.volume = value \/ 100;\r\n  \r\n          if (value == 0) {\r\n              volumeIcon.textContent = '\ud83d\udd07';\r\n          } else if (value < 30) {\r\n              volumeIcon.textContent = '\ud83d\udd08';\r\n          } else if (value < 70) {\r\n              volumeIcon.textContent = '\ud83d\udd09';\r\n          } else {\r\n              volumeIcon.textContent = '\ud83d\udd0a';\r\n          }\r\n      }\r\n  \r\n      function yvv_adjustAudioVolume(value) {\r\n          const audio = document.getElementById('yvv-audioPlayer');\r\n          const volumeIcon = document.getElementById('yvv-audioVolumeIcon');\r\n  \r\n          audio.volume = value \/ 100;\r\n  \r\n          if (value == 0) {\r\n              volumeIcon.textContent = '\ud83d\udd07';\r\n          } else if (value < 30) {\r\n              volumeIcon.textContent = '\ud83d\udd08';\r\n          } else if (value < 70) {\r\n              volumeIcon.textContent = '\ud83d\udd09';\r\n          } else {\r\n              volumeIcon.textContent = '\ud83d\udd0a';\r\n          }\r\n      }\r\n  \r\n      function yvv_seekVideoTo(event) {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n          const progressBar = event.currentTarget;\r\n          const rect = progressBar.getBoundingClientRect();\r\n          const clickX = event.clientX - rect.left;\r\n          const percentage = clickX \/ rect.width;\r\n  \r\n          if (video.duration) {\r\n              video.currentTime = percentage * video.duration;\r\n          }\r\n      }\r\n  \r\n      function yvv_seekAudioTo(event) {\r\n          const audio = document.getElementById('yvv-audioPlayer');\r\n          const progressBar = event.currentTarget;\r\n          const rect = progressBar.getBoundingClientRect();\r\n          const clickX = event.clientX - rect.left;\r\n          const percentage = clickX \/ rect.width;\r\n  \r\n          if (audio.duration) {\r\n              audio.currentTime = percentage * audio.duration;\r\n          }\r\n      }\r\n  \r\n      function yvv_updateVideoProgress() {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n          const progressFill = document.getElementById('yvv-videoProgressFill');\r\n          const timeInfo = document.getElementById('yvv-videoTimeInfo');\r\n  \r\n          if (video.duration) {\r\n              const percentage = (video.currentTime \/ video.duration) * 100;\r\n              progressFill.style.width = percentage + '%';\r\n  \r\n              const currentTime = yvv_formatTime(video.currentTime);\r\n              const totalTime = yvv_formatTime(video.duration);\r\n              timeInfo.textContent = `${currentTime} \/ ${totalTime}`;\r\n          }\r\n      }\r\n  \r\n      function yvv_updateAudioProgress() {\r\n          const audio = document.getElementById('yvv-audioPlayer');\r\n          const progressFill = document.getElementById('yvv-audioProgressFill');\r\n          const timeInfo = document.getElementById('yvv-audioTimeInfo');\r\n  \r\n          if (audio.duration) {\r\n              const percentage = (audio.currentTime \/ audio.duration) * 100;\r\n              progressFill.style.width = percentage + '%';\r\n  \r\n              const currentTime = yvv_formatTime(audio.currentTime);\r\n              const totalTime = yvv_formatTime(audio.duration);\r\n              timeInfo.textContent = `${currentTime} \/ ${totalTime}`;\r\n          }\r\n      }\r\n  \r\n      function yvv_formatTime(seconds) {\r\n          const minutes = Math.floor(seconds \/ 60);\r\n          const remainingSeconds = Math.floor(seconds % 60);\r\n          return `${minutes}:${remainingSeconds.toString().padStart(2, '0')}`;\r\n      }\r\n  \r\n      function yvv_handleVideoEnded() {\r\n          document.getElementById('yvv-playPauseControl').textContent = '\u25b6';\r\n          isVideoPlaying = false;\r\n          document.getElementById('yvv-videoProgressFill').style.width = '0%';\r\n      }\r\n  \r\n      function yvv_handleAudioEnded() {\r\n          document.getElementById('yvv-audioPlayBtn').textContent = '\u25b6';\r\n          isAudioPlaying = false;\r\n          yvv_stopVisualizerAnimation();\r\n          document.getElementById('yvv-audioProgressFill').style.width = '0%';\r\n      }\r\n  \r\n      function yvv_closeVideoPlayer() {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n          const videoPlayerSection = document.getElementById('yvv-videoPlayerSection');\r\n          const thumbnailOverlay = document.getElementById('yvv-videoThumbnailOverlay');\r\n  \r\n          video.pause();\r\n          video.src = '';\r\n          videoPlayerSection.style.display = 'none';\r\n          thumbnailOverlay.classList.remove('hidden');\r\n          isVideoPlaying = false;\r\n          currentPlayingFormat = null;\r\n          document.getElementById('yvv-playPauseControl').textContent = '\u25b6';\r\n  \r\n          \/\/ Reset format indicators\r\n          document.querySelectorAll('.yvv-format-option').forEach(option => {\r\n              option.classList.remove('playing');\r\n          });\r\n          document.querySelectorAll('.yvv-stream-action').forEach(btn => {\r\n              btn.classList.remove('playing');\r\n              btn.innerHTML = btn.innerHTML.replace('\u23f8 Playing', '\u25b6 Stream');\r\n          });\r\n      }\r\n  \r\n      function yvv_startVisualizerAnimation() {\r\n          const bars = document.querySelectorAll('.yvv-visualizer-bar');\r\n          bars.forEach(bar => {\r\n              bar.style.animationPlayState = 'running';\r\n          });\r\n      }\r\n  \r\n      function yvv_stopVisualizerAnimation() {\r\n          const bars = document.querySelectorAll('.yvv-visualizer-bar');\r\n          bars.forEach(bar => {\r\n              bar.style.animationPlayState = 'paused';\r\n          });\r\n      }\r\n  \r\n      \/\/ Event listeners\r\n      document.getElementById('yvv-videoInput').addEventListener('keypress', function (e) {\r\n          if (e.key === 'Enter') {\r\n              yvv_loadVideo();\r\n          }\r\n      });\r\n  \r\n      document.getElementById('yvv-videoInput').addEventListener('input', function (e) {\r\n          const url = e.target.value.trim();\r\n          if (url && !yvv_isValidYouTubeURL(url)) {\r\n              e.target.classList.add('error');\r\n          } else {\r\n              e.target.classList.remove('error');\r\n              yvv_hideError();\r\n          }\r\n      });\r\n  \r\n      \/\/ Auto-focus on input\r\n      document.getElementById('yvv-videoInput').focus();\r\n  <\/script>\r\n  \r\n  \r\n  \r\n    <noscript>\r\n      <style type=\"text\/css\">\r\n        [data-aos] {\r\n          opacity: 1 !important;\r\n          transform: translate(0) scale(1) !important;\r\n        }\r\n      <\/style>\r\n    <\/noscript>\r\n\r\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.0\/dist\/js\/bootstrap.bundle.min.js\"><\/script>\r\n    <script src=\"https:\/\/unpkg.com\/aos@2.3.1\/dist\/aos.js\"><\/script>\r\n\r\n    <script>\r\n          if (typeof AOS !== 'undefined') {\r\n              AOS.init({\r\n                  duration: 800,\r\n                  easing: 'ease-in-out',\r\n                  once: true\r\n              });\r\n          } else {\r\n              document.querySelectorAll('[data-aos]').forEach(function (el) {\r\n                  el.removeAttribute('data-aos');\r\n              });\r\n          }\r\n\r\n          document.querySelectorAll('a[href^=\"#\"]').forEach(anchor => {\r\n              anchor.addEventListener('click', function (e) {\r\n                  const id = this.getAttribute('href');\r\n                  if (!id || id === '#') return;\r\n                  const target = document.querySelector(id);\r\n                  if (target) {\r\n                      e.preventDefault();\r\n                      target.scrollIntoView({ behavior: 'smooth' });\r\n                  }\r\n              });\r\n          });\r\n    <\/script>\r\n  \r\n  <grammarly-desktop-integration data-grammarly-shadow-root=\"true\"><\/grammarly-desktop-integration><grammarly-desktop-integration data-grammarly-shadow-root=\"true\"><\/grammarly-desktop-integration>\r\n  <script defer=\"\" src=\"https:\/\/static.cloudflareinsights.com\/beacon.min.js\/vcd15cbe7772f49c399c6a5babf22c1241717689176015\" integrity=\"sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==\" data-cf-beacon=\"{\"version\":\"2024.11.0\",\"token\":\"786b797d7952407aac48ed2776a3a826\",\"r\":1,\"server_timing\":{\"name\":{\"cfCacheStatus\":true,\"cfEdge\":true,\"cfExtPri\":true,\"cfL4\":true,\"cfOrigin\":true,\"cfSpeedBrain\":true},\"location_startswith\":null}}\" crossorigin=\"anonymous\"><\/script>\r\n  <script defer=\"\" src=\"https:\/\/static.cloudflareinsights.com\/beacon.min.js\/vcd15cbe7772f49c399c6a5babf22c1241717689176015\" integrity=\"sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==\" data-cf-beacon=\"{\"version\":\"2024.11.0\",\"token\":\"786b797d7952407aac48ed2776a3a826\",\"r\":1,\"server_timing\":{\"name\":{\"cfCacheStatus\":true,\"cfEdge\":true,\"cfExtPri\":true,\"cfL4\":true,\"cfOrigin\":true,\"cfSpeedBrain\":true},\"location_startswith\":null}}\" crossorigin=\"anonymous\"><\/script>\r\n  <script defer=\"\" src=\"https:\/\/static.cloudflareinsights.com\/beacon.min.js\/v8c78df7c7c0f484497ecbca7046644da1771523124516\" integrity=\"sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==\" data-cf-beacon=\"{\"version\":\"2024.11.0\",\"token\":\"786b797d7952407aac48ed2776a3a826\",\"r\":1,\"server_timing\":{\"name\":{\"cfCacheStatus\":true,\"cfEdge\":true,\"cfExtPri\":true,\"cfL4\":true,\"cfOrigin\":true,\"cfSpeedBrain\":true},\"location_startswith\":null}}\" crossorigin=\"anonymous\"><\/script>\r\n [\/et_pb_fullwidth_code][\/et_pb_section]\n","protected":false},"excerpt":{"rendered":"    <link rel=\"canonical\" href=\"\">\r\n  \r\n     \r\n      \r\n      <!-- Google Fonts - Premium Typography -->\r\n      <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n      <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\">\r\n      <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Space+Grotesk:wght@300;400;500;600;700&family=Manrope:wght@300;400;500;600;700;800&display=swap\" rel=\"stylesheet\">\r\n      \r\n      <!-- Bootstrap CSS -->\r\n      <link href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.0\/dist\/css\/bootstrap.min.css\" rel=\"stylesheet\">\r\n      <!-- Boxicons -->\r\n      <link href=\"https:\/\/unpkg.com\/boxicons@2.1.4\/css\/boxicons.min.css\" rel=\"stylesheet\">\r\n      <!-- AOS Animation -->\r\n      <link href=\"https:\/\/unpkg.com\/aos@2.3.1\/dist\/aos.css\" rel=\"stylesheet\">\r\n      <!-- Font Awesome CSS -->\r\n      <link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/5.15.3\/css\/all.min.css\" rel=\"stylesheet\">\r\n  \r\n  \r\n  <style id=\"vvvebjs-styles\">\r\n      html{\r\n          overflow-x: hidden;\r\n      }\r\n      :root {\r\n              --va-purple: #8a6cfc;\r\n              --va-purple-hover: #7355e8;\r\n              --va-black: #000000;\r\n              --va-white: #ffffff;\r\n              --ytvv-primary-color: var(--va-purple);\r\n              --ytvv-secondary-color: #1a1a1a;\r\n              --ytvv-dark-color: var(--va-black);\r\n              --ytvv-light-color: var(--va-white);\r\n              --ytvv-gray-color: #f5f5f7;\r\n              --ytvv-primary-hover: var(--va-purple-hover);\r\n              --ytvv-secondary-hover: #333333;\r\n              --ytvv-section-padding: 100px 0;\r\n          }\r\n          \r\n\/*           body {\r\n              font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\r\n              scroll-behavior: smooth;\r\n              overflow-x: hidden;\r\n              background-color: var(--ytvv-light-color);\r\n              color: var(--ytvv-dark-color);\r\n          }\r\n      h1, h2, h3, h4, h5, h6 {\r\n          font-family: 'Space Grotesk', -apple-system, BlinkMacSystemFont, sans-serif;\r\n          font-weight: bold; \r\n      } *\/\r\n    \r\n      \/* YouTube-style Hero Section *\/\r\n      .ytvv-hero-section {\r\n              padding: var(--ytvv-section-padding);\r\n              text-align: center;\r\n              background-color: var(--ytvv-light-color);\r\n          }\r\n          \r\n          .ytvv-hero-content {\r\n              position: relative;\r\n              z-index: 1;\r\n          }\r\n          \r\n          .ytvv-hero-section h1 {\r\n              font-size: 3.5rem;\r\n              font-weight: 700;\r\n              margin-bottom: 1.5rem;\r\n              color: var(--ytvv-primary-color);\r\n          }\r\n          \r\n          .ytvv-hero-section p {\r\n              font-size: 1.25rem;\r\n              max-width: 700px;\r\n              margin: 0 auto 2rem;\r\n              opacity: 0.9;\r\n              font-weight: 300;\r\n              color: #333;\r\n          }\r\n          \r\n          \/* Work Process Section with YouTube Colors *\/\r\n          .ytvv-work-process-section {\r\n              padding: var(--ytvv-section-padding);\r\n              background: var(--ytvv-primary-color);\r\n              color: white;\r\n              position: relative;\r\n              overflow: hidden;\r\n          }\r\n          \r\n          .ytvv-work-process-section::before {\r\n              content: '';\r\n              position: absolute;\r\n              top: 0;\r\n              left: 0;\r\n              width: 100%;\r\n              height: 100%;\r\n              background: rgba(0,0,0,0.05);\r\n          }\r\n          \r\n          .ytvv-work-process-content {\r\n              position: relative;\r\n              z-index: 1;\r\n          }\r\n          \r\n          .ytvv-process-step {\r\n              text-align: center;\r\n              padding: 30px 20px;\r\n              position: relative;\r\n              z-index: 1;\r\n              background: rgba(255,255,255,0.1);\r\n              backdrop-filter: blur(10px);\r\n              border-radius: 16px;\r\n              margin: 15px;\r\n              border: 1px solid rgba(255,255,255,0.2);\r\n              transition: all 0.3s ease;\r\n          }\r\n          \r\n          .ytvv-process-step:hover {\r\n              transform: translateY(-10px);\r\n              background: rgba(255,255,255,0.15);\r\n              box-shadow: 0 15px 30px rgba(0,0,0,0.2);\r\n          }\r\n          \r\n          .ytvv-step-number {\r\n              width: 60px;\r\n              height: 60px;\r\n              background: white;\r\n              color: var(--ytvv-primary-color);\r\n              border-radius: 50%;\r\n              display: flex;\r\n              align-items: center;\r\n              justify-content: center;\r\n              font-weight: 700;\r\n              margin: 0 auto 20px;\r\n              font-size: 1.5rem;\r\n              box-shadow: 0 5px 15px rgba(0,0,0,0.1);\r\n          }\r\n          \r\n          \/* Features Section *\/\r\n          .ytvv-features-section {\r\n              padding: var(--ytvv-section-padding);\r\n              background: white;\r\n          }\r\n          \r\n          .ytvv-feature-card {\r\n              padding: 40px 30px;\r\n              border-radius: 16px;\r\n              background: white;\r\n              box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);\r\n              margin-bottom: 30px;\r\n              transition: all 0.3s ease;\r\n              border: 1px solid rgba(0,0,0,0.05);\r\n              height: 100%;\r\n              position: relative;\r\n              overflow: hidden;\r\n          }\r\n          \r\n          .ytvv-feature-card::before {\r\n              content: '';\r\n              position: absolute;\r\n              top: 0;\r\n              left: 0;\r\n              width: 4px;\r\n              height: 100%;\r\n              background: var(--ytvv-primary-color);\r\n              transition: all 0.3s ease;\r\n          }\r\n          \r\n          .ytvv-feature-card:hover {\r\n              transform: translateY(-10px);\r\n              box-shadow: 0 15px 40px rgba(0,0,0,0.1);\r\n          }\r\n          \r\n          .ytvv-feature-card:hover::before {\r\n              width: 100%;\r\n              opacity: 0.1;\r\n          }\r\n          \r\n          .ytvv-feature-icon {\r\n              width: 70px;\r\n              height: 70px;\r\n              border-radius: 20px;\r\n              display: flex;\r\n              align-items: center;\r\n              justify-content: center;\r\n              margin-bottom: 25px;\r\n              background: var(--ytvv-primary-color);\r\n              color: white;\r\n              font-size: 1.8rem;\r\n              transition: all 0.3s ease;\r\n          }\r\n          \r\n          .ytvv-feature-card:hover .ytvv-feature-icon {\r\n              transform: rotate(15deg) scale(1.1);\r\n              background: var(--ytvv-primary-hover);\r\n          }\r\n          \r\n          \/* Why Choose Section *\/\r\n          .ytvv-why-choose-section {\r\n              padding: var(--ytvv-section-padding);\r\n              background: #f9f9f9;\r\n          }\r\n          \r\n          .ytvv-why-choose-image {\r\n              border-radius: 16px;\r\n              overflow: hidden;\r\n              box-shadow: 0 20px 40px rgba(0,0,0,0.1);\r\n              transform: perspective(1000px) rotateY(-5deg);\r\n              transition: all 0.5s ease;\r\n          }\r\n          \r\n          .ytvv-why-choose-image:hover {\r\n              transform: perspective(1000px) rotateY(0deg);\r\n          }\r\n          \r\n          .ytvv-benefit-item {\r\n              display: flex;\r\n              align-items: flex-start;\r\n              margin-bottom: 20px;\r\n              padding: 15px;\r\n              border-radius: 12px;\r\n              background: white;\r\n              box-shadow: 0 5px 15px rgba(0,0,0,0.03);\r\n              transition: all 0.3s ease;\r\n          }\r\n          \r\n          .ytvv-benefit-item:hover {\r\n              transform: translateX(10px);\r\n              box-shadow: 0 10px 25px rgba(0,0,0,0.1);\r\n          }\r\n          \r\n          .ytvv-benefit-icon {\r\n              width: 40px;\r\n              height: 40px;\r\n              border-radius: 12px;\r\n              display: flex;\r\n              align-items: center;\r\n              justify-content: center;\r\n              margin-right: 15px;\r\n              background: var(--ytvv-primary-color);\r\n              color: white;\r\n              font-size: 1.2rem;\r\n              flex-shrink: 0;\r\n          }\r\n          \r\n          \/* FAQ Section *\/\r\n          .ytvv-faq-section {\r\n              padding: var(--ytvv-section-padding);\r\n              background: white;\r\n          }\r\n          \r\n          .ytvv-accordion-item {\r\n              border: none;\r\n              border-radius: 12px !important;\r\n              overflow: hidden;\r\n              margin-bottom: 15px;\r\n              box-shadow: 0 5px 15px rgba(0,0,0,0.05);\r\n          }\r\n          \r\n          .ytvv-accordion-button {\r\n              font-weight: 600;\r\n              color: var(--ytvv-dark-color);\r\n              padding: 20px 25px;\r\n              background: white;\r\n              box-shadow: none;\r\n              border-radius: 12px 12px 0 0 !important;\r\n          }\r\n          \r\n          .ytvv-accordion-button:not(.collapsed) {\r\n              background: white;\r\n              color: var(--ytvv-primary-color);\r\n              box-shadow: none;\r\n          }\r\n          \r\n          .ytvv-accordion-button:focus {\r\n              box-shadow: none;\r\n              border-color: rgba(138, 108, 252, 0.35);\r\n          }\r\n          \r\n          .ytvv-accordion-button::after {\r\n              background-image: url(\"data:image\/svg+xml,%3csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 16 16' fill='%238a6cfc'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'\/%3e%3c\/svg%3e\");\r\n          }\r\n          \r\n          .ytvv-accordion-body {\r\n              padding: 25px;\r\n              color: #333;\r\n          }\r\n          \r\n          \/* Section Titles *\/\r\n          .ytvv-section-title {\r\n              font-weight: 700;\r\n              color: var(--ytvv-dark-color);\r\n              margin-bottom: 1.5rem;\r\n              position: relative;\r\n              display: inline-block;\r\n          }\r\n          \r\n          .ytvv-section-title::after {\r\n              content: '';\r\n              position: absolute;\r\n              bottom: -10px;\r\n              left: 0;\r\n              width: 60px;\r\n              height: 4px;\r\n              background: var(--ytvv-primary-color);\r\n              border-radius: 2px;\r\n          }\r\n          \r\n          .ytvv-light-title {\r\n              color: white;\r\n          }\r\n          \r\n          .ytvv-light-title::after {\r\n              background: white;\r\n          }\r\n          \r\n          .ytvv-section-subtitle {\r\n              color: #333;\r\n              max-width: 700px;\r\n              margin: 0 auto 3rem;\r\n              font-size: 1.1rem;\r\n          }\r\n          \r\n          .ytvv-light-subtitle {\r\n              color: rgba(255,255,255,0.8);\r\n          }\r\n          \r\n          \/* Responsive Design *\/\r\n          @media (max-width: 991px) {\r\n              :root {\r\n                  --ytvv-section-padding: 80px 0;\r\n              }\r\n              \r\n              .ytvv-hero-section h1 {\r\n                  font-size: 2.8rem;\r\n              }\r\n              \r\n              .ytvv-process-step::before {\r\n                  display: none;\r\n              }\r\n          }\r\n          \r\n          @media (max-width: 767px) {\r\n              :root {\r\n                  --ytvv-section-padding: 70px 0;\r\n              }\r\n              \r\n              .ytvv-hero-section {\r\n                  padding: 100px 0 60px;\r\n              }\r\n              \r\n              .ytvv-hero-section h1 {\r\n                  font-size: 2.2rem;\r\n              }\r\n              \r\n              .ytvv-hero-section p {\r\n                  font-size: 1rem;\r\n              }\r\n              \r\n              .ytvv-section-title {\r\n                  font-size: 1.8rem;\r\n              }\r\n          }\r\n          \r\n          \/* Animation *\/\r\n          @keyframes ytvv-float {\r\n              0% { transform: translateY(0px); }\r\n              50% { transform: translateY(-15px); }\r\n              100% { transform: translateY(0px); }\r\n          }\r\n          \r\n          .ytvv-floating-element {\r\n              animation: ytvv-float 6s ease-in-out infinite;\r\n          }\r\n          \r\n          \/* Custom Scrollbar *\/\r\n          ::-webkit-scrollbar {\r\n              width: 8px;\r\n          }\r\n          \r\n          ::-webkit-scrollbar-track {\r\n              background: #f1f1f1;\r\n          }\r\n          \r\n          ::-webkit-scrollbar-thumb {\r\n              background: var(--ytvv-primary-color);\r\n              border-radius: 10px;\r\n          }\r\n          \r\n          ::-webkit-scrollbar-thumb:hover {\r\n              background: var(--ytvv-primary-hover);\r\n          }\r\n        \r\n  \r\n  <\/style>\r\n  <!-- tools -->\r\n  <style>\r\n      @import url('https:\/\/fonts.googleapis.com\/css2?family=Outfit:wght@300;400;500;600;700;800;900&display=swap');\r\n  \r\n      * {\r\n          margin: 0;\r\n          padding: 0;\r\n          box-sizing: border-box;\r\n      }\r\n  \r\n      :root {\r\n          --primary-color: #8a6cfc;\r\n          --primary-light: #a78bfa;\r\n          --secondary-color: #7355e8;\r\n          --secondary-light: #b8a0fd;\r\n          --accent-color: #8a6cfc;\r\n          --accent-light: #c4b5fd;\r\n          --success-color: #8a6cfc;\r\n          --success-light: #a78bfa;\r\n          --warning-color: #7355e8;\r\n          --warning-light: #8a6cfc;\r\n          --danger-color: #DC2626;\r\n          --danger-light: #EF4444;\r\n          --bg-primary: #ffffff;\r\n          --bg-secondary: #fafafa;\r\n          --bg-tertiary: #f0f0f5;\r\n          --bg-card: #ffffff;\r\n          --glass-bg: rgba(138, 108, 252, 0.08);\r\n          --glass-border: rgba(138, 108, 252, 0.25);\r\n          --text-primary: #000000;\r\n          --text-secondary: #333333;\r\n          --text-muted: rgba(0, 0, 0, 0.5);\r\n          --text-accent: #8a6cfc;\r\n          --shadow-sm: 0 2px 8px rgba(138, 108, 252, 0.12);\r\n          --shadow-md: 0 4px 16px rgba(138, 108, 252, 0.14);\r\n          --shadow-lg: 0 8px 32px rgba(138, 108, 252, 0.16);\r\n          --shadow-xl: 0 16px 48px rgba(138, 108, 252, 0.12);\r\n          --border-radius: 16px;\r\n          --border-radius-lg: 24px;\r\n      }\r\n  \r\n      .custom-hero-tools-ytvv{\r\n          font-family: 'Outfit', sans-serif;\r\n          background: #ffffff;\r\n          padding: 80px 0;\r\n          line-height: 1.6;\r\n          color: var(--text-primary);\r\n          position: relative;\r\n          overflow-x: hidden;\r\n          margin-top: 0;\r\n          border-bottom: 1px solid rgba(138, 108, 252, 0.15);\r\n      }\r\n  \r\n      .custom-hero-tools-ytvv::before {\r\n          content: '';\r\n          position: fixed;\r\n          top: 0;\r\n          left: 0;\r\n          width: 100%;\r\n          height: 100%;\r\n          background:\r\n              radial-gradient(circle at 20% 20%, rgba(138, 108, 252, 0.08) 0%, transparent 50%),\r\n              radial-gradient(circle at 80% 80%, rgba(138, 108, 252, 0.06) 0%, transparent 50%),\r\n              radial-gradient(circle at 50% 50%, rgba(167, 139, 250, 0.05) 0%, transparent 50%);\r\n          pointer-events: none;\r\n          z-index: -1;\r\n      }\r\n  \r\n      .yvv-container {\r\n          max-width: 1400px;\r\n          margin: 0 auto;\r\n          padding: 20px;\r\n          position: relative;\r\n          z-index: 1;\r\n      }\r\n  \r\n      \/* Header Section *\/\r\n      .yvv-header {\r\n          text-align: center;\r\n          margin-bottom: 40px;\r\n          padding: 40px 0;\r\n          animation: fadeInDown 1s ease-out;\r\n      }\r\n  \r\n      .yvv-brand-logo {\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          gap: 25px;\r\n          margin-bottom: 25px;\r\n          flex-wrap: wrap;\r\n      }\r\n  \r\n    .yvv-brand-icon {\r\n      width: 80px;\r\n      height: 80px;\r\n      background: linear-gradient(135deg, #8a6cfc, #7355e8);\r\n      border-radius: var(--border-radius);\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      color: #ffffff;\r\n      font-size: 36px;\r\n      font-weight: 800;\r\n      box-shadow: var(--shadow-lg);\r\n      animation: float 4s ease-in-out infinite;\r\n      position: relative;\r\n  }\r\n  \r\n      .yvv-brand-icon::after {\r\n          content: '';\r\n          position: absolute;\r\n          inset: -2px;\r\n          background: linear-gradient(135deg, var(--primary-light), var(--accent-light));\r\n          border-radius: var(--border-radius);\r\n          z-index: -1;\r\n          opacity: 0.5;\r\n          animation: pulse 2s ease-in-out infinite;\r\n      }\r\n  \r\n  .yvv-brand-title {\r\n      font-size: clamp(2.25rem, 5vw, 3.5rem);\r\n      font-weight: 800;\r\n      color: #000000;\r\n      letter-spacing: -0.02em;\r\n      line-height: 1.15;\r\n      margin: 0;\r\n      -webkit-text-fill-color: unset;\r\n      background: none;\r\n      text-shadow: none;\r\n  }\r\n\r\n  .yvv-brand-title .va-cap {\r\n      color: #8a6cfc;\r\n      font-size: 1.12em;\r\n      font-weight: 900;\r\n  }\r\n  \r\n  .yvv-brand-subtitle {\r\n      color: #333333;\r\n      font-size: 20px;\r\n      font-weight: 500;\r\n      margin-bottom: 30px;\r\n      max-width: 700px;\r\n      margin-left: auto;\r\n      margin-right: auto;\r\n  }\r\n  \r\n      .yvv-feature-badges {\r\n          display: flex;\r\n          justify-content: center;\r\n          gap: 15px;\r\n          flex-wrap: wrap;\r\n      }\r\n  \r\n     .yvv-feature-badge {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      background: #fafafa;\r\n      backdrop-filter: blur(20px);\r\n      border: 1px solid var(--glass-border);\r\n      padding: 12px 24px;\r\n      border-radius: 50px;\r\n      color: #000000;\r\n      font-size: 14px;\r\n      font-weight: 600;\r\n      transition: all 0.3s ease;\r\n  }\r\n  \r\n      .yvv-feature-badge:hover {\r\n          transform: translateY(-3px);\r\n          box-shadow: var(--shadow-md);\r\n          background: rgba(138, 108, 252, 0.08);\r\n      }\r\n  \r\n      .yvv-badge-icon {\r\n          width: 20px;\r\n          height: 20px;\r\n          background: linear-gradient(135deg, #8a6cfc, #7355e8);\r\n          border-radius: 50%;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          font-size: 10px;\r\n          color: white;\r\n          font-weight: 700;\r\n      }\r\n  \r\n      \/* Search Section *\/\r\n  .yvv-search-section {\r\n      background: #ffffff;\r\n      border: 1px solid rgba(138, 108, 252, 0.25);\r\n      padding: 40px;\r\n      border-radius: var(--border-radius-lg);\r\n      box-shadow: var(--shadow-xl);\r\n      margin-bottom: 40px;\r\n      animation: fadeInUp 1s ease-out 0.2s both;\r\n      position: relative;\r\n      overflow: hidden;\r\n  }\r\n  \r\n      .yvv-search-section::before {\r\n          content: '';\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          height: 2px;\r\n          background: linear-gradient(90deg, var(--primary-color), var(--accent-color), var(--secondary-color));\r\n      }\r\n  \r\n      .yvv-search-form {\r\n          display: flex;\r\n          gap: 20px;\r\n          margin-bottom: 25px;\r\n          position: relative;\r\n      }\r\n  \r\n  .yvv-search-input {\r\n      flex: 1 !important;\r\n      padding: 20px 25px !important;\r\n      background: #ffffff !important;\r\n      border: 2px solid rgba(0, 0, 0, 0.12) !important;\r\n      border-radius: var(--border-radius) !important;\r\n      color: #000000 !important;\r\n      font-size: 16px !important;\r\n      font-weight: 500 !important;\r\n      transition: all 0.3s ease !important;\r\n      outline: none !important;\r\n      font-family: inherit !important;\r\n  }\r\n  \r\n      .yvv-search-input:focus {\r\n          border-color: #8a6cfc !important;\r\n          box-shadow: 0 0 0 4px rgba(138, 108, 252, 0.2) !important;\r\n          transform: translateY(-2px) !important;\r\n      }\r\n  \r\n      .yvv-search-input.error {\r\n          border-color: var(--danger-color) !important;\r\n          box-shadow: 0 0 0 4px rgba(220, 38, 38, 0.1) !important;\r\n      }\r\n  \r\n      .yvv-search-input::placeholder {\r\n          color: var(--text-muted) !important;\r\n          font-weight: 400 !important;\r\n      }\r\n  \r\n  .yvv-search-btn {\r\n      padding: 20px 40px;\r\n      background: linear-gradient(135deg, #8a6cfc, #7355e8);\r\n      color: white;\r\n      border: none;\r\n      border-radius: var(--border-radius);\r\n      font-size: 16px;\r\n      font-weight: 700;\r\n      cursor: pointer;\r\n      transition: all 0.3s ease;\r\n      min-width: 200px;\r\n      position: relative;\r\n      overflow: hidden;\r\n      box-shadow: var(--shadow-md);\r\n      font-family: inherit;\r\n  }\r\n  \r\n      .yvv-search-btn:hover:not(:disabled) {\r\n          transform: translateY(-3px);\r\n          box-shadow: var(--shadow-lg);\r\n          background: linear-gradient(135deg, var(--primary-light), var(--accent-color));\r\n      }\r\n  \r\n      .yvv-search-btn:disabled {\r\n          opacity: 0.6;\r\n          cursor: not-allowed;\r\n          transform: none;\r\n      }\r\n  \r\n      .yvv-loading-indicator {\r\n          display: none;\r\n          text-align: center;\r\n          padding: 30px;\r\n          color: var(--text-primary);\r\n      }\r\n  \r\n      .yvv-error-display {\r\n          background: rgba(220, 38, 38, 0.1);\r\n          border: 1px solid rgba(220, 38, 38, 0.3);\r\n          color: var(--danger-light);\r\n          padding: 20px 25px;\r\n          border-radius: var(--border-radius);\r\n          margin-top: 20px;\r\n          display: none;\r\n          font-weight: 500;\r\n      }\r\n  \r\n      \/* Video Player Section - Full Interface *\/\r\n      .yvv-video-player-section {\r\n          display: none;\r\n          background: var(--bg-secondary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: var(--border-radius-lg);\r\n          overflow: hidden;\r\n          box-shadow: var(--shadow-xl);\r\n          margin-bottom: 40px;\r\n          animation: slideInUp 0.8s ease-out;\r\n      }\r\n  \r\n      .yvv-video-header {\r\n          background: linear-gradient(135deg, var(--bg-tertiary), var(--bg-card));\r\n          padding: 25px 30px;\r\n          border-bottom: 1px solid rgba(138, 108, 252, 0.1);\r\n          display: flex;\r\n          justify-content: space-between;\r\n          align-items: center;\r\n      }\r\n  \r\n      .yvv-video-title {\r\n          color: var(--text-primary);\r\n          font-size: 24px;\r\n          font-weight: 700;\r\n          margin: 0;\r\n          flex: 1;\r\n          margin-right: 20px;\r\n      }\r\n  \r\n      .yvv-current-quality-badge {\r\n          background: linear-gradient(135deg, var(--success-color), var(--success-light));\r\n          color: white;\r\n          padding: 8px 16px;\r\n          border-radius: 20px;\r\n          font-size: 14px;\r\n          font-weight: 600;\r\n          margin-right: 15px;\r\n      }\r\n  \r\n      .yvv-close-viewer-btn {\r\n          background: var(--danger-color);\r\n          border: none;\r\n          border-radius: 50%;\r\n          width: 40px;\r\n          height: 40px;\r\n          color: white;\r\n          font-size: 18px;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n      }\r\n  \r\n      .yvv-close-viewer-btn:hover {\r\n          background: var(--danger-light);\r\n          transform: scale(1.1);\r\n      }\r\n  \r\n      .yvv-video-container {\r\n          position: relative;\r\n          background: #000;\r\n          width: 100%;\r\n      }\r\n  \r\n      .yvv-main-video {\r\n          width: 100%;\r\n          height: 70vh;\r\n          max-height: 600px;\r\n          min-height: 400px;\r\n          background: #000;\r\n          border: none;\r\n          outline: none;\r\n          display: block;\r\n      }\r\n  \r\n      \/* Video Thumbnail Overlay *\/\r\n      .yvv-video-thumbnail-overlay {\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          bottom: 0;\r\n          background-size: cover;\r\n          background-position: center;\r\n          background-repeat: no-repeat;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n      }\r\n  \r\n      .yvv-video-thumbnail-overlay.hidden {\r\n          display: none;\r\n      }\r\n  \r\n      .yvv-thumbnail-play-btn {\r\n          width: 100px;\r\n          height: 100px;\r\n          background: rgba(0, 0, 0, 0.8);\r\n          border: 4px solid white;\r\n          border-radius: 50%;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          color: white;\r\n          font-size: 36px;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          backdrop-filter: blur(10px);\r\n      }\r\n  \r\n      .yvv-thumbnail-play-btn:hover {\r\n          transform: scale(1.1);\r\n          background: rgba(0, 0, 0, 0.9);\r\n      }\r\n  \r\n      \/* Video Controls - Below Video *\/\r\n      .yvv-video-controls-section {\r\n          background: var(--bg-tertiary);\r\n          padding: 20px 30px;\r\n          border-top: 1px solid rgba(138, 108, 252, 0.1);\r\n      }\r\n  \r\n      .yvv-video-controls {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 20px;\r\n      }\r\n  \r\n      .yvv-control-btn {\r\n          width: 50px;\r\n          height: 50px;\r\n          background: linear-gradient(135deg, var(--primary-color), var(--primary-light));\r\n          border: none;\r\n          border-radius: 50%;\r\n          color: white;\r\n          font-size: 18px;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          box-shadow: var(--shadow-sm);\r\n      }\r\n  \r\n      .yvv-control-btn:hover {\r\n          transform: scale(1.1);\r\n          box-shadow: var(--shadow-md);\r\n      }\r\n  \r\n      .yvv-progress-section {\r\n          flex: 1;\r\n          margin: 0 20px;\r\n      }\r\n  \r\n      .yvv-progress-bar {\r\n          width: 100%;\r\n          height: 10px;\r\n          background: rgba(0, 0, 0, 0.1);\r\n          border-radius: 5px;\r\n          cursor: pointer;\r\n          position: relative;\r\n          overflow: hidden;\r\n          margin-bottom: 8px;\r\n      }\r\n  \r\n      .yvv-progress-fill {\r\n          height: 100%;\r\n          background: linear-gradient(135deg, var(--secondary-color), var(--secondary-light));\r\n          border-radius: 5px;\r\n          width: 0%;\r\n          transition: width 0.1s ease;\r\n          box-shadow: 0 2px 8px rgba(138, 108, 252, 0.35);\r\n      }\r\n  \r\n      .yvv-time-info {\r\n          color: var(--text-primary);\r\n          font-size: 14px;\r\n          font-weight: 600;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-volume-section {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 10px;\r\n          min-width: 120px;\r\n      }\r\n  \r\n      .yvv-volume-icon {\r\n          color: var(--text-primary);\r\n          font-size: 18px;\r\n          width: 24px;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-volume-control {\r\n          width: 80px;\r\n          height: 8px;\r\n          background: rgba(0, 0, 0, 0.1);\r\n          border-radius: 4px;\r\n          outline: none;\r\n          cursor: pointer;\r\n          -webkit-appearance: none;\r\n          appearance: none;\r\n      }\r\n  \r\n      .yvv-volume-control::-webkit-slider-thumb {\r\n          -webkit-appearance: none;\r\n          appearance: none;\r\n          width: 16px;\r\n          height: 16px;\r\n          background: var(--primary-color);\r\n          border-radius: 50%;\r\n          cursor: pointer;\r\n          box-shadow: 0 2px 6px rgba(138, 108, 252, 0.4);\r\n      }\r\n  \r\n      .yvv-volume-control::-moz-range-thumb {\r\n          width: 16px;\r\n          height: 16px;\r\n          background: var(--primary-color);\r\n          border-radius: 50%;\r\n          cursor: pointer;\r\n          border: none;\r\n          box-shadow: 0 2px 6px rgba(138, 108, 252, 0.4);\r\n      }\r\n  \r\n      \/* Video Info Section *\/\r\n      .yvv-video-info-section {\r\n          display: none;\r\n          background: var(--bg-secondary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: var(--border-radius-lg);\r\n          padding: 35px;\r\n          box-shadow: var(--shadow-xl);\r\n          margin-bottom: 40px;\r\n          animation: slideInLeft 0.8s ease-out;\r\n      }\r\n  \r\n      .yvv-video-metadata {\r\n          display: grid;\r\n          grid-template-columns: auto 1fr;\r\n          gap: 30px;\r\n          align-items: start;\r\n          margin-bottom: 30px;\r\n      }\r\n  \r\n      .yvv-video-thumbnail {\r\n          width: 160px;\r\n          height: 120px;\r\n          border-radius: var(--border-radius);\r\n          object-fit: cover;\r\n          box-shadow: var(--shadow-md);\r\n      }\r\n  \r\n      .yvv-video-details {\r\n          display: flex;\r\n          flex-direction: column;\r\n          gap: 15px;\r\n      }\r\n  \r\n      .yvv-video-details h2 {\r\n          color: var(--text-primary);\r\n          font-size: 28px;\r\n          font-weight: 700;\r\n          line-height: 1.3;\r\n          margin: 0;\r\n      }\r\n  \r\n      .yvv-video-stats {\r\n          display: flex;\r\n          gap: 25px;\r\n          flex-wrap: wrap;\r\n      }\r\n  \r\n      .yvv-stat-item {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 10px;\r\n          color: var(--text-secondary);\r\n          font-size: 16px;\r\n          font-weight: 500;\r\n      }\r\n  \r\n      .yvv-stat-icon {\r\n          width: 24px;\r\n          height: 24px;\r\n          background: linear-gradient(135deg, var(--secondary-color), var(--secondary-light));\r\n          border-radius: 8px;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          font-size: 12px;\r\n          color: white;\r\n          font-weight: 700;\r\n      }\r\n  \r\n      \/* Format Selection *\/\r\n      .yvv-format-selection {\r\n          background: rgba(138, 108, 252, 0.05);\r\n          border: 1px solid rgba(138, 108, 252, 0.1);\r\n          border-radius: var(--border-radius);\r\n          padding: 30px;\r\n      }\r\n  \r\n      .yvv-format-title {\r\n          color: var(--text-primary);\r\n          font-size: 22px;\r\n          font-weight: 700;\r\n          margin-bottom: 25px;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-format-tabs {\r\n          display: flex;\r\n          gap: 10px;\r\n          margin-bottom: 25px;\r\n          justify-content: center;\r\n      }\r\n  \r\n      .yvv-format-tab {\r\n          padding: 12px 24px;\r\n          background: var(--bg-tertiary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: 50px;\r\n          color: var(--text-secondary);\r\n          font-size: 14px;\r\n          font-weight: 600;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n      }\r\n  \r\n      .yvv-format-tab.active {\r\n          background: linear-gradient(135deg, var(--primary-color), var(--primary-light));\r\n          color: white;\r\n          border-color: var(--primary-light);\r\n      }\r\n  \r\n      .yvv-format-tab:hover:not(.active) {\r\n          background: var(--bg-card);\r\n          color: var(--text-primary);\r\n      }\r\n  \r\n      .yvv-format-grid {\r\n          display: grid;\r\n          grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\r\n          gap: 20px;\r\n      }\r\n  \r\n      .yvv-format-option {\r\n          background: var(--bg-tertiary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: var(--border-radius);\r\n          padding: 25px;\r\n          transition: all 0.3s ease;\r\n          position: relative;\r\n      }\r\n  \r\n      .yvv-format-option:hover {\r\n          transform: translateY(-5px);\r\n          box-shadow: var(--shadow-md);\r\n          border-color: var(--primary-light);\r\n      }\r\n  \r\n      .yvv-format-option.playing {\r\n          border-color: var(--success-color);\r\n          background: rgba(5, 150, 105, 0.1);\r\n          box-shadow: 0 0 20px rgba(5, 150, 105, 0.3);\r\n      }\r\n  \r\n      .yvv-format-option.playing::before {\r\n          content: '\u25b6 NOW PLAYING';\r\n          position: absolute;\r\n          top: -10px;\r\n          right: 15px;\r\n          background: linear-gradient(135deg, var(--success-color), var(--success-light));\r\n          color: white;\r\n          padding: 4px 12px;\r\n          border-radius: 12px;\r\n          font-size: 10px;\r\n          font-weight: 700;\r\n          letter-spacing: 0.5px;\r\n      }\r\n  \r\n      .yvv-format-header {\r\n          display: flex;\r\n          justify-content: space-between;\r\n          align-items: center;\r\n          margin-bottom: 15px;\r\n      }\r\n  \r\n      .yvv-format-quality {\r\n          font-size: 20px;\r\n          font-weight: 700;\r\n          color: var(--text-primary);\r\n      }\r\n  \r\n      .yvv-format-type-badge {\r\n          background: linear-gradient(135deg, var(--accent-color), var(--accent-light));\r\n          color: white;\r\n          padding: 6px 16px;\r\n          border-radius: 20px;\r\n          font-size: 12px;\r\n          font-weight: 700;\r\n      }\r\n  \r\n      .yvv-format-actions {\r\n          display: flex;\r\n          gap: 12px;\r\n      }\r\n  \r\n      .yvv-action-btn {\r\n          flex: 1;\r\n          padding: 14px;\r\n          border: none;\r\n          border-radius: 10px;\r\n          font-size: 14px;\r\n          font-weight: 600;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          gap: 8px;\r\n          font-family: inherit;\r\n      }\r\n  \r\n      .yvv-stream-action {\r\n          background: linear-gradient(135deg, var(--secondary-color), var(--secondary-light));\r\n          color: white;\r\n      }\r\n  \r\n      .yvv-stream-action:hover {\r\n          transform: translateY(-2px);\r\n          box-shadow: var(--shadow-sm);\r\n      }\r\n  \r\n      .yvv-stream-action.playing {\r\n          background: linear-gradient(135deg, var(--success-color), var(--success-light));\r\n      }\r\n  \r\n      .yvv-download-action {\r\n          background: linear-gradient(135deg, var(--warning-color), var(--warning-light));\r\n          color: white;\r\n      }\r\n  \r\n      .yvv-download-action:hover {\r\n          transform: translateY(-2px);\r\n          box-shadow: var(--shadow-sm);\r\n      }\r\n  \r\n      .yvv-audio-action {\r\n          background: linear-gradient(135deg, var(--accent-color), var(--accent-light));\r\n          color: white;\r\n      }\r\n  \r\n      .yvv-audio-action:hover {\r\n          transform: translateY(-2px);\r\n          box-shadow: var(--shadow-sm);\r\n      }\r\n  \r\n      \/* Audio Player Section *\/\r\n      .yvv-audio-player-section {\r\n          display: none;\r\n          background: var(--bg-secondary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: var(--border-radius-lg);\r\n          padding: 35px;\r\n          box-shadow: var(--shadow-xl);\r\n          margin-bottom: 40px;\r\n          animation: slideInRight 0.8s ease-out;\r\n      }\r\n  \r\n      .yvv-audio-visualizer {\r\n          background: linear-gradient(135deg, rgba(138, 108, 252, 0.1), rgba(167, 139, 250, 0.12));\r\n          border: 1px solid rgba(138, 108, 252, 0.3);\r\n          border-radius: var(--border-radius);\r\n          padding: 30px;\r\n          margin-bottom: 25px;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-visualizer-bars {\r\n          display: flex;\r\n          align-items: end;\r\n          justify-content: center;\r\n          gap: 6px;\r\n          height: 80px;\r\n          margin-bottom: 20px;\r\n      }\r\n  \r\n      .yvv-visualizer-bar {\r\n          width: 6px;\r\n          background: linear-gradient(to top, var(--accent-color), var(--accent-light), var(--secondary-light));\r\n          border-radius: 3px;\r\n          animation: audioWave 1.8s ease-in-out infinite;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(1) {\r\n          height: 30px;\r\n          animation-delay: 0s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(2) {\r\n          height: 50px;\r\n          animation-delay: 0.1s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(3) {\r\n          height: 35px;\r\n          animation-delay: 0.2s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(4) {\r\n          height: 60px;\r\n          animation-delay: 0.3s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(5) {\r\n          height: 45px;\r\n          animation-delay: 0.4s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(6) {\r\n          height: 70px;\r\n          animation-delay: 0.5s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(7) {\r\n          height: 40px;\r\n          animation-delay: 0.6s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(8) {\r\n          height: 55px;\r\n          animation-delay: 0.7s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(9) {\r\n          height: 35px;\r\n          animation-delay: 0.8s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(10) {\r\n          height: 65px;\r\n          animation-delay: 0.9s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(11) {\r\n          height: 45px;\r\n          animation-delay: 1.0s;\r\n      }\r\n  \r\n      .yvv-visualizer-bar:nth-child(12) {\r\n          height: 30px;\r\n          animation-delay: 1.1s;\r\n      }\r\n  \r\n      @keyframes audioWave {\r\n  \r\n          0%,\r\n          100% {\r\n              transform: scaleY(0.4);\r\n              opacity: 0.7;\r\n          }\r\n  \r\n          50% {\r\n              transform: scaleY(1);\r\n              opacity: 1;\r\n          }\r\n      }\r\n  \r\n      .yvv-audio-controls {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 20px;\r\n          background: rgba(138, 108, 252, 0.1);\r\n          border-radius: var(--border-radius);\r\n          padding: 20px 25px;\r\n      }\r\n  \r\n      .yvv-audio-play-btn {\r\n          width: 60px;\r\n          height: 60px;\r\n          background: linear-gradient(135deg, var(--accent-color), var(--accent-light));\r\n          border: none;\r\n          border-radius: 50%;\r\n          color: white;\r\n          font-size: 24px;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          box-shadow: var(--shadow-md);\r\n      }\r\n  \r\n      .yvv-audio-play-btn:hover {\r\n          transform: scale(1.1);\r\n          box-shadow: var(--shadow-lg);\r\n      }\r\n  \r\n      .yvv-audio-progress {\r\n          flex: 1;\r\n          cursor: pointer;\r\n          padding: 15px 0;\r\n      }\r\n  \r\n      .yvv-audio-progress-track {\r\n          width: 100%;\r\n          height: 8px;\r\n          background: rgba(255, 255, 255, 0.2);\r\n          border-radius: 4px;\r\n          position: relative;\r\n          overflow: hidden;\r\n      }\r\n  \r\n      .yvv-audio-progress-fill {\r\n          height: 100%;\r\n          background: linear-gradient(135deg, var(--accent-color), var(--accent-light));\r\n          border-radius: 4px;\r\n          width: 0%;\r\n          transition: width 0.1s ease;\r\n      }\r\n  \r\n      .yvv-audio-time {\r\n          color: var(--text-primary);\r\n          font-size: 16px;\r\n          font-weight: 600;\r\n          min-width: 100px;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-audio-volume {\r\n          display: flex;\r\n          align-items: center;\r\n          gap: 12px;\r\n          min-width: 120px;\r\n      }\r\n  \r\n      .yvv-audio-volume-icon {\r\n          color: var(--text-primary);\r\n          font-size: 20px;\r\n          width: 24px;\r\n          text-align: center;\r\n      }\r\n  \r\n      .yvv-audio-volume-slider {\r\n          width: 80px;\r\n          height: 6px;\r\n          background: rgba(255, 255, 255, 0.2);\r\n          border-radius: 3px;\r\n          outline: none;\r\n          cursor: pointer;\r\n          -webkit-appearance: none;\r\n          appearance: none;\r\n      }\r\n  \r\n      .yvv-audio-volume-slider::-webkit-slider-thumb {\r\n          -webkit-appearance: none;\r\n          appearance: none;\r\n          width: 16px;\r\n          height: 16px;\r\n          background: var(--accent-light);\r\n          border-radius: 50%;\r\n          cursor: pointer;\r\n      }\r\n  \r\n      .yvv-audio-volume-slider::-moz-range-thumb {\r\n          width: 16px;\r\n          height: 16px;\r\n          background: var(--accent-light);\r\n          border-radius: 50%;\r\n          cursor: pointer;\r\n          border: none;\r\n      }\r\n  \r\n      \/* Download Progress *\/\r\n      .yvv-download-progress {\r\n          position: fixed;\r\n          bottom: 20px;\r\n          right: 20px;\r\n          background: var(--bg-secondary);\r\n          border: 1px solid rgba(138, 108, 252, 0.2);\r\n          border-radius: var(--border-radius);\r\n          padding: 20px;\r\n          min-width: 320px;\r\n          box-shadow: var(--shadow-xl);\r\n          z-index: 1000;\r\n          display: none;\r\n          color: var(--text-primary);\r\n      }\r\n  \r\n      .yvv-download-progress.show {\r\n          display: block;\r\n          animation: slideInRight 0.4s ease-out;\r\n      }\r\n  \r\n      .yvv-progress-header {\r\n          display: flex;\r\n          justify-content: space-between;\r\n          align-items: center;\r\n          margin-bottom: 15px;\r\n      }\r\n  \r\n      .yvv-progress-text {\r\n          font-weight: 600;\r\n          font-size: 14px;\r\n      }\r\n  \r\n      .yvv-cancel-btn {\r\n          background: rgba(220, 38, 38, 0.1);\r\n          border: 1px solid rgba(220, 38, 38, 0.3);\r\n          color: var(--danger-light);\r\n          padding: 6px 12px;\r\n          border-radius: 6px;\r\n          font-size: 12px;\r\n          cursor: pointer;\r\n          transition: all 0.3s ease;\r\n          font-weight: 500;\r\n      }\r\n  \r\n      .yvv-cancel-btn:hover {\r\n          background: rgba(220, 38, 38, 0.2);\r\n      }\r\n  \r\n      .yvv-progress-bar-container {\r\n          width: 100%;\r\n          height: 8px;\r\n          background: rgba(255, 255, 255, 0.2);\r\n          border-radius: 4px;\r\n          overflow: hidden;\r\n          margin-bottom: 10px;\r\n      }\r\n  \r\n      .yvv-progress-bar-fill {\r\n          height: 100%;\r\n          background: linear-gradient(135deg, var(--success-color), var(--success-light));\r\n          border-radius: 4px;\r\n          width: 0%;\r\n          transition: width 0.3s ease;\r\n      }\r\n  \r\n      .yvv-progress-details {\r\n          display: flex;\r\n          justify-content: space-between;\r\n          font-size: 12px;\r\n          color: var(--text-secondary);\r\n      }\r\n  \r\n      \/* Loading Animation *\/\r\n      .yvv-cyber-loading {\r\n          position: relative;\r\n          width: 100%;\r\n          max-width: 500px;\r\n          margin: 0 auto;\r\n          padding: 40px;\r\n          background: linear-gradient(135deg, rgba(138, 108, 252, 0.1), rgba(167, 139, 250, 0.12));\r\n          border: 1px solid rgba(138, 108, 252, 0.3);\r\n          border-radius: var(--border-radius-lg);\r\n      }\r\n  \r\n      .yvv-loading-grid {\r\n          position: absolute;\r\n          top: 0;\r\n          left: 0;\r\n          right: 0;\r\n          bottom: 0;\r\n          background-image:\r\n              linear-gradient(rgba(138, 108, 252, 0.1) 1px, transparent 1px),\r\n              linear-gradient(90deg, rgba(138, 108, 252, 0.1) 1px, transparent 1px);\r\n          background-size: 25px 25px;\r\n          animation: gridShift 8s linear infinite;\r\n      }\r\n  \r\n      @keyframes gridShift {\r\n          0% {\r\n              transform: translate(0, 0);\r\n          }\r\n  \r\n          100% {\r\n              transform: translate(25px, 25px);\r\n          }\r\n      }\r\n  \r\n      .yvv-loading-waves {\r\n          display: flex;\r\n          flex-direction: column;\r\n          gap: 12px;\r\n          margin-bottom: 25px;\r\n      }\r\n  \r\n      .yvv-loading-wave {\r\n          height: 4px;\r\n          background: linear-gradient(90deg, transparent, var(--primary-light), transparent);\r\n          border-radius: 2px;\r\n          animation: waveFlow 2.5s ease-in-out infinite;\r\n      }\r\n  \r\n      .yvv-loading-wave:nth-child(2) {\r\n          animation-delay: 0.5s;\r\n      }\r\n  \r\n      .yvv-loading-wave:nth-child(3) {\r\n          animation-delay: 1s;\r\n      }\r\n  \r\n      @keyframes waveFlow {\r\n  \r\n          0%,\r\n          100% {\r\n              opacity: 0.3;\r\n              transform: scaleX(0.3);\r\n          }\r\n  \r\n          50% {\r\n              opacity: 1;\r\n              transform: scaleX(1);\r\n          }\r\n      }\r\n  \r\n      .yvv-loading-text {\r\n          text-align: center;\r\n          color: var(--text-primary);\r\n          font-size: 18px;\r\n          font-weight: 600;\r\n      }\r\n  \r\n      .yvv-loading-dots::after {\r\n          content: '';\r\n          animation: loadingDots 2.5s steps(4, end) infinite;\r\n      }\r\n  \r\n      @keyframes loadingDots {\r\n  \r\n          0%,\r\n          20% {\r\n              content: '';\r\n          }\r\n  \r\n          40% {\r\n              content: '.';\r\n          }\r\n  \r\n          60% {\r\n              content: '..';\r\n          }\r\n  \r\n          80%,\r\n          100% {\r\n              content: '...';\r\n          }\r\n      }\r\n  \r\n      .yvv-loading-progress-bar {\r\n          width: 100%;\r\n          height: 6px;\r\n          background: rgba(0, 0, 0, 0.08);\r\n          border-radius: 3px;\r\n          overflow: hidden;\r\n          margin-top: 15px;\r\n      }\r\n  \r\n      .yvv-loading-progress-fill {\r\n          height: 100%;\r\n          background: linear-gradient(90deg, var(--primary-light), var(--accent-light));\r\n          border-radius: 3px;\r\n          animation: progressFlow 3s ease-in-out infinite;\r\n      }\r\n  \r\n      @keyframes progressFlow {\r\n          0% {\r\n              width: 0%;\r\n          }\r\n  \r\n          50% {\r\n              width: 80%;\r\n          }\r\n  \r\n          100% {\r\n              width: 100%;\r\n          }\r\n      }\r\n  \r\n      \/* Animations *\/\r\n      @keyframes fadeInDown {\r\n          from {\r\n              opacity: 0;\r\n              transform: translateY(-30px);\r\n          }\r\n  \r\n          to {\r\n              opacity: 1;\r\n              transform: translateY(0);\r\n          }\r\n      }\r\n  \r\n      @keyframes fadeInUp {\r\n          from {\r\n              opacity: 0;\r\n              transform: translateY(30px);\r\n          }\r\n  \r\n          to {\r\n              opacity: 1;\r\n              transform: translateY(0);\r\n          }\r\n      }\r\n  \r\n      @keyframes slideInUp {\r\n          from {\r\n              opacity: 0;\r\n              transform: translateY(50px);\r\n          }\r\n  \r\n          to {\r\n              opacity: 1;\r\n              transform: translateY(0);\r\n          }\r\n      }\r\n  \r\n      @keyframes slideInLeft {\r\n          from {\r\n              opacity: 0;\r\n              transform: translateX(-50px);\r\n          }\r\n  \r\n          to {\r\n              opacity: 1;\r\n              transform: translateX(0);\r\n          }\r\n      }\r\n  \r\n      @keyframes slideInRight {\r\n          from {\r\n              opacity: 0;\r\n              transform: translateX(50px);\r\n          }\r\n  \r\n          to {\r\n              opacity: 1;\r\n              transform: translateX(0);\r\n          }\r\n      }\r\n  \r\n      @keyframes float {\r\n  \r\n          0%,\r\n          100% {\r\n              transform: translateY(0px) scale(1);\r\n          }\r\n  \r\n          50% {\r\n              transform: translateY(-10px) scale(1.05);\r\n          }\r\n      }\r\n  \r\n      @keyframes pulse {\r\n  \r\n          0%,\r\n          100% {\r\n              transform: scale(1);\r\n              opacity: 0.5;\r\n          }\r\n  \r\n          50% {\r\n              transform: scale(1.1);\r\n              opacity: 0.8;\r\n          }\r\n      }\r\n  \r\n      \/* Responsive Design *\/\r\n      @media (max-width: 768px) {\r\n          .yvv-container {\r\n              padding: 15px;\r\n          }\r\n  \r\n          .yvv-search-form {\r\n              flex-direction: column;\r\n              gap: 15px;\r\n          }\r\n  \r\n          .yvv-search-btn {\r\n              min-width: 100%;\r\n          }\r\n  \r\n          .yvv-video-metadata {\r\n              grid-template-columns: 1fr;\r\n              text-align: center;\r\n          }\r\n  \r\n          .yvv-video-stats {\r\n              justify-content: center;\r\n          }\r\n  \r\n          .yvv-format-grid {\r\n              grid-template-columns: 1fr;\r\n          }\r\n  \r\n          .yvv-format-actions {\r\n              flex-direction: column;\r\n          }\r\n  \r\n          .yvv-main-video {\r\n              height: 50vh;\r\n              min-height: 300px;\r\n          }\r\n  \r\n          .yvv-video-controls {\r\n              flex-wrap: wrap;\r\n              gap: 15px;\r\n          }\r\n  \r\n          .yvv-progress-section {\r\n              order: 3;\r\n              width: 100%;\r\n              margin: 15px 0 0 0;\r\n          }\r\n  \r\n          .yvv-audio-controls {\r\n              flex-wrap: wrap;\r\n              gap: 15px;\r\n          }\r\n  \r\n          .yvv-audio-progress {\r\n              order: 3;\r\n              width: 100%;\r\n          }\r\n  \r\n          .yvv-download-progress {\r\n              left: 15px;\r\n              right: 15px;\r\n              min-width: auto;\r\n          }\r\n      }\r\n  \r\n      @media (max-width: 480px) {\r\n          .yvv-container {\r\n              padding: 10px;\r\n          }\r\n  \r\n          .yvv-search-section,\r\n          .yvv-video-info-section,\r\n          .yvv-audio-player-section {\r\n              padding: 25px;\r\n          }\r\n  \r\n          .yvv-brand-logo {\r\n              flex-direction: column;\r\n              gap: 20px;\r\n          }\r\n  \r\n          .yvv-feature-badges {\r\n              flex-direction: column;\r\n              align-items: center;\r\n              gap: 10px;\r\n          }\r\n  \r\n          .yvv-feature-badge {\r\n              width: 100%;\r\n              max-width: 300px;\r\n              justify-content: center;\r\n          }\r\n  \r\n          .yvv-format-tabs {\r\n              flex-direction: column;\r\n              align-items: center;\r\n              gap: 8px;\r\n          }\r\n  \r\n          .yvv-format-tab {\r\n              width: 100%;\r\n              max-width: 200px;\r\n              text-align: center;\r\n          }\r\n  \r\n          .yvv-main-video {\r\n              height: 40vh;\r\n              min-height: 250px;\r\n          }\r\n  \r\n          .yvv-video-header {\r\n              flex-direction: column;\r\n              gap: 15px;\r\n              text-align: center;\r\n          }\r\n  \r\n          .yvv-current-quality-badge {\r\n              margin-right: 0;\r\n          }\r\n      }\r\n  <\/style>\r\n  \r\n <body data-aos-easing=\"ease-in-out\" data-aos-duration=\"800\" data-aos-delay=\"0\" data-new-gr-c-s-check-loaded=\"14.1249.0\" data-gr-ext-installed=\"\" data-new-gr-c-s-loaded=\"14.1223.0\" class=\"\" style=\"\">\r\n  \r\n       <section class=\"custom-hero-tools-ytvv\">\r\n          <div class=\"container\">\r\n              <!-- Header Section -->\r\n          <div class=\"yvv-header\">\r\n              <div class=\"yvv-brand-logo\">\r\n                  <div class=\"yvv-brand-icon\">\ud83c\udfa5<\/div>\r\n                  <h1 class=\"yvv-brand-title\"><span class=\"va-cap\">Y<\/span>outube <span class=\"va-cap\">U<\/span>rl <span class=\"va-cap\">V<\/span>iewer<\/h1>\r\n              <\/div>\r\n              <div class=\"yvv-brand-subtitle\">Experience YouTube videos with advanced streaming capabilities and premium\r\n                  audio quality<\/div>\r\n  \r\n              <div class=\"yvv-feature-badges\">\r\n                  <div class=\"yvv-feature-badge\">\r\n                      <div class=\"yvv-badge-icon\">\u2713<\/div>\r\n                      <span>HD Streaming<\/span>\r\n                  <\/div>\r\n                  <div class=\"yvv-feature-badge\">\r\n                      <div class=\"yvv-badge-icon\">\u2713<\/div>\r\n                      <span>Audio Player<\/span>\r\n                  <\/div>\r\n                  <div class=\"yvv-feature-badge\">\r\n                      <div class=\"yvv-badge-icon\">\u2713<\/div>\r\n                      <span>Download Options<\/span>\r\n                  <\/div>\r\n                  <div class=\"yvv-feature-badge\">\r\n                      <div class=\"yvv-badge-icon\">\u2713<\/div>\r\n                      <span>Premium Experience<\/span>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n  \r\n          <!-- Search Section -->\r\n          <div class=\"yvv-search-section\">\r\n              <div class=\"yvv-search-form\">\r\n                  <input type=\"text\" class=\"yvv-search-input\" placeholder=\"Enter YouTube URL to start viewing (e.g., https:\/\/www.youtube.com\/watch?v=dQw4w9WgXcQ)\" id=\"yvv-videoInput\">\r\n                  <button class=\"yvv-search-btn\" onclick=\"yvv_loadVideo()\" id=\"yvv-loadBtn\">\r\n                      <span id=\"yvv-loadBtnText\">\ud83c\udfa5 Load Video<\/span>\r\n                  <\/button>\r\n              <\/div>\r\n  \r\n              <div class=\"yvv-loading-indicator\" id=\"yvv-loadingIndicator\">\r\n                  <div class=\"yvv-cyber-loading\">\r\n                      <div class=\"yvv-loading-grid\"><\/div>\r\n                      <div class=\"yvv-loading-waves\">\r\n                          <div class=\"yvv-loading-wave\"><\/div>\r\n                          <div class=\"yvv-loading-wave\"><\/div>\r\n                          <div class=\"yvv-loading-wave\"><\/div>\r\n                      <\/div>\r\n                      <div class=\"yvv-loading-text\">\r\n                          <span class=\"yvv-loading-dots\">Loading video content<\/span>\r\n                          <div class=\"yvv-loading-progress-bar\">\r\n                              <div class=\"yvv-loading-progress-fill\"><\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                  <\/div>\r\n              <\/div>\r\n  \r\n              <div class=\"yvv-error-display\" id=\"yvv-errorDisplay\"><\/div>\r\n          <\/div>\r\n  \r\n          <!-- Video Player Section - Shows immediately after loading -->\r\n          <div class=\"yvv-video-player-section\" id=\"yvv-videoPlayerSection\">\r\n              <div class=\"yvv-video-header\">\r\n                  <h2 class=\"yvv-video-title\" id=\"yvv-playerVideoTitle\">Video Title<\/h2>\r\n                  <div class=\"yvv-current-quality-badge\" id=\"yvv-currentQualityBadge\">Ready to Play<\/div>\r\n                  <button class=\"yvv-close-viewer-btn\" onclick=\"yvv_closeVideoPlayer()\">\u00d7<\/button>\r\n              <\/div>\r\n              <div class=\"yvv-video-container\">\r\n                  <video class=\"yvv-main-video\" id=\"yvv-mainVideoPlayer\" controls=\"\">\r\n                      Your browser does not support the video tag.\r\n                  <\/video>\r\n                  <div class=\"yvv-video-thumbnail-overlay\" id=\"yvv-videoThumbnailOverlay\">\r\n                      <div class=\"yvv-thumbnail-play-btn\" onclick=\"yvv_playDefaultVideo()\">\u25b6<\/div>\r\n                  <\/div>\r\n              <\/div>\r\n              <div class=\"yvv-video-controls-section\">\r\n                  <div class=\"yvv-video-controls\">\r\n                      <button class=\"yvv-control-btn\" id=\"yvv-playPauseControl\" onclick=\"yvv_toggleVideoPlayback()\">\u25b6<\/button>\r\n                      <div class=\"yvv-progress-section\">\r\n                          <div class=\"yvv-progress-bar\" onclick=\"yvv_seekVideoTo(event)\">\r\n                              <div class=\"yvv-progress-fill\" id=\"yvv-videoProgressFill\"><\/div>\r\n                          <\/div>\r\n                          <div class=\"yvv-time-info\" id=\"yvv-videoTimeInfo\">0:00 \/ 0:00<\/div>\r\n                      <\/div>\r\n                      <div class=\"yvv-volume-section\">\r\n                          <span class=\"yvv-volume-icon\" id=\"yvv-videoVolumeIcon\">\ud83d\udd0a<\/span>\r\n                          <input type=\"range\" class=\"yvv-volume-control\" id=\"yvv-videoVolumeControl\" min=\"0\" max=\"100\" value=\"50\" oninput=\"yvv_adjustVideoVolume(this.value)\">\r\n                      <\/div>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n  \r\n          <!-- Video Info Section -->\r\n          <div class=\"yvv-video-info-section\" id=\"yvv-videoInfoSection\">\r\n              <div class=\"yvv-video-metadata\">\r\n                  <img decoding=\"async\" class=\"yvv-video-thumbnail\" id=\"yvv-videoThumbnail\" src=\"\/placeholder.svg\" alt=\"Video Thumbnail\">\r\n                  <div class=\"yvv-video-details\">\r\n                      <h2 id=\"yvv-videoDetailsTitle\">Video Title<\/h2>\r\n                      <div class=\"yvv-video-stats\">\r\n                          <div class=\"yvv-stat-item\">\r\n                              <div class=\"yvv-stat-icon\">\u23f1<\/div>\r\n                              <span id=\"yvv-videoDurationStat\">Duration<\/span>\r\n                          <\/div>\r\n                          <div class=\"yvv-stat-item\">\r\n                              <div class=\"yvv-stat-icon\">\ud83d\udc64<\/div>\r\n                              <span id=\"yvv-videoUploaderStat\">Channel<\/span>\r\n                          <\/div>\r\n                          <div class=\"yvv-stat-item\">\r\n                              <div class=\"yvv-stat-icon\">\ud83c\udfac<\/div>\r\n                              <span>Premium Quality<\/span>\r\n                          <\/div>\r\n                      <\/div>\r\n                  <\/div>\r\n              <\/div>\r\n  \r\n              <div class=\"yvv-format-selection\">\r\n                  <h3 class=\"yvv-format-title\">Available Formats & Downloads<\/h3>\r\n                  <div class=\"yvv-format-tabs\">\r\n                      <div class=\"yvv-format-tab active\" onclick=\"yvv_switchFormatTab('video')\">Video Formats<\/div>\r\n                      <div class=\"yvv-format-tab\" onclick=\"yvv_switchFormatTab('audio')\">Audio Only<\/div>\r\n                  <\/div>\r\n                  <div class=\"yvv-format-grid\" id=\"yvv-formatGrid\">\r\n                      <!-- Format options will be populated here -->\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n  \r\n          <!-- Audio Player Section -->\r\n          <div class=\"yvv-audio-player-section\" id=\"yvv-audioPlayerSection\">\r\n              <div class=\"yvv-audio-visualizer\">\r\n                  <div class=\"yvv-visualizer-bars\">\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                      <div class=\"yvv-visualizer-bar\"><\/div>\r\n                  <\/div>\r\n                  <div class=\"yvv-audio-controls\">\r\n                      <button class=\"yvv-audio-play-btn\" id=\"yvv-audioPlayBtn\" onclick=\"yvv_toggleAudioPlayback()\">\u25b6<\/button>\r\n                      <div class=\"yvv-audio-progress\" onclick=\"yvv_seekAudioTo(event)\">\r\n                          <div class=\"yvv-audio-progress-track\">\r\n                              <div class=\"yvv-audio-progress-fill\" id=\"yvv-audioProgressFill\"><\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      <div class=\"yvv-audio-time\" id=\"yvv-audioTimeInfo\">0:00 \/ 0:00<\/div>\r\n                      <div class=\"yvv-audio-volume\">\r\n                          <span class=\"yvv-audio-volume-icon\" id=\"yvv-audioVolumeIcon\">\ud83d\udd0a<\/span>\r\n                          <input type=\"range\" class=\"yvv-audio-volume-slider\" id=\"yvv-audioVolumeSlider\" min=\"0\" max=\"100\" value=\"50\" oninput=\"yvv_adjustAudioVolume(this.value)\">\r\n                      <\/div>\r\n                  <\/div>\r\n                  <audio id=\"yvv-audioPlayer\" preload=\"none\" style=\"display: none;\"><\/audio>\r\n              <\/div>\r\n          <\/div>\r\n      <\/div>\r\n  \r\n      <!-- Download Progress -->\r\n      <div class=\"yvv-download-progress\" id=\"yvv-downloadProgress\">\r\n          <div class=\"yvv-progress-header\">\r\n              <span class=\"yvv-progress-text\" id=\"yvv-progressText\">Downloading...<\/span>\r\n              <button class=\"yvv-cancel-btn\" onclick=\"yvv_cancelDownload()\">Cancel<\/button>\r\n          <\/div>\r\n          <div class=\"yvv-progress-bar-container\">\r\n              <div class=\"yvv-progress-bar-fill\" id=\"yvv-progressBarFill\"><\/div>\r\n          <\/div>\r\n          <div class=\"yvv-progress-details\">\r\n              <span id=\"yvv-progressPercent\">0%<\/span>\r\n              <span id=\"yvv-progressSize\">0 MB \/ 0 MB<\/span>\r\n          <\/div>\r\n      <\/div>\r\n          \r\n       <\/section>\r\n  \r\n  <!-- Work Process Section -->\r\n  <section class=\"ytvv-work-process-section\" id=\"how-it-works\">\r\n      <div class=\"container ytvv-work-process-content\">\r\n          <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n              <h2 class=\"ytvv-section-title ytvv-light-title\">How Our YouTube URL Viewer Works<\/h2>\r\n              <p class=\"ytvv-section-subtitle ytvv-light-subtitle\">View any YouTube video securely and anonymously in 3 easy steps<\/p>\r\n          <\/div>\r\n          \r\n          <div class=\"row\">\r\n              <div class=\"col-md-4\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                  <div class=\"ytvv-process-step\">\r\n                      <div class=\"ytvv-step-number\">1<\/div>\r\n                      <h4 class=\"text-white\">Enter YouTube URL<\/h4>\r\n                      <p class=\"ytvv-light-subtitle\">Paste the video link you want to view privately without login or tracking<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-md-4\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                  <div class=\"ytvv-process-step\">\r\n                      <div class=\"ytvv-step-number\">2<\/div>\r\n                      <h4 class=\"text-white\">Process the Link<\/h4>\r\n                      <p class=\"ytvv-light-subtitle\">Our secure system fetches the video using the YouTube URL without connecting to official servers<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-md-4\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                  <div class=\"ytvv-process-step\">\r\n                      <div class=\"ytvv-step-number\">3<\/div>\r\n                      <h4 class=\"text-white\">Watch Anonymously<\/h4>\r\n                      <p class=\"ytvv-light-subtitle\">Enjoy the video safely without view tracking or recommendations<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n      <\/div>\r\n  <\/section>\r\n  \r\n  <!-- Features Section -->\r\n  <section class=\"ytvv-features-section\">\r\n      <div class=\"container\">\r\n          <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n              <h2 class=\"ytvv-section-title\">Key Features<\/h2>\r\n              <p class=\"ytvv-section-subtitle\">Our YouTube URL Viewer offers smart and private tools for secure viewing<\/p>\r\n          <\/div>\r\n          \r\n          <div class=\"row\">\r\n              <div class=\"col-lg-4 mb-4\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-user\"><\/i>\r\n                      <\/div>\r\n                      <h4>Private Viewing<\/h4>\r\n                      <p>Watch YouTube videos without being tracked, logged, or identified<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-lg-4 mb-4\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-shield\"><\/i>\r\n                      <\/div>\r\n                      <h4>Safe & Secure<\/h4>\r\n                      <p>Your connection is encrypted \u2014 no tracking, no cookies, no footprints<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-lg-4 mb-4\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-video\"><\/i>\r\n                      <\/div>\r\n                      <h4>HD Quality<\/h4>\r\n                      <p>View YouTube videos in full HD or 4K without buffering or compression<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-lg-4 mb-5\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-stopwatch\"><\/i>\r\n                      <\/div>\r\n                      <h4>Instant Access<\/h4>\r\n                      <p>Paste the link and start watching immediately \u2014 no waiting time<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-lg-4 mb-5\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-mobile\"><\/i>\r\n                      <\/div>\r\n                      <h4>Ad-Free Experience<\/h4>\r\n                      <p>Enjoy uninterrupted videos with zero YouTube ads or recommendations<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n              \r\n              <div class=\"col-lg-4 mb-5\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                  <div class=\"ytvv-feature-card\">\r\n                      <div class=\"ytvv-feature-icon\">\r\n                          <i class=\"bx bx-devices\"><\/i>\r\n                      <\/div>\r\n                      <h4>Universal Compatibility<\/h4>\r\n                      <p>Works seamlessly on any device \u2014 mobile, tablet, or desktop<\/p>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n      <\/div>\r\n  <\/section>\r\n  \r\n  <!-- Why Choose Section -->\r\n  <section class=\"ytvv-why-choose-section\">\r\n      <div class=\"container\">\r\n          <div class=\"row align-items-center\">\r\n              <div class=\"col-lg-6 mb-5 mb-lg-0\" data-aos=\"fade-right\">\r\n                  <div class=\"ytvv-why-choose-image ytvv-floating-element\">\r\n                      <img decoding=\"async\" src=\"https:\/\/viewanonymous.com\/wp-content\/uploads\/2026\/03\/Youtube_Url_Viewer.webp\" alt=\"YouTube URL Viewer\" class=\"img-fluid rounded-3\">\r\n                  <\/div>\r\n              <\/div>\r\n              <div class=\"col-lg-6\" data-aos=\"fade-left\">\r\n                  <h2 class=\"ytvv-section-title mb-4\">Why Choose Our YouTube URL Viewer?<\/h2>\r\n                  <p class=\"mb-4\">Our YouTube URL Viewer is designed to give you full control over your privacy while watching videos. Whether you want to explore content anonymously or bypass login barriers, this viewer ensures a fast and secure experience every time.<\/p>\r\n                  \r\n                  <div class=\"ytvv-benefit-item\">\r\n                      <div class=\"ytvv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">No Sign-Up Required<\/h5>\r\n                          <p class=\"mb-0\">Paste the link and watch videos instantly \u2014 no login needed<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n                  \r\n                  <div class=\"ytvv-benefit-item\">\r\n                      <div class=\"ytvv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">Total Privacy<\/h5>\r\n                          <p class=\"mb-0\">We never track, log, or store your browsing activity<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n                  \r\n                  <div class=\"ytvv-benefit-item\">\r\n                      <div class=\"ytvv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">Fast Processing<\/h5>\r\n                          <p class=\"mb-0\">Our optimized engine loads YouTube URLs quickly and efficiently<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n                  \r\n                  <div class=\"ytvv-benefit-item\">\r\n                      <div class=\"ytvv-benefit-icon\">\r\n                          <i class=\"bx bx-check\"><\/i>\r\n                      <\/div>\r\n                      <div>\r\n                          <h5 class=\"mb-1\">Ad-Free Viewing<\/h5>\r\n                          <p class=\"mb-0\">Enjoy a smooth, ad-free video experience every time<\/p>\r\n                      <\/div>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n      <\/div>\r\n  <\/section>\r\n  \r\n  <!-- FAQ Section -->\r\n  <section class=\"ytvv-faq-section\">\r\n      <div class=\"container\">\r\n          <div class=\"text-center mb-5\" data-aos=\"fade-up\">\r\n              <h2 class=\"ytvv-section-title\">Frequently Asked Questions<\/h2>\r\n              <p class=\"ytvv-section-subtitle\">Find answers to the most common questions about our YouTube URL Viewer<\/p>\r\n          <\/div>\r\n          \r\n          <div class=\"row justify-content-center\">\r\n              <div class=\"col-lg-8\">\r\n                  <div class=\"accordion\" id=\"ytvv-faqAccordion\">\r\n                      <div class=\"ytvv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"50\">\r\n                          <h3 class=\"accordion-header\" id=\"ytvv-heading1\">\r\n                              <button class=\"ytvv-accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#ytvv-collapse1\" aria-expanded=\"true\" aria-controls=\"ytvv-collapse1\">\r\n                                  Is using YouTube URL Viewer legal?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"ytvv-collapse1\" class=\"accordion-collapse collapse show\" aria-labelledby=\"ytvv-heading1\" data-bs-parent=\"#ytvv-faqAccordion\">\r\n                              <div class=\"ytvv-accordion-body\">\r\n                                  Yes, our tool is fully legal to use. It only displays publicly available YouTube videos using the URL you provide. We don\u2019t bypass security or access private content.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"ytvv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"100\">\r\n                          <h3 class=\"accordion-header\" id=\"ytvv-heading2\">\r\n                              <button class=\"ytvv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#ytvv-collapse2\" aria-expanded=\"false\" aria-controls=\"ytvv-collapse2\">\r\n                                  Can I view private or unlisted YouTube links?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"ytvv-collapse2\" class=\"accordion-collapse collapse\" aria-labelledby=\"ytvv-heading2\" data-bs-parent=\"#ytvv-faqAccordion\">\r\n                              <div class=\"ytvv-accordion-body\">\r\n                                  No, the YouTube URL Viewer only works with public URLs. Private or restricted links remain inaccessible to maintain privacy and security standards.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"ytvv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"150\">\r\n                          <h3 class=\"accordion-header\" id=\"ytvv-heading3\">\r\n                              <button class=\"ytvv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#ytvv-collapse3\" aria-expanded=\"false\" aria-controls=\"ytvv-collapse3\">\r\n                                  Does this tool affect YouTube view counts?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"ytvv-collapse3\" class=\"accordion-collapse collapse\" aria-labelledby=\"ytvv-heading3\" data-bs-parent=\"#ytvv-faqAccordion\">\r\n                              <div class=\"ytvv-accordion-body\">\r\n                                  No, videos viewed through our tool are not tracked by YouTube and do not increase the video\u2019s view count. Your activity stays invisible.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"ytvv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"200\">\r\n                          <h3 class=\"accordion-header\" id=\"ytvv-heading4\">\r\n                              <button class=\"ytvv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#ytvv-collapse4\" aria-expanded=\"false\" aria-controls=\"ytvv-collapse4\">\r\n                                  Do I need any software to use YouTube URL Viewer?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"ytvv-collapse4\" class=\"accordion-collapse collapse\" aria-labelledby=\"ytvv-heading4\" data-bs-parent=\"#ytvv-faqAccordion\">\r\n                              <div class=\"ytvv-accordion-body\">\r\n                                  No installation required! Our YouTube URL Viewer is fully web-based. Just visit our site, enter the video link, and start watching instantly.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                      \r\n                      <div class=\"ytvv-accordion-item mb-3\" data-aos=\"fade-up\" data-aos-delay=\"250\">\r\n                          <h3 class=\"accordion-header\" id=\"ytvv-heading5\">\r\n                              <button class=\"ytvv-accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#ytvv-collapse5\" aria-expanded=\"false\" aria-controls=\"ytvv-collapse5\">\r\n                                  Can I download videos with this YouTube URL Viewer?\r\n                              <\/button>\r\n                          <\/h3>\r\n                          <div id=\"ytvv-collapse5\" class=\"accordion-collapse collapse\" aria-labelledby=\"ytvv-heading5\" data-bs-parent=\"#ytvv-faqAccordion\">\r\n                              <div class=\"ytvv-accordion-body\">\r\n                                  No, downloading is not supported. This tool is purely for private, anonymous viewing of public YouTube content.\r\n                              <\/div>\r\n                          <\/div>\r\n                      <\/div>\r\n                  <\/div>\r\n              <\/div>\r\n          <\/div>\r\n      <\/div>\r\n  <\/section>\r\n  \r\n  \r\n    <!-- Footer -->\r\n    \r\n  \r\n  <!-- Copyright Section -->\r\n  \r\n  \r\n  \r\n  \r\n   <!-- YouTub Video Viewer js -->\r\n    <script src=\"https:\/\/tools.xrespond.com\/api\/rate-limit-handler.js\"><\/script>\r\n    <script src=\"https:\/\/tools.xrespond.com\/api\/js\/client-ip-detector.js\"><\/script>\r\n   <script>\r\n      \/\/ Using your original API\r\n      const API_URL = 'https:\/\/tools.xrespond.com\/api\/youtube\/video\/downloader';\r\n      let currentVideoData = null;\r\n      let videoPlayer = null;\r\n      let audioPlayer = null;\r\n      let isVideoPlaying = false;\r\n      let isAudioPlaying = false;\r\n      let currentFormatTab = 'video';\r\n      let downloadController = null;\r\n      let currentPlayingFormat = null;\r\n      let defaultVideoFormat = null;\r\n  \r\n      function yvv_isValidYouTubeURL(url) {\r\n          const patterns = [\r\n              \/^https:\\\/\\\/(?:www\\.)?youtube\\.com\\\/watch\\?v=[\\w-]+\/,\r\n              \/^https:\\\/\\\/youtu\\.be\\\/[\\w-]+\/,\r\n              \/^https:\\\/\\\/(?:www\\.)?youtube\\.com\\\/shorts\\\/[\\w-]+\/\r\n          ];\r\n          return patterns.some(pattern => pattern.test(url));\r\n      }\r\n  \r\n      function yvv_showError(message) {\r\n          const errorDiv = document.getElementById('yvv-errorDisplay');\r\n          const urlInput = document.getElementById('yvv-videoInput');\r\n  \r\n          errorDiv.textContent = message;\r\n          errorDiv.style.display = 'block';\r\n          urlInput.classList.add('error');\r\n  \r\n          setTimeout(() => {\r\n              errorDiv.style.display = 'none';\r\n              urlInput.classList.remove('error');\r\n          }, 5000);\r\n      }\r\n  \r\n      function yvv_hideError() {\r\n          const errorDiv = document.getElementById('yvv-errorDisplay');\r\n          const urlInput = document.getElementById('yvv-videoInput');\r\n  \r\n          errorDiv.style.display = 'none';\r\n          urlInput.classList.remove('error');\r\n      }\r\n  \r\n      function yvv_showLoading() {\r\n          document.getElementById('yvv-loadingIndicator').style.display = 'block';\r\n          document.getElementById('yvv-loadBtn').disabled = true;\r\n          document.getElementById('yvv-loadBtnText').textContent = '\u23f3 Loading...';\r\n      }\r\n  \r\n      function yvv_hideLoading() {\r\n          document.getElementById('yvv-loadingIndicator').style.display = 'none';\r\n          document.getElementById('yvv-loadBtn').disabled = false;\r\n          document.getElementById('yvv-loadBtnText').textContent = '\ud83c\udfa5 Load Video';\r\n      }\r\n  \r\n      function yvv_formatFileSize(bytes) {\r\n          if (bytes === 0) return '0 Bytes';\r\n          const k = 1024;\r\n          const sizes = ['Bytes', 'KB', 'MB', 'GB'];\r\n          const i = Math.floor(Math.log(bytes) \/ Math.log(k));\r\n          return parseFloat((bytes \/ Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\r\n      }\r\n  \r\n      function yvv_showDownloadProgress(text, progress = 0, downloaded = 0, total = 0) {\r\n          const progressDiv = document.getElementById('yvv-downloadProgress');\r\n          const progressText = document.getElementById('yvv-progressText');\r\n          const progressFill = document.getElementById('yvv-progressBarFill');\r\n          const progressPercent = document.getElementById('yvv-progressPercent');\r\n          const progressSize = document.getElementById('yvv-progressSize');\r\n  \r\n          progressText.textContent = text;\r\n          progressFill.style.width = `${progress}%`;\r\n          progressPercent.textContent = `${Math.round(progress)}%`;\r\n          progressSize.textContent = `${yvv_formatFileSize(downloaded)} \/ ${yvv_formatFileSize(total)}`;\r\n          progressDiv.classList.add('show');\r\n      }\r\n  \r\n      function yvv_hideDownloadProgress() {\r\n          document.getElementById('yvv-downloadProgress').classList.remove('show');\r\n      }\r\n  \r\n      async function yvv_loadVideo() {\r\n          const urlInput = document.getElementById('yvv-videoInput');\r\n          const url = urlInput.value.trim();\r\n  \r\n          if (!url) {\r\n              yvv_showError('Please enter a YouTube URL');\r\n              return;\r\n          }\r\n  \r\n          if (!yvv_isValidYouTubeURL(url)) {\r\n              yvv_showError('Please enter a valid YouTube URL');\r\n              return;\r\n          }\r\n  \r\n          yvv_hideError();\r\n          yvv_showLoading();\r\n  \r\n          try {\r\n              const formData = new FormData();\r\n              formData.append('url', url);\r\n  \r\n              const response = await fetch(API_URL, {\r\n                  method: 'POST',\r\n                  body: formData\r\n              });\r\n  \r\n              if (!response.ok) {\r\n                  throw new Error(`HTTP error! status: ${response.status}`);\r\n              }\r\n  \r\n              const data = await response.json();\r\n  \r\n              if (!data.success) {\r\n                  throw new Error(data.message || 'Failed to load video data');\r\n              }\r\n  \r\n              currentVideoData = data.data.data;\r\n              yvv_displayVideoInfo(currentVideoData);\r\n  \r\n              \/\/ Show video player with thumbnail\r\n              yvv_setupVideoPlayerWithThumbnail();\r\n  \r\n          } catch (error) {\r\n              console.error('Error:', error);\r\n              yvv_showError('Failed to load video data. Please check the URL and try again.');\r\n          } finally {\r\n              yvv_hideLoading();\r\n          }\r\n      }\r\n  \r\n      function yvv_setupVideoPlayerWithThumbnail() {\r\n          const videoPlayerSection = document.getElementById('yvv-videoPlayerSection');\r\n          const thumbnailOverlay = document.getElementById('yvv-videoThumbnailOverlay');\r\n          const playerTitle = document.getElementById('yvv-playerVideoTitle');\r\n          const qualityBadge = document.getElementById('yvv-currentQualityBadge');\r\n  \r\n          \/\/ Set thumbnail background\r\n          thumbnailOverlay.style.backgroundImage = `url(${currentVideoData.thumbnail})`;\r\n          thumbnailOverlay.classList.remove('hidden');\r\n  \r\n          \/\/ Set title\r\n          playerTitle.textContent = currentVideoData.title;\r\n          qualityBadge.textContent = 'Ready to Play';\r\n  \r\n          \/\/ Show video player section\r\n          videoPlayerSection.style.display = 'block';\r\n  \r\n          \/\/ Find default video format (prefer 720p or first available)\r\n          const videoFormats = currentVideoData.links.filter(link => link.type === 'video');\r\n          defaultVideoFormat = videoFormats.find(f => f.resolution.includes('720p')) || videoFormats[0];\r\n  \r\n          \/\/ Reset video player\r\n          const videoPlayer = document.getElementById('yvv-mainVideoPlayer');\r\n          videoPlayer.src = '';\r\n          isVideoPlaying = false;\r\n          document.getElementById('yvv-playPauseControl').textContent = '\u25b6';\r\n  \r\n          \/\/ Hide audio player if open\r\n          document.getElementById('yvv-audioPlayerSection').style.display = 'none';\r\n      }\r\n  \r\n      function yvv_playDefaultVideo() {\r\n          if (defaultVideoFormat) {\r\n              yvv_streamVideoDirectly(defaultVideoFormat.download_url, defaultVideoFormat.resolution);\r\n              yvv_updateCurrentPlayingFormat(defaultVideoFormat.resolution, 'video');\r\n          }\r\n      }\r\n  \r\n      function yvv_displayVideoInfo(data) {\r\n          \/\/ Set video info\r\n          document.getElementById('yvv-videoDetailsTitle').textContent = data.title;\r\n          document.getElementById('yvv-videoDurationStat').textContent = data.duration;\r\n          document.getElementById('yvv-videoUploaderStat').textContent = data.uploader;\r\n          document.getElementById('yvv-videoThumbnail').src = data.thumbnail;\r\n  \r\n          \/\/ Display formats\r\n          yvv_displayFormats(data.links);\r\n  \r\n          document.getElementById('yvv-videoInfoSection').style.display = 'block';\r\n      }\r\n  \r\n      function yvv_streamVideoDirectly(url, resolution) {\r\n          const videoPlayer = document.getElementById('yvv-mainVideoPlayer');\r\n          const thumbnailOverlay = document.getElementById('yvv-videoThumbnailOverlay');\r\n          const qualityBadge = document.getElementById('yvv-currentQualityBadge');\r\n  \r\n          \/\/ Hide thumbnail overlay\r\n          thumbnailOverlay.classList.add('hidden');\r\n  \r\n          \/\/ Set video source\r\n          videoPlayer.src = url;\r\n          videoPlayer.load();\r\n  \r\n          \/\/ Update quality badge\r\n          qualityBadge.textContent = resolution;\r\n  \r\n          \/\/ Reset controls\r\n          isVideoPlaying = false;\r\n          document.getElementById('yvv-playPauseControl').textContent = '\u25b6';\r\n  \r\n          \/\/ Setup event listeners\r\n          yvv_setupVideoEventListeners();\r\n  \r\n          \/\/ Scroll to video player\r\n          document.getElementById('yvv-videoPlayerSection').scrollIntoView({\r\n              behavior: 'smooth',\r\n              block: 'start'\r\n          });\r\n      }\r\n  \r\n      function yvv_updateCurrentPlayingFormat(quality, type) {\r\n          \/\/ Remove previous playing indicators\r\n          document.querySelectorAll('.yvv-format-option').forEach(option => {\r\n              option.classList.remove('playing');\r\n          });\r\n          document.querySelectorAll('.yvv-stream-action').forEach(btn => {\r\n              btn.classList.remove('playing');\r\n              btn.innerHTML = btn.innerHTML.replace('\u23f8 Playing', '\u25b6 Stream').replace('\ud83c\udfb5 Playing', '\ud83c\udfb5 Stream Audio');\r\n          });\r\n  \r\n          \/\/ Set current playing format\r\n          currentPlayingFormat = { quality, type };\r\n  \r\n          \/\/ Update format cards to show which is playing\r\n          const formatCards = document.querySelectorAll('.yvv-format-option');\r\n          formatCards.forEach(card => {\r\n              const qualityElement = card.querySelector('.yvv-format-quality');\r\n              const streamBtn = card.querySelector('.yvv-stream-action, .yvv-audio-action');\r\n  \r\n              if (qualityElement && streamBtn) {\r\n                  const cardQuality = qualityElement.textContent;\r\n                  const isCurrentFormat = (type === 'video' && cardQuality === quality) ||\r\n                      (type === 'audio' && cardQuality === 'Audio Quality' && quality === 'Audio');\r\n  \r\n                  if (isCurrentFormat) {\r\n                      card.classList.add('playing');\r\n                      streamBtn.classList.add('playing');\r\n                      if (type === 'video') {\r\n                          streamBtn.innerHTML = '\u23f8 Playing';\r\n                      } else {\r\n                          streamBtn.innerHTML = '\ud83c\udfb5 Playing';\r\n                      }\r\n                  }\r\n              }\r\n          });\r\n      }\r\n  \r\n      function yvv_switchFormatTab(tab) {\r\n          currentFormatTab = tab;\r\n  \r\n          \/\/ Update tab appearance\r\n          document.querySelectorAll('.yvv-format-tab').forEach(t => t.classList.remove('active'));\r\n          event.target.classList.add('active');\r\n  \r\n          \/\/ Display formats for selected tab\r\n          if (currentVideoData) {\r\n              yvv_displayFormats(currentVideoData.links);\r\n          }\r\n      }\r\n  \r\n      function yvv_displayFormats(links) {\r\n          const formatGrid = document.getElementById('yvv-formatGrid');\r\n          formatGrid.innerHTML = '';\r\n  \r\n          let formats;\r\n          if (currentFormatTab === 'video') {\r\n              formats = links.filter(link => link.type === 'video');\r\n          } else {\r\n              formats = links.filter(link => link.type === 'audio');\r\n          }\r\n  \r\n          formats.forEach((format, index) => {\r\n              const formatCard = document.createElement('div');\r\n              formatCard.className = 'yvv-format-option';\r\n  \r\n              \/\/ Check if this format is currently playing\r\n              const isPlaying = currentPlayingFormat &&\r\n                  ((currentFormatTab === 'video' && currentPlayingFormat.quality === format.resolution && currentPlayingFormat.type === 'video') ||\r\n                      (currentFormatTab === 'audio' && currentPlayingFormat.type === 'audio'));\r\n  \r\n              if (isPlaying) {\r\n                  formatCard.classList.add('playing');\r\n              }\r\n  \r\n              if (currentFormatTab === 'video') {\r\n                  \/\/ Check if this is 360p to hide download button\r\n                  const is360p = format.resolution.includes('360p');\r\n  \r\n                  formatCard.innerHTML = `\r\n                      <div class=\"yvv-format-header\">\r\n                          <div class=\"yvv-format-quality\">${format.resolution}<\/div>\r\n                          <div class=\"yvv-format-type-badge\">MP4<\/div>\r\n                      <\/div>\r\n                      <div class=\"yvv-format-actions\">\r\n                          <button class=\"yvv-action-btn yvv-stream-action ${isPlaying ? 'playing' : ''}\" onclick=\"yvv_streamVideo('${format.download_url}', '${format.resolution}')\">\r\n                              ${isPlaying ? '\u23f8 Playing' : '\u25b6 Stream'}\r\n                          <\/button>\r\n                          ${!is360p ? `<button class=\"yvv-action-btn yvv-download-action\" onclick=\"yvv_downloadFile('${format.download_url}', '${format.resolution}', 'video')\">\r\n                              \u2b07\ufe0f Download\r\n                          <\/button>` : ''}\r\n                      <\/div>\r\n                  `;\r\n              } else {\r\n                  formatCard.innerHTML = `\r\n                      <div class=\"yvv-format-header\">\r\n                          <div class=\"yvv-format-quality\">Audio Quality<\/div>\r\n                          <div class=\"yvv-format-type-badge\">MP3<\/div>\r\n                      <\/div>\r\n                      <div class=\"yvv-format-actions\">\r\n                          <button class=\"yvv-action-btn yvv-audio-action ${isPlaying ? 'playing' : ''}\" onclick=\"yvv_streamAudio('${format.download_url}')\">\r\n                              ${isPlaying ? '\ud83c\udfb5 Playing' : '\ud83c\udfb5 Stream Audio'}\r\n                          <\/button>\r\n                          <button class=\"yvv-action-btn yvv-download-action\" onclick=\"yvv_downloadFile('${format.download_url}', 'Audio', 'audio')\">\r\n                              \u2b07\ufe0f Download\r\n                          <\/button>\r\n                      <\/div>\r\n                  `;\r\n              }\r\n  \r\n              formatGrid.appendChild(formatCard);\r\n          });\r\n      }\r\n  \r\n      function yvv_streamVideo(url, resolution) {\r\n          yvv_streamVideoDirectly(url, resolution);\r\n          yvv_updateCurrentPlayingFormat(resolution, 'video');\r\n      }\r\n  \r\n      function yvv_streamAudio(url) {\r\n          const audioPlayer = document.getElementById('yvv-audioPlayer');\r\n          const audioPlayerSection = document.getElementById('yvv-audioPlayerSection');\r\n  \r\n          \/\/ Set audio source\r\n          audioPlayer.src = url;\r\n          audioPlayer.load();\r\n  \r\n          \/\/ Show audio player section\r\n          audioPlayerSection.style.display = 'block';\r\n          audioPlayerSection.scrollIntoView({ behavior: 'smooth' });\r\n  \r\n          \/\/ Reset controls\r\n          isAudioPlaying = false;\r\n          document.getElementById('yvv-audioPlayBtn').textContent = '\u25b6';\r\n  \r\n          \/\/ Setup event listeners\r\n          yvv_setupAudioEventListeners();\r\n  \r\n          \/\/ Update playing format\r\n          yvv_updateCurrentPlayingFormat('Audio', 'audio');\r\n  \r\n          \/\/ Hide video player if open\r\n          document.getElementById('yvv-videoPlayerSection').style.display = 'none';\r\n      }\r\n  \r\n      async function yvv_downloadFile(url, quality, type) {\r\n          const downloadBtn = event.target;\r\n          const originalText = downloadBtn.innerHTML;\r\n  \r\n          downloadBtn.disabled = true;\r\n          downloadBtn.innerHTML = '\u23f3 Preparing...';\r\n  \r\n          \/\/ Create abort controller for cancellation\r\n          downloadController = new AbortController();\r\n  \r\n          try {\r\n              yvv_showDownloadProgress(`Starting ${quality} download...`, 0);\r\n  \r\n              const response = await fetch(url, {\r\n                  signal: downloadController.signal\r\n              });\r\n  \r\n              if (!response.ok) {\r\n                  throw new Error(`HTTP error! status: ${response.status}`);\r\n              }\r\n  \r\n              const totalSize = parseInt(response.headers.get('content-length') || '0');\r\n              const reader = response.body.getReader();\r\n              let receivedSize = 0;\r\n              const chunks = [];\r\n  \r\n              while (true) {\r\n                  const { done, value } = await reader.read();\r\n  \r\n                  if (done) break;\r\n  \r\n                  chunks.push(value);\r\n                  receivedSize += value.length;\r\n  \r\n                  const progress = totalSize ? (receivedSize \/ totalSize) * 100 : 0;\r\n                  yvv_showDownloadProgress(`Downloading ${quality}...`, progress, receivedSize, totalSize);\r\n              }\r\n  \r\n              yvv_showDownloadProgress('Processing download...', 95, receivedSize, totalSize);\r\n  \r\n              \/\/ Create blob and download\r\n              const mimeType = type === 'video' ? 'video\/mp4' : 'audio\/mpeg';\r\n              const extension = type === 'video' ? 'mp4' : 'mp3';\r\n              const blob = new Blob(chunks, { type: mimeType });\r\n              const downloadUrl = URL.createObjectURL(blob);\r\n  \r\n              \/\/ Create download link\r\n              const a = document.createElement('a');\r\n              a.href = downloadUrl;\r\n              a.download = `${currentVideoData.title.replace(\/[^a-zA-Z0-9\\s]\/g, '_').trim()}_${quality}.${extension}`;\r\n              a.style.display = 'none';\r\n              document.body.appendChild(a);\r\n              a.click();\r\n              document.body.removeChild(a);\r\n  \r\n              \/\/ Clean up URL\r\n              setTimeout(() => URL.revokeObjectURL(downloadUrl), 1000);\r\n  \r\n              yvv_showDownloadProgress('Download completed!', 100, receivedSize, totalSize);\r\n              setTimeout(yvv_hideDownloadProgress, 3000);\r\n  \r\n          } catch (error) {\r\n              if (error.name === 'AbortError') {\r\n                  yvv_showDownloadProgress('Download cancelled', 0);\r\n                  setTimeout(yvv_hideDownloadProgress, 2000);\r\n              } else {\r\n                  yvv_showError(`Download failed: ${error.message}`);\r\n                  yvv_hideDownloadProgress();\r\n              }\r\n          } finally {\r\n              downloadBtn.disabled = false;\r\n              downloadBtn.innerHTML = originalText;\r\n              downloadController = null;\r\n          }\r\n      }\r\n  \r\n      function yvv_cancelDownload() {\r\n          if (downloadController) {\r\n              downloadController.abort();\r\n              downloadController = null;\r\n          }\r\n      }\r\n  \r\n      function yvv_setupVideoEventListeners() {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n  \r\n          \/\/ Remove existing event listeners\r\n          video.removeEventListener('timeupdate', yvv_updateVideoProgress);\r\n          video.removeEventListener('loadedmetadata', yvv_updateVideoProgress);\r\n          video.removeEventListener('ended', yvv_handleVideoEnded);\r\n  \r\n          \/\/ Add event listeners\r\n          video.addEventListener('timeupdate', yvv_updateVideoProgress);\r\n          video.addEventListener('loadedmetadata', yvv_updateVideoProgress);\r\n          video.addEventListener('ended', yvv_handleVideoEnded);\r\n  \r\n          \/\/ Initialize volume\r\n          const volumeSlider = document.getElementById('yvv-videoVolumeControl');\r\n          video.volume = volumeSlider.value \/ 100;\r\n      }\r\n  \r\n      function yvv_setupAudioEventListeners() {\r\n          const audio = document.getElementById('yvv-audioPlayer');\r\n  \r\n          \/\/ Remove existing event listeners\r\n          audio.removeEventListener('timeupdate', yvv_updateAudioProgress);\r\n          audio.removeEventListener('loadedmetadata', yvv_updateAudioProgress);\r\n          audio.removeEventListener('ended', yvv_handleAudioEnded);\r\n  \r\n          \/\/ Add event listeners\r\n          audio.addEventListener('timeupdate', yvv_updateAudioProgress);\r\n          audio.addEventListener('loadedmetadata', yvv_updateAudioProgress);\r\n          audio.addEventListener('ended', yvv_handleAudioEnded);\r\n  \r\n          \/\/ Initialize volume\r\n          const volumeSlider = document.getElementById('yvv-audioVolumeSlider');\r\n          audio.volume = volumeSlider.value \/ 100;\r\n      }\r\n  \r\n      function yvv_toggleVideoPlayback() {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n          const btn = document.getElementById('yvv-playPauseControl');\r\n  \r\n          if (isVideoPlaying) {\r\n              video.pause();\r\n              btn.textContent = '\u25b6';\r\n              isVideoPlaying = false;\r\n          } else {\r\n              video.play().catch(error => {\r\n                  console.error('Video playback failed:', error);\r\n                  yvv_showError('Video streaming not available. Please try another format.');\r\n              });\r\n              btn.textContent = '\u23f8';\r\n              isVideoPlaying = true;\r\n          }\r\n      }\r\n  \r\n      function yvv_toggleAudioPlayback() {\r\n          const audio = document.getElementById('yvv-audioPlayer');\r\n          const btn = document.getElementById('yvv-audioPlayBtn');\r\n  \r\n          if (isAudioPlaying) {\r\n              audio.pause();\r\n              btn.textContent = '\u25b6';\r\n              isAudioPlaying = false;\r\n              yvv_stopVisualizerAnimation();\r\n          } else {\r\n              audio.play().catch(error => {\r\n                  console.error('Audio playback failed:', error);\r\n                  yvv_showError('Audio streaming not available. Please try another format.');\r\n              });\r\n              btn.textContent = '\u23f8';\r\n              isAudioPlaying = true;\r\n              yvv_startVisualizerAnimation();\r\n          }\r\n      }\r\n  \r\n      function yvv_adjustVideoVolume(value) {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n          const volumeIcon = document.getElementById('yvv-videoVolumeIcon');\r\n  \r\n          video.volume = value \/ 100;\r\n  \r\n          if (value == 0) {\r\n              volumeIcon.textContent = '\ud83d\udd07';\r\n          } else if (value < 30) {\r\n              volumeIcon.textContent = '\ud83d\udd08';\r\n          } else if (value < 70) {\r\n              volumeIcon.textContent = '\ud83d\udd09';\r\n          } else {\r\n              volumeIcon.textContent = '\ud83d\udd0a';\r\n          }\r\n      }\r\n  \r\n      function yvv_adjustAudioVolume(value) {\r\n          const audio = document.getElementById('yvv-audioPlayer');\r\n          const volumeIcon = document.getElementById('yvv-audioVolumeIcon');\r\n  \r\n          audio.volume = value \/ 100;\r\n  \r\n          if (value == 0) {\r\n              volumeIcon.textContent = '\ud83d\udd07';\r\n          } else if (value < 30) {\r\n              volumeIcon.textContent = '\ud83d\udd08';\r\n          } else if (value < 70) {\r\n              volumeIcon.textContent = '\ud83d\udd09';\r\n          } else {\r\n              volumeIcon.textContent = '\ud83d\udd0a';\r\n          }\r\n      }\r\n  \r\n      function yvv_seekVideoTo(event) {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n          const progressBar = event.currentTarget;\r\n          const rect = progressBar.getBoundingClientRect();\r\n          const clickX = event.clientX - rect.left;\r\n          const percentage = clickX \/ rect.width;\r\n  \r\n          if (video.duration) {\r\n              video.currentTime = percentage * video.duration;\r\n          }\r\n      }\r\n  \r\n      function yvv_seekAudioTo(event) {\r\n          const audio = document.getElementById('yvv-audioPlayer');\r\n          const progressBar = event.currentTarget;\r\n          const rect = progressBar.getBoundingClientRect();\r\n          const clickX = event.clientX - rect.left;\r\n          const percentage = clickX \/ rect.width;\r\n  \r\n          if (audio.duration) {\r\n              audio.currentTime = percentage * audio.duration;\r\n          }\r\n      }\r\n  \r\n      function yvv_updateVideoProgress() {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n          const progressFill = document.getElementById('yvv-videoProgressFill');\r\n          const timeInfo = document.getElementById('yvv-videoTimeInfo');\r\n  \r\n          if (video.duration) {\r\n              const percentage = (video.currentTime \/ video.duration) * 100;\r\n              progressFill.style.width = percentage + '%';\r\n  \r\n              const currentTime = yvv_formatTime(video.currentTime);\r\n              const totalTime = yvv_formatTime(video.duration);\r\n              timeInfo.textContent = `${currentTime} \/ ${totalTime}`;\r\n          }\r\n      }\r\n  \r\n      function yvv_updateAudioProgress() {\r\n          const audio = document.getElementById('yvv-audioPlayer');\r\n          const progressFill = document.getElementById('yvv-audioProgressFill');\r\n          const timeInfo = document.getElementById('yvv-audioTimeInfo');\r\n  \r\n          if (audio.duration) {\r\n              const percentage = (audio.currentTime \/ audio.duration) * 100;\r\n              progressFill.style.width = percentage + '%';\r\n  \r\n              const currentTime = yvv_formatTime(audio.currentTime);\r\n              const totalTime = yvv_formatTime(audio.duration);\r\n              timeInfo.textContent = `${currentTime} \/ ${totalTime}`;\r\n          }\r\n      }\r\n  \r\n      function yvv_formatTime(seconds) {\r\n          const minutes = Math.floor(seconds \/ 60);\r\n          const remainingSeconds = Math.floor(seconds % 60);\r\n          return `${minutes}:${remainingSeconds.toString().padStart(2, '0')}`;\r\n      }\r\n  \r\n      function yvv_handleVideoEnded() {\r\n          document.getElementById('yvv-playPauseControl').textContent = '\u25b6';\r\n          isVideoPlaying = false;\r\n          document.getElementById('yvv-videoProgressFill').style.width = '0%';\r\n      }\r\n  \r\n      function yvv_handleAudioEnded() {\r\n          document.getElementById('yvv-audioPlayBtn').textContent = '\u25b6';\r\n          isAudioPlaying = false;\r\n          yvv_stopVisualizerAnimation();\r\n          document.getElementById('yvv-audioProgressFill').style.width = '0%';\r\n      }\r\n  \r\n      function yvv_closeVideoPlayer() {\r\n          const video = document.getElementById('yvv-mainVideoPlayer');\r\n          const videoPlayerSection = document.getElementById('yvv-videoPlayerSection');\r\n          const thumbnailOverlay = document.getElementById('yvv-videoThumbnailOverlay');\r\n  \r\n          video.pause();\r\n          video.src = '';\r\n          videoPlayerSection.style.display = 'none';\r\n          thumbnailOverlay.classList.remove('hidden');\r\n          isVideoPlaying = false;\r\n          currentPlayingFormat = null;\r\n          document.getElementById('yvv-playPauseControl').textContent = '\u25b6';\r\n  \r\n          \/\/ Reset format indicators\r\n          document.querySelectorAll('.yvv-format-option').forEach(option => {\r\n              option.classList.remove('playing');\r\n          });\r\n          document.querySelectorAll('.yvv-stream-action').forEach(btn => {\r\n              btn.classList.remove('playing');\r\n              btn.innerHTML = btn.innerHTML.replace('\u23f8 Playing', '\u25b6 Stream');\r\n          });\r\n      }\r\n  \r\n      function yvv_startVisualizerAnimation() {\r\n          const bars = document.querySelectorAll('.yvv-visualizer-bar');\r\n          bars.forEach(bar => {\r\n              bar.style.animationPlayState = 'running';\r\n          });\r\n      }\r\n  \r\n      function yvv_stopVisualizerAnimation() {\r\n          const bars = document.querySelectorAll('.yvv-visualizer-bar');\r\n          bars.forEach(bar => {\r\n              bar.style.animationPlayState = 'paused';\r\n          });\r\n      }\r\n  \r\n      \/\/ Event listeners\r\n      document.getElementById('yvv-videoInput').addEventListener('keypress', function (e) {\r\n          if (e.key === 'Enter') {\r\n              yvv_loadVideo();\r\n          }\r\n      });\r\n  \r\n      document.getElementById('yvv-videoInput').addEventListener('input', function (e) {\r\n          const url = e.target.value.trim();\r\n          if (url && !yvv_isValidYouTubeURL(url)) {\r\n              e.target.classList.add('error');\r\n          } else {\r\n              e.target.classList.remove('error');\r\n              yvv_hideError();\r\n          }\r\n      });\r\n  \r\n      \/\/ Auto-focus on input\r\n      document.getElementById('yvv-videoInput').focus();\r\n  <\/script>\r\n  \r\n  \r\n  \r\n    <noscript>\r\n      <style type=\"text\/css\">\r\n        [data-aos] {\r\n          opacity: 1 !important;\r\n          transform: translate(0) scale(1) !important;\r\n        }\r\n      <\/style>\r\n    <\/noscript>\r\n\r\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.0\/dist\/js\/bootstrap.bundle.min.js\"><\/script>\r\n    <script src=\"https:\/\/unpkg.com\/aos@2.3.1\/dist\/aos.js\"><\/script>\r\n\r\n    <script>\r\n          if (typeof AOS !== 'undefined') {\r\n              AOS.init({\r\n                  duration: 800,\r\n                  easing: 'ease-in-out',\r\n                  once: true\r\n              });\r\n          } else {\r\n              document.querySelectorAll('[data-aos]').forEach(function (el) {\r\n                  el.removeAttribute('data-aos');\r\n              });\r\n          }\r\n\r\n          document.querySelectorAll('a[href^=\"#\"]').forEach(anchor => {\r\n              anchor.addEventListener('click', function (e) {\r\n                  const id = this.getAttribute('href');\r\n                  if (!id || id === '#') return;\r\n                  const target = document.querySelector(id);\r\n                  if (target) {\r\n                      e.preventDefault();\r\n                      target.scrollIntoView({ behavior: 'smooth' });\r\n                  }\r\n              });\r\n          });\r\n    <\/script>\r\n  \r\n  <grammarly-desktop-integration data-grammarly-shadow-root=\"true\"><\/grammarly-desktop-integration><grammarly-desktop-integration data-grammarly-shadow-root=\"true\"><\/grammarly-desktop-integration>\r\n  <script defer=\"\" src=\"https:\/\/static.cloudflareinsights.com\/beacon.min.js\/vcd15cbe7772f49c399c6a5babf22c1241717689176015\" integrity=\"sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==\" data-cf-beacon=\"{\"version\":\"2024.11.0\",\"token\":\"786b797d7952407aac48ed2776a3a826\",\"r\":1,\"server_timing\":{\"name\":{\"cfCacheStatus\":true,\"cfEdge\":true,\"cfExtPri\":true,\"cfL4\":true,\"cfOrigin\":true,\"cfSpeedBrain\":true},\"location_startswith\":null}}\" crossorigin=\"anonymous\"><\/script>\r\n  <script defer=\"\" src=\"https:\/\/static.cloudflareinsights.com\/beacon.min.js\/vcd15cbe7772f49c399c6a5babf22c1241717689176015\" integrity=\"sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==\" data-cf-beacon=\"{\"version\":\"2024.11.0\",\"token\":\"786b797d7952407aac48ed2776a3a826\",\"r\":1,\"server_timing\":{\"name\":{\"cfCacheStatus\":true,\"cfEdge\":true,\"cfExtPri\":true,\"cfL4\":true,\"cfOrigin\":true,\"cfSpeedBrain\":true},\"location_startswith\":null}}\" crossorigin=\"anonymous\"><\/script>\r\n  <script defer=\"\" src=\"https:\/\/static.cloudflareinsights.com\/beacon.min.js\/v8c78df7c7c0f484497ecbca7046644da1771523124516\" integrity=\"sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==\" data-cf-beacon=\"{\"version\":\"2024.11.0\",\"token\":\"786b797d7952407aac48ed2776a3a826\",\"r\":1,\"server_timing\":{\"name\":{\"cfCacheStatus\":true,\"cfEdge\":true,\"cfExtPri\":true,\"cfL4\":true,\"cfOrigin\":true,\"cfSpeedBrain\":true},\"location_startswith\":null}}\" crossorigin=\"anonymous\"><\/script>\r\n \n","protected":false},"author":1,"featured_media":0,"parent":243,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-640","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages\/640","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/comments?post=640"}],"version-history":[{"count":4,"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages\/640\/revisions"}],"predecessor-version":[{"id":663,"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages\/640\/revisions\/663"}],"up":[{"embeddable":true,"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/pages\/243"}],"wp:attachment":[{"href":"https:\/\/viewanonymous.com\/wp-json\/wp\/v2\/media?parent=640"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}