{"id":5597,"date":"2026-06-02T08:32:04","date_gmt":"2026-06-02T08:32:04","guid":{"rendered":"https:\/\/viiewerr.com\/youtube\/title\/"},"modified":"2026-06-27T10:00:34","modified_gmt":"2026-06-27T10:00:34","slug":"title","status":"publish","type":"page","link":"https:\/\/viiewerr.com\/youtube\/title\/","title":{"rendered":"Youtube Title Viewer: Metadata Tool"},"content":{"rendered":"<style type=\"text\/css\">\n.tc-wp-island {\n  width: 100%;\n  max-width: 100%;\n  min-width: 0;\n  box-sizing: border-box;\n  display: flow-root;\n  isolation: isolate;\n  position: relative;\n}\n.tc-wp-island > * {\n  min-width: 0;\n}\n.tc-wp-island *,\n.tc-wp-island *::before,\n.tc-wp-island *::after {\n  box-sizing: border-box;\n}\n.tc-wp-island img,\n.tc-wp-island video,\n.tc-wp-island svg,\n.tc-wp-island iframe {\n  max-width: 100%;\n  height: auto;\n}\n.tc-wp-island .tc-wp-tool {\n  max-width: 100%;\n  min-width: 0;\n}\n.tc-wp-island .tc-wp-tool-html,\n.tc-wp-island .tc-wp-tool-content,\n.tc-wp-island .tc-wp-other {\n  max-width: 100%;\n  min-width: 0;\n  overflow-wrap: anywhere;\n  word-break: break-word;\n}\n\/* Keep tool in post content flow \u2014 not overlapping theme header \/ hero band *\/\n.tc-wp-island {\n  clear: both;\n  z-index: 1;\n}\n.tc-wp-island .tc-wp-tool {\n  position: relative;\n  z-index: 0;\n  clear: both;\n  margin-top: 0;\n  margin-bottom: 1.25rem;\n}\n.tc-wp-island .tc-wp-tool-html {\n  position: relative;\n  z-index: 0;\n  clear: both;\n  contain: layout;\n}\n.tc-wp-island .tc-wp-tool-html > *:first-child {\n  position: relative !important;\n  top: auto !important;\n  left: auto !important;\n  right: auto !important;\n  margin-top: 0 !important;\n  width: 100%;\n  max-width: 100%;\n  box-sizing: border-box;\n}\nbody:has(.tc-wp-island) #main-header,\nbody:has(.tc-wp-island) header.site-header,\nbody:has(.tc-wp-island) .site-header,\nbody:has(.tc-wp-island) #header,\nbody:has(.tc-wp-island) .et-fixed-header,\nbody:has(.tc-wp-island) .elementor-location-header {\n  z-index: 200;\n}\n\/* Space between WP Coder tool + content shortcodes on publish\/draft pages *\/\n.tc-wp-island .tc-wp-tool-html + .tc-wp-tool-content {\n  margin-top: 20px;\n}\n.tc-wp-island .tc-wp-bcd-codes {\n  display: flex;\n  flex-direction: column;\n  gap: 20px;\n}\n\/* Full-width: hide theme sidebar when a ToolsChecker island is present *\/\nbody:has(.tc-wp-island) #sidebar,\nbody:has(.tc-wp-island) .sidebar,\nbody:has(.tc-wp-island) #secondary,\nbody:has(.tc-wp-island) .widget-area,\nbody:has(.tc-wp-island) aside.sidebar,\nbody:has(.tc-wp-island) #right-sidebar,\nbody:has(.tc-wp-island) #left-sidebar,\nbody:has(.tc-wp-island) .sidebar-primary,\nbody:has(.tc-wp-island) .sidebar-secondary,\nbody:has(.tc-wp-island) .ast-sidebar,\nbody:has(.tc-wp-island) .site-sidebar {\n  display: none !important;\n}\n\/* Copygen: hide default page title\/breadcrumb band \u2014 tool pages use template-homepage like category *\/\nbody:has(.tc-wp-island) section.page_header_default,\nbody:has(.tc-wp-island) .page_header_default {\n  display: none !important;\n}\n@media (min-width: 981px) {\n  body:has(.tc-wp-island) #left-area,\n  body:has(.tc-wp-island) #primary,\n  body:has(.tc-wp-island) #content-area,\n  body:has(.tc-wp-island) #content-area .container,\n  body:has(.tc-wp-island) .content-area,\n  body:has(.tc-wp-island) main.site-main,\n  body:has(.tc-wp-island) .site-content .content-area {\n    width: 100% !important;\n    max-width: 100% !important;\n    float: none !important;\n    padding-right: 0 !important;\n    padding-left: 0 !important;\n  }\n  body:has(.tc-wp-island) #main-content .container:before {\n    display: none !important;\n  }\n}\n\/* Tool pages: keep theme H1 readable \u2014 smaller type, full content width, 1\u20132 lines *\/\nbody:has(.tc-wp-island) .fontib-v2-hero-inner {\n  width: min(100%, calc(100vw - 40px)) !important;\n  max-width: 1320px !important;\n}\nbody:has(.tc-wp-island) .fontib-v2-title,\nbody:has(.tc-wp-island) #left-area > .entry-title,\nbody:has(.tc-wp-island) .entry-title h1,\nbody:has(.tc-wp-island) h1.entry-title,\nbody:has(.tc-wp-island) .page-title,\nbody:has(.tc-wp-island) .et_pb_title_container h1 {\n  max-width: 100% !important;\n  width: 100%;\n  font-size: clamp(24px, 2.6vw, 38px) !important;\n  line-height: 1.2 !important;\n  letter-spacing: -0.01em;\n}\n<\/style>\n<div class=\"tc-wp-island\">\n<section class=\"tc-wp-tool\" data-tool-index=\"1\">\n<div class=\"tc-wp-tool-html\"> <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700;800&display=swap\" rel=\"stylesheet\">\r\n    <style>\r\n        \/* \r\n         * FIX: Restored the global reset. This is crucial for removing the default\r\n         * body margin that was breaking the full-page background. This is a\r\n         * common and safe reset.\r\n         *\/\r\n        .yttv-wrapper * {\r\n            margin: 0;\r\n            padding: 0;\r\n            box-sizing: border-box;\r\n        }\r\n\r\n        \/* \r\n         * The main wrapper styles for encapsulation,\r\n         * ensuring the background and font settings don't leak globally\r\n         * beyond the component itself.\r\n         *\/\r\n        .yttv-wrapper {\r\n            font-family: 'Inter', sans-serif;\r\n            \r\n      background: hsla(159, 82%, 55%, 1);\r\n\r\nbackground: linear-gradient(90deg, hsla(159, 82%, 55%, 1) 0%, hsla(206, 98%, 48%, 1) 100%);\r\n\r\nbackground: -moz-linear-gradient(90deg, hsla(159, 82%, 55%, 1) 0%, hsla(206, 98%, 48%, 1) 100%);\r\n\r\nbackground: -webkit-linear-gradient(90deg, hsla(159, 82%, 55%, 1) 0%, hsla(206, 98%, 48%, 1) 100%);\r\n            color: #ffffff;\r\n           \r\n            line-height: 1.5;\r\n            font-size: 30px;\r\n            font-weight: 700;\r\n        }\r\n\r\n        .yttv-container {\r\n            max-width: 64%;\r\n            margin: 0 auto;\r\n            padding: 100px 16px; \r\n        }\r\n\r\n        \/* Header *\/\r\n        .yttv-header {\r\n            text-align: center;\r\n            margin-bottom: 40px;\r\n            padding: 30px 0;\r\n        }\r\n\r\n        .yttv-logo-container {\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            gap: 15px;\r\n            margin-bottom: 20px;\r\n        }\r\n\r\n        .yttv-logo {\r\n            width: 50px;\r\n            height: 50px;\r\n            background: linear-gradient(135deg, #ff6b6b, #ee5a52, #ff4757, #ff3838);\r\n            border-radius: 12px;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            box-shadow: 0 8px 25px rgba(255, 71, 87, 0.4);\r\n        }\r\n\r\n        .yttv-youtube-icon {\r\n            width: 28px;\r\n            height: 28px;\r\n            fill: white;\r\n        }\r\n\r\n        .yttv-title {\r\n            font-size: 2.2rem;\r\n            font-weight: 800;\r\n            background: linear-gradient(135deg, #ffffff, #f1f2f6, #e3f2fd, #bbdefb);\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n            background-clip: text;\r\n            margin-bottom: 8px;\r\n        }\r\n\r\n        .yttv-subtitle {\r\n            font-size: 1rem;\r\n            color: rgba(255, 255, 255, 0.8);\r\n            font-weight: 500;\r\n        }\r\n\r\n        \/* Input Section *\/\r\n        .yttv-input-section {\r\n            background: linear-gradient(135deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.05));\r\n            backdrop-filter: blur(20px);\r\n            border-radius: 20px;\r\n            padding: 30px;\r\n            margin-bottom: 30px;\r\n            border: 1px solid rgba(255, 255, 255, 0.3);\r\n            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);\r\n        }\r\n\r\n        .yttv-input-title {\r\n            font-size: 1.3rem;\r\n            font-weight: 700;\r\n            color: white;\r\n            margin-bottom: 15px;\r\n            text-align: center;\r\n        }\r\n\r\n        .yttv-input-group {\r\n            display: flex;\r\n            gap: 12px;\r\n            margin-bottom: 20px;\r\n        }\r\n\r\n     .yttv-input-field {\r\n\tflex: 1;\r\n\tpadding: 14px 18px;\r\n\tborder: 2px solid rgba(255, 255, 255, 0.2);\r\n\tborder-radius: 12px;\r\n\tbackground: rgba(255, 255, 255, 0.1);\r\n\tcolor: #1b5071;\r\n\tfont-size: 14px;\r\n\tfont-weight: 500;\r\n\ttransition: all 0.3s ease;\r\n\tfont-family: 'Inter', sans-serif;\r\n}\r\n\r\n        .yttv-input-field:focus {\r\n            outline: none;\r\n            border-color: #5f27cd;\r\n            background: rgba(255, 255, 255, 0.15);\r\n        }\r\n\r\n        .yttv-input-field::placeholder {\r\n            color: rgba(255, 255, 255, 0.6);\r\n        }\r\n\r\n        .yttv-btn {\r\n            padding: 14px 20px;\r\n            border: none;\r\n            border-radius: 12px;\r\n            font-size: 14px;\r\n            font-weight: 600;\r\n            cursor: pointer;\r\n            transition: all 0.3s ease;\r\n            font-family: 'Inter', sans-serif;\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 8px;\r\n        }\r\n\r\n        .yttv-btn-paste {\r\n            background: linear-gradient(135deg, #5f27cd, #341f97, #2e1065, #1e1b4b);\r\n            color: white;\r\n            box-shadow: 0 4px 15px rgba(95, 39, 205, 0.4);\r\n        }\r\n\r\n        .yttv-btn-paste:hover {\r\n            transform: translateY(-2px);\r\n            box-shadow: 0 6px 20px rgba(95, 39, 205, 0.4);\r\n        }\r\n\r\n     .yttv-btn-find {\r\n\tbackground: linear-gradient(135deg, #2a82a4, #4b7cb9, #2e86de, #1e90ff);\r\n\tcolor: white;\r\n\twidth: 100%;\r\n\tjustify-content: center;\r\n\tpadding: 16px;\r\n\tfont-size: 16px;\r\n\tfont-weight: 700;\r\n\tbox-shadow: 0 4px 15px rgba(0, 210, 211, 0.4);\r\n}\r\n\r\n        .yttv-btn-find:hover {\r\n            transform: translateY(-2px);\r\n            box-shadow: 0 6px 20px rgba(0, 210, 211, 0.4);\r\n        }\r\n\r\n        .yttv-btn:disabled {\r\n            opacity: 0.6;\r\n            cursor: not-allowed;\r\n            transform: none !important;\r\n        }\r\n\r\n        .yttv-btn-icon {\r\n            width: 16px;\r\n            height: 16px;\r\n            fill: currentColor;\r\n        }\r\n\r\n\r\n\r\n        .yttv-inline-spinner {\r\n            width: 16px;\r\n            height: 16px;\r\n            border: 2px solid rgba(255, 255, 255, 0.95);\r\n            border-top-color: transparent;\r\n            border-radius: 50%;\r\n            animation: yttv-spin 1s linear infinite;\r\n            display: inline-block;\r\n        }\r\n\r\n        \/* Loading *\/\r\n        .yttv-loading {\r\n            display: none;\r\n            text-align: center;\r\n            padding: 40px;\r\n            background: rgba(255, 255, 255, 0.1);\r\n            backdrop-filter: blur(20px);\r\n            border-radius: 20px;\r\n            margin-bottom: 30px;\r\n            border: 1px solid rgba(255, 255, 255, 0.2);\r\n        }\r\n\r\n        .yttv-loading-spinner {\r\n            width: 40px;\r\n            height: 40px;\r\n            border: 3px solid rgba(255, 255, 255, 0.3);\r\n            border-top: 3px solid #00d2d3;\r\n            border-radius: 50%;\r\n            animation: yttv-spin 1s linear infinite;\r\n            margin: 0 auto 20px;\r\n        }\r\n\r\n        .yttv-loading-text {\r\n            font-size: 1.1rem;\r\n            font-weight: 600;\r\n            color: white;\r\n        }\r\n\r\n        \/* Results *\/\r\n        .yttv-results {\r\n            display: none;\r\n        }\r\n\r\n        .yttv-video-card {\r\n            background: linear-gradient(135deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.05));\r\n            backdrop-filter: blur(20px);\r\n            border-radius: 20px;\r\n            border: 1px solid rgba(255, 255, 255, 0.3);\r\n            overflow: hidden;\r\n            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);\r\n        }\r\n\r\n        \/* Video Header *\/\r\n        .yttv-video-header {\r\n            padding: 25px;\r\n            display: flex;\r\n            flex-direction: column;\r\n            gap: 20px;\r\n        }\r\n\r\n        .yttv-thumbnail-container {\r\n            position: relative;\r\n            border-radius: 12px;\r\n            overflow: hidden;\r\n            aspect-ratio: 16\/9;\r\n            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);\r\n        }\r\n\r\n        .yttv-thumbnail {\r\n            width: 100%;\r\n            height: 100%;\r\n            object-fit: cover;\r\n        }\r\n\r\n        .yttv-video-info .yttv-video-title {\r\n            font-size: 1.4rem;\r\n            font-weight: 700;\r\n            color: white;\r\n            margin-bottom: 15px;\r\n            line-height: 1.3;\r\n        }\r\n\r\n        .yttv-channel-info {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 12px;\r\n            padding: 15px;\r\n            background: rgba(255, 255, 255, 0.1);\r\n            border-radius: 12px;\r\n            margin-bottom: 20px;\r\n        }\r\n\r\n        .yttv-channel-avatar {\r\n            width: 40px;\r\n            height: 40px;\r\n            background: linear-gradient(135deg, #ff4757, #ff3838, #ff2d55, #ff1744);\r\n            border-radius: 10px;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n        }\r\n\r\n        .yttv-channel-icon {\r\n            width: 20px;\r\n            height: 20px;\r\n            fill: white;\r\n        }\r\n\r\n        .yttv-channel-details .yttv-channel-name {\r\n            font-size: 1rem;\r\n            font-weight: 600;\r\n            color: white;\r\n            margin-bottom: 2px;\r\n        }\r\n\r\n        .yttv-channel-link {\r\n            color: #00d2d3;\r\n            text-decoration: none;\r\n            font-weight: 600;\r\n        }\r\n\r\n        .yttv-channel-link:hover {\r\n            color: #54a0ff;\r\n        }\r\n\r\n        .yttv-verified-text {\r\n            color: rgba(255, 255, 255, 0.7);\r\n            font-size: 0.85rem;\r\n        }\r\n\r\n        \/* Stats Grid *\/\r\n        .yttv-stats-grid {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));\r\n            gap: 15px;\r\n        }\r\n\r\n        .yttv-stat-card {\r\n            background: linear-gradient(135deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.05));\r\n            border-radius: 12px;\r\n            padding: 15px;\r\n            text-align: center;\r\n            border: 1px solid rgba(255, 255, 255, 0.3);\r\n            transition: transform 0.3s ease;\r\n        }\r\n\r\n        .yttv-stat-card:hover {\r\n            transform: translateY(-3px);\r\n        }\r\n\r\n        .yttv-stat-icon {\r\n            width: 24px;\r\n            height: 24px;\r\n            margin: 0 auto 8px;\r\n            padding: 6px;\r\n            border-radius: 8px;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n        }\r\n\r\n        .yttv-stat-card.yttv-views .yttv-stat-icon {\r\n            background: linear-gradient(135deg, #54a0ff, #2e86de, #1e90ff, #007bff);\r\n        }\r\n\r\n        .yttv-stat-card.yttv-likes .yttv-stat-icon {\r\n            background: linear-gradient(135deg, #ff6b6b, #ee5a52, #ff4757, #ff3838);\r\n        }\r\n\r\n        .yttv-stat-card.yttv-published .yttv-stat-icon {\r\n            background: linear-gradient(135deg, #5f27cd, #341f97, #2e1065, #1e1b4b);\r\n        }\r\n      \r\n      .yttv-channel-link {\r\n\tcolor: #2a7f80;\r\n\ttext-decoration: none;\r\n\tfont-weight: 600;\r\n}\r\n\r\n        .yttv-stat-icon svg {\r\n            width: 12px;\r\n            height: 12px;\r\n            fill: white;\r\n        }\r\n\r\n        .yttv-stat-label {\r\n            font-size: 0.75rem;\r\n            color: rgba(255, 255, 255, 0.7);\r\n            font-weight: 500;\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.5px;\r\n            margin-bottom: 4px;\r\n        }\r\n\r\n        .yttv-stat-value {\r\n            font-size: 1.1rem;\r\n            font-weight: 700;\r\n            color: white;\r\n        }\r\n\r\n        \/* Title Section *\/\r\n        .yttv-title-section {\r\n            padding: 25px;\r\n            background: rgba(255, 255, 255, 0.05);\r\n            border-top: 1px solid rgba(255, 255, 255, 0.1);\r\n        }\r\n\r\n        .yttv-section-header {\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: space-between;\r\n            margin-bottom: 20px;\r\n            flex-wrap: wrap;\r\n            gap: 15px;\r\n        }\r\n\r\n        .yttv-section-title {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 12px;\r\n        }\r\n\r\n        .yttv-section-icon {\r\n            width: 40px;\r\n            height: 40px;\r\n            background: linear-gradient(135deg, #5f27cd, #341f97, #2e1065, #1e1b4b);\r\n            border-radius: 10px;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n        }\r\n\r\n        .yttv-section-icon svg {\r\n            width: 20px;\r\n            height: 20px;\r\n            fill: white;\r\n        }\r\n\r\n        .yttv-section-title-text .yttv-section-title-heading {\r\n            font-size: 1.2rem;\r\n            font-weight: 700;\r\n            color: white;\r\n            margin-bottom: 2px;\r\n        }\r\n\r\n        .yttv-section-title-text p {\r\n            font-size: 0.85rem;\r\n            color: rgba(255, 255, 255, 0.7);\r\n        }\r\n\r\n        .yttv-copy-btn {\r\n            background: linear-gradient(135deg, #00d2d3, #54a0ff, #2e86de, #1e90ff);\r\n            color: white;\r\n            border: none;\r\n            padding: 10px 16px;\r\n            border-radius: 10px;\r\n            cursor: pointer;\r\n            font-weight: 600;\r\n            font-size: 0.9rem;\r\n            transition: all 0.3s ease;\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 8px;\r\n        }\r\n\r\n        .yttv-copy-btn:hover {\r\n            transform: translateY(-2px);\r\n        }\r\n\r\n        .yttv-copy-btn.yttv-copied {\r\n            background: linear-gradient(135deg, #2ed573, #1e90ff);\r\n        }\r\n\r\n        .yttv-copy-icon {\r\n            width: 14px;\r\n            height: 14px;\r\n            fill: currentColor;\r\n        }\r\n\r\n        .yttv-title-content {\r\n            background: rgba(255, 255, 255, 0.1);\r\n            padding: 20px;\r\n            border-radius: 12px;\r\n            border-left: 4px solid #5f27cd;\r\n            color: rgba(255, 255, 255, 0.9);\r\n            line-height: 1.6;\r\n            font-size: 0.9rem;\r\n            white-space: pre-wrap;\r\n            border: 1px solid rgba(255, 255, 255, 0.1);\r\n        }\r\n\r\n        \/* Error State *\/\r\n        .yttv-error {\r\n            background: rgba(255, 107, 107, 0.1);\r\n            backdrop-filter: blur(20px);\r\n            border-radius: 20px;\r\n            padding: 30px;\r\n            border: 1px solid rgba(255, 107, 107, 0.2);\r\n            text-align: center;\r\n            margin-bottom: 30px;\r\n        }\r\n\r\n        .yttv-error-icon {\r\n            font-size: 3rem;\r\n            margin-bottom: 15px;\r\n        }\r\n\r\n        .yttv-error .yttv-error-title {\r\n            font-size: 1.3rem;\r\n            font-weight: 700;\r\n            color: #ff6b6b;\r\n            margin-bottom: 10px;\r\n        }\r\n\r\n        .yttv-error .yttv-error-message {\r\n            font-size: 0.95rem;\r\n            color: rgba(255, 107, 107, 0.8);\r\n            margin-bottom: 8px;\r\n        }\r\n\r\n        .yttv-error .yttv-error-details {\r\n            color: rgba(255, 255, 255, 0.7);\r\n            font-size: 0.85rem;\r\n        }\r\n\r\n        \/* Features Grid *\/\r\n        .yttv-features-grid {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\r\n            gap: 15px;\r\n            margin-bottom: 30px;\r\n        }\r\n\r\n        .yttv-feature-card {\r\n            background: linear-gradient(135deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.05));\r\n            backdrop-filter: blur(20px);\r\n            border-radius: 12px;\r\n            padding: 20px;\r\n            text-align: center;\r\n            border: 1px solid rgba(255, 255, 255, 0.3);\r\n            transition: transform 0.3s ease;\r\n        }\r\n\r\n        .yttv-feature-card:hover {\r\n            transform: translateY(-5px);\r\n        }\r\n\r\n        .yttv-feature-icon {\r\n            font-size: 1.8rem;\r\n            margin-bottom: 8px;\r\n            display: block;\r\n        }\r\n\r\n        .yttv-feature-text {\r\n            font-size: 0.85rem;\r\n            font-weight: 600;\r\n            color: white;\r\n        }\r\n\r\n        \/* Animations *\/\r\n        @keyframes yttv-spin {\r\n            to {\r\n                transform: rotate(360deg);\r\n            }\r\n        }\r\n\t\t\t\r\n\t\t\t.yttv-input-field {\r\n\tflex: 1;\r\n\tpadding: 14px 18px !important;\r\n\tborder: 2px solid rgba(255, 255, 255, 0.2) !important;\r\n\tborder-radius: 12px;\r\n\tbackground: rgba(255, 255, 255, 0.1);\r\n\tcolor: #1b5071;\r\n\tfont-size: 14px;\r\n\tfont-weight: 500;\r\n\ttransition: all 0.3s ease;\r\n\tfont-family: 'Inter', sans-serif;\r\n}\r\n\t\t\t\r\n\t\t\t.yttv-wrapper input.text,\r\n.yttv-wrapper input.title,\r\n.yttv-wrapper input[type=\"email\"],\r\n.yttv-wrapper input[type=\"password\"],\r\n.yttv-wrapper input[type=\"tel\"],\r\n.yttv-wrapper input[type=\"text\"],\r\n.yttv-wrapper select,\r\n.yttv-wrapper textarea {\r\n\tbackground-color: transparent;\r\n}\r\n\r\n        \/* \r\n         * FIX: Custom Scrollbar styles are scoped to wrapper.\r\n         * Prefixing them with wrapper class prevents them from applying to the main\r\n         * document scrollbar. This change makes them work as intended again.\r\n         *\/\r\n        .yttv-wrapper ::-webkit-scrollbar {\r\n            width: 6px;\r\n        }\r\n\r\n        .yttv-wrapper ::-webkit-scrollbar-track {\r\n            background: rgba(255, 255, 255, 0.1);\r\n            border-radius: 3px;\r\n        }\r\n\r\n        .yttv-wrapper ::-webkit-scrollbar-thumb {\r\n            background: linear-gradient(135deg, #5f27cd, #341f97, #2e1065, #1e1b4b);\r\n            border-radius: 3px;\r\n        }\r\n\r\n        \/* Responsive *\/\r\n        @media (max-width: 768px) {\r\n            .yttv-container {\r\n                padding: 15px;\r\n            }\r\n\r\n            .yttv-title {\r\n                font-size: 1.8rem;\r\n            }\r\n\r\n            .yttv-input-group {\r\n                flex-direction: column;\r\n            }\r\n\r\n            .yttv-input-section,\r\n            .yttv-loading,\r\n            .yttv-error {\r\n                padding: 20px;\r\n            }\r\n\r\n            .yttv-video-header {\r\n                padding: 20px;\r\n            }\r\n\t\t\t\t\t.yttv-title {\r\n\tfont-size: 1.3rem;\r\n\tmargin-top: 40px;\r\n}\r\n        }\r\n\r\n        \/* Search Again Button *\/\r\n        .yttv-search-again-section {\r\n            padding: 25px;\r\n            background: rgba(255, 255, 255, 0.05);\r\n            border-top: 1px solid rgba(255, 255, 255, 0.1);\r\n            text-align: center;\r\n        }\r\n\r\n        .yttv-btn-search-again {\r\n            background: linear-gradient(135deg, #ff6b6b, #ee5a52, #ff4757, #ff3838);\r\n            color: white;\r\n            border: none;\r\n            padding: 14px 24px;\r\n            border-radius: 12px;\r\n            cursor: pointer;\r\n            font-weight: 600;\r\n            font-size: 1rem;\r\n            transition: all 0.3s ease;\r\n            display: inline-flex;\r\n            align-items: center;\r\n            gap: 10px;\r\n            box-shadow: 0 4px 15px rgba(255, 107, 107, 0.4);\r\n        }\r\n\r\n        .yttv-btn-search-again:hover {\r\n            transform: translateY(-2px);\r\n            box-shadow: 0 6px 20px rgba(255, 107, 107, 0.4);\r\n        }\r\n\r\n        .yttv-search-again-icon {\r\n            width: 16px;\r\n            height: 16px;\r\n            fill: currentColor;\r\n        }\r\n      \r\n              @media (max-width: 991px) {\r\n            .yttv-container {\r\n                max-width: 720px;\r\n                padding: 15px;\r\n            }\r\n\r\n            .yttv-title {\r\n                font-size: 2rem;\r\n            }\r\n\r\n            .yttv-subtitle {\r\n                font-size: 0.9rem;\r\n            }\r\n\r\n            .yttv-input-section,\r\n            .yttv-loading,\r\n            .yttv-error {\r\n                padding: 25px;\r\n            }\r\n\r\n            .yttv-input-title {\r\n                font-size: 1.2rem;\r\n            }\r\n\r\n            .yttv-input-group {\r\n                flex-direction: column;\r\n                gap: 10px;\r\n            }\r\n\r\n            .yttv-btn {\r\n                width: 100%;\r\n                justify-content: center;\r\n            }\r\n\r\n            .yttv-video-header {\r\n                flex-direction: column;\r\n                padding: 20px;\r\n                gap: 15px;\r\n            }\r\n\r\n            .yttv-video-info .yttv-video-title {\r\n                font-size: 1.2rem;\r\n                margin-bottom: 10px;\r\n            }\r\n\r\n            .yttv-channel-info {\r\n                padding: 10px;\r\n                margin-bottom: 15px;\r\n            }\r\n\r\n            .yttv-channel-name {\r\n                font-size: 0.9rem;\r\n            }\r\n\r\n            .yttv-stats-grid {\r\n                grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));\r\n                gap: 10px;\r\n            }\r\n\r\n            .yttv-stat-card {\r\n                padding: 12px;\r\n            }\r\n\r\n            .yttv-stat-label {\r\n                font-size: 0.7rem;\r\n            }\r\n\r\n            .yttv-stat-value {\r\n                font-size: 1rem;\r\n            }\r\n\r\n            .yttv-section-header {\r\n                flex-direction: column;\r\n                align-items: flex-start;\r\n                gap: 10px;\r\n            }\r\n\r\n            .yttv-section-title-text .yttv-section-title-heading {\r\n                font-size: 1.1rem;\r\n            }\r\n\r\n            .yttv-copy-btn {\r\n                width: 100%;\r\n                justify-content: center;\r\n            }\r\n\r\n            .yttv-title-content {\r\n                padding: 15px;\r\n                font-size: 0.85rem;\r\n            }\r\n\r\n            .yttv-error .yttv-error-title {\r\n                font-size: 1.2rem;\r\n            }\r\n\r\n            .yttv-error .yttv-error-message {\r\n                font-size: 0.9rem;\r\n            }\r\n\r\n            .yttv-features-grid {\r\n                grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));\r\n                gap: 10px;\r\n            }\r\n\r\n            .yttv-feature-card {\r\n                padding: 15px;\r\n            }\r\n\r\n            .yttv-feature-text {\r\n                font-size: 0.8rem;\r\n            }\r\n\r\n            .yttv-btn-search-again {\r\n                font-size: 0.9rem;\r\n                padding: 12px 20px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 768px) {\r\n            .yttv-container {\r\n                max-width: 100%;\r\n                padding: 15px;\r\n            }\r\n\r\n            .yttv-title {\r\n                font-size: 1.8rem;\r\n            }\r\n\r\n            .yttv-subtitle {\r\n                font-size: 0.85rem;\r\n            }\r\n\r\n            .yttv-input-section,\r\n            .yttv-loading,\r\n            .yttv-error {\r\n                padding: 20px;\r\n            }\r\n\r\n            .yttv-input-title {\r\n                font-size: 1.1rem;\r\n            }\r\n\r\n            .yttv-video-info .yttv-video-title {\r\n                font-size: 1.1rem;\r\n            }\r\n\r\n            .yttv-stats-grid {\r\n                grid-template-columns: 1fr 1fr; \/* Two columns on smaller screens *\/\r\n            }\r\n\r\n            .yttv-section-title-text .yttv-section-title-heading {\r\n                font-size: 1rem;\r\n            }\r\n\r\n            .yttv-title-content {\r\n                font-size: 0.8rem;\r\n            }\r\n\r\n            .yttv-btn-find {\r\n                padding: 14px;\r\n                font-size: 15px;\r\n            }\r\n\t\t\t\t\t.yttv-title {\r\n\tfont-size: 1.3rem;\r\n\tmargin-top: 40px;\r\n}\r\n\t\t\t\t\t.yttv-logo {\r\n\twidth: 45px;\r\n\theight: 45px;\r\n\tborder-radius: 10px;\r\n\tmargin-top: 27px;\r\n}\r\n        }\r\n\r\n        @media (max-width: 600px) {\r\n            .yttv-header {\r\n                padding: 20px 0;\r\n                margin-bottom: 30px;\r\n            }\r\n\r\n            .yttv-logo-container {\r\n                gap: 10px;\r\n                margin-bottom: 15px;\r\n            }\r\n\r\n            .yttv-logo {\r\n                width: 45px;\r\n                height: 45px;\r\n                border-radius: 10px;\r\n            }\r\n\r\n            .yttv-youtube-icon {\r\n                width: 25px;\r\n                height: 25px;\r\n            }\r\n\r\n            .yttv-title {\r\n                font-size: 1.6rem;\r\n            }\r\n\r\n            .yttv-subtitle {\r\n                font-size: 0.8rem;\r\n            }\r\n\r\n            .yttv-input-field {\r\n                padding: 12px 15px;\r\n                font-size: 13px;\r\n            }\r\n\r\n            .yttv-btn {\r\n                padding: 12px 15px;\r\n                font-size: 13px;\r\n            }\r\n\r\n            .yttv-btn-find {\r\n                padding: 14px;\r\n                font-size: 14px;\r\n            }\r\n\r\n            .yttv-loading-spinner {\r\n                width: 35px;\r\n                height: 35px;\r\n            }\r\n\r\n            .yttv-loading-text {\r\n                font-size: 1rem;\r\n            }\r\n\r\n            .yttv-video-header {\r\n                padding: 15px;\r\n            }\r\n\r\n            .yttv-video-info .yttv-video-title {\r\n                font-size: 1rem;\r\n            }\r\n\r\n            .yttv-channel-avatar {\r\n                width: 35px;\r\n                height: 35px;\r\n            }\r\n\r\n            .yttv-channel-icon {\r\n                width: 18px;\r\n                height: 18px;\r\n            }\r\n\r\n            .yttv-channel-name {\r\n                font-size: 0.85rem;\r\n            }\r\n\r\n            .yttv-verified-text {\r\n                font-size: 0.75rem;\r\n            }\r\n\r\n            .yttv-stats-grid {\r\n                grid-template-columns: 1fr; \/* Stack on very small screens *\/\r\n            }\r\n\r\n            .yttv-stat-card {\r\n                padding: 10px;\r\n            }\r\n\r\n            .yttv-stat-label {\r\n                font-size: 0.65rem;\r\n            }\r\n\r\n            .yttv-stat-value {\r\n                font-size: 0.9rem;\r\n            }\r\n\r\n            .yttv-section-icon {\r\n                width: 35px;\r\n                height: 35px;\r\n            }\r\n\r\n            .yttv-section-icon svg {\r\n                width: 18px;\r\n                height: 18px;\r\n            }\r\n\r\n            .yttv-section-title-text .yttv-section-title-heading {\r\n                font-size: 0.95rem;\r\n            }\r\n\r\n            .yttv-section-title-text p {\r\n                font-size: 0.8rem;\r\n            }\r\n\r\n            .yttv-copy-btn {\r\n                padding: 8px 12px;\r\n                font-size: 0.8rem;\r\n            }\r\n\r\n            .yttv-title-content {\r\n                padding: 12px;\r\n                font-size: 0.75rem;\r\n            }\r\n\r\n            .yttv-error .yttv-error-icon {\r\n                font-size: 2.5rem;\r\n            }\r\n\r\n            .yttv-error .yttv-error-title {\r\n                font-size: 1.1rem;\r\n            }\r\n\r\n            .yttv-error .yttv-error-message {\r\n                font-size: 0.85rem;\r\n            }\r\n\r\n            .yttv-features-grid {\r\n                grid-template-columns: 1fr 1fr;\r\n            }\r\n\r\n            .yttv-feature-card {\r\n                padding: 15px;\r\n            }\r\n\r\n            .yttv-feature-text {\r\n                font-size: 0.75rem;\r\n            }\r\n\r\n            .yttv-btn-search-again {\r\n                font-size: 0.85rem;\r\n                padding: 10px 18px;\r\n            }\r\n\t\t\t\t\t.yttv-wrapper {\r\n\tfont-family: 'Inter', sans-serif;\r\n\tcolor: #ffffff;\r\n\tline-height: 1.5;\r\n\tfont-size: 14px;\r\n\tfont-weight: 700;\r\n}\r\n\t\t\t\t\t.yttv-title {\r\n\tfont-size: 1.3rem;\r\n\tmargin-top: 40px;\r\n}\r\n\t\t\t\t\t.yttv-logo {\r\n\twidth: 45px;\r\n\theight: 45px;\r\n\tborder-radius: 10px;\r\n\tmargin-top: 27px;\r\n}\r\n        }\r\n\r\n        @media (max-width: 400px) {\r\n            .yttv-container {\r\n                padding: 10px;\r\n            }\r\n\r\n            .yttv-title {\r\n                font-size: 1.4rem;\r\n            }\r\n\r\n            .yttv-subtitle {\r\n                font-size: 0.75rem;\r\n            }\r\n\r\n            .yttv-input-section,\r\n            .yttv-loading,\r\n            .yttv-error {\r\n                padding: 15px;\r\n            }\r\n\r\n            .yttv-input-title {\r\n                font-size: 1rem;\r\n            }\r\n\r\n            .yttv-btn-paste {\r\n                padding: 10px 12px;\r\n                font-size: 12px;\r\n            }\r\n\r\n            .yttv-btn-find {\r\n                padding: 12px;\r\n                font-size: 13px;\r\n            }\r\n\r\n            .yttv-loading-spinner {\r\n                width: 30px;\r\n                height: 30px;\r\n            }\r\n\r\n            .yttv-loading-text {\r\n                font-size: 0.9rem;\r\n            }\r\n\r\n            .yttv-video-info .yttv-video-title {\r\n                font-size: 0.95rem;\r\n            }\r\n\r\n            .yttv-channel-name {\r\n                font-size: 0.8rem;\r\n            }\r\n\r\n            .yttv-verified-text {\r\n                font-size: 0.7rem;\r\n            }\r\n\r\n            .yttv-section-title-text .yttv-section-title-heading {\r\n                font-size: 0.9rem;\r\n            }\r\n\r\n            .yttv-section-title-text p {\r\n                font-size: 0.75rem;\r\n            }\r\n\r\n            .yttv-copy-btn {\r\n                font-size: 0.75rem;\r\n            }\r\n\r\n            .yttv-title-content {\r\n                font-size: 0.7rem;\r\n            }\r\n\r\n            .yttv-error .yttv-error-title {\r\n                font-size: 1rem;\r\n            }\r\n\r\n            .yttv-error .yttv-error-message {\r\n                font-size: 0.8rem;\r\n            }\r\n\r\n            .yttv-features-grid {\r\n                grid-template-columns: 1fr; \/* Stack on smallest screens *\/\r\n            }\r\n\r\n            .yttv-feature-card {\r\n                padding: 12px;\r\n            }\r\n\r\n            .yttv-feature-text {\r\n                font-size: 0.7rem;\r\n            }\r\n\r\n            .yttv-btn-search-again {\r\n                font-size: 0.8rem;\r\n                padding: 8px 15px;\r\n            }\r\n\t\t\t\t\t.yttv-wrapper {\r\n\tfont-family: 'Inter', sans-serif;\r\n\tcolor: #ffffff;\r\n\tline-height: 1.5;\r\n\tfont-size: 14px;\r\n\tfont-weight: 700;\r\n}\r\n\t\t\t\t\t.yttv-title {\r\n\tfont-size: 1.3rem;\r\n\tmargin-top: 40px;\r\n}\r\n\t\t\t\t\t.yttv-logo {\r\n\twidth: 45px;\r\n\theight: 45px;\r\n\tborder-radius: 10px;\r\n\tmargin-top: 27px;\r\n}\r\n        }\r\n\r\n        @media (max-width: 375px) {\r\n            .yttv-title {\r\n                font-size: 1.3rem;\r\n            }\r\n\r\n            .yttv-subtitle {\r\n                font-size: 0.7rem;\r\n            }\r\n\r\n            .yttv-input-field {\r\n                font-size: 12px;\r\n            }\r\n\r\n            .yttv-btn-paste {\r\n                font-size: 11px;\r\n            }\r\n\r\n            .yttv-btn-find {\r\n                font-size: 12px;\r\n            }\r\n\r\n            .yttv-video-info .yttv-video-title {\r\n                font-size: 0.9rem;\r\n            }\r\n\r\n            .yttv-channel-name {\r\n                font-size: 0.75rem;\r\n            }\r\n\r\n            .yttv-verified-text {\r\n                font-size: 0.65rem;\r\n            }\r\n\r\n            .yttv-stat-label {\r\n                font-size: 0.6rem;\r\n            }\r\n\r\n            .yttv-stat-value {\r\n                font-size: 0.8rem;\r\n            }\r\n\r\n            .yttv-section-title-text .yttv-section-title-heading {\r\n                font-size: 0.85rem;\r\n            }\r\n\r\n            .yttv-section-title-text p {\r\n                font-size: 0.7rem;\r\n            }\r\n\r\n            .yttv-copy-btn {\r\n                font-size: 0.7rem;\r\n                padding: 7px 10px;\r\n            }\r\n\r\n            .yttv-title-content {\r\n                font-size: 0.65rem;\r\n            }\r\n\r\n            .yttv-error .yttv-error-title {\r\n                font-size: 0.95rem;\r\n            }\r\n\r\n            .yttv-error .yttv-error-message {\r\n                font-size: 0.75rem;\r\n            }\r\n\r\n            .yttv-feature-text {\r\n                font-size: 0.65rem;\r\n            }\r\n\r\n            .yttv-btn-search-again {\r\n                font-size: 0.75rem;\r\n                padding: 7px 12px;\r\n            }\r\n\t\t\t\t\t.yttv-wrapper {\r\n\tfont-family: 'Inter', sans-serif;\r\n\tcolor: #ffffff;\r\n\tline-height: 1.5;\r\n\tfont-size: 14px;\r\n\tfont-weight: 700;\r\n}\r\n\t\t\t\t\t.yttv-title {\r\n\tfont-size: 1.3rem;\r\n\tmargin-top: 40px;\r\n}\r\n\t\t\t\t\t.yttv-logo {\r\n\twidth: 45px;\r\n\theight: 45px;\r\n\tborder-radius: 10px;\r\n\tmargin-top: 27px;\r\n}\r\n        }\r\n    <\/style>\r\n\r\n    <div class=\"yttv-wrapper\">\r\n        <div class=\"yttv-container\">\r\n            <!-- Header -->\r\n            <div class=\"yttv-header\">\r\n                <div class=\"yttv-logo-container\">\r\n                    <div class=\"yttv-logo\">\r\n                        <svg class=\"yttv-youtube-icon\" viewBox=\"0 0 24 24\">\r\n                            <path d=\"M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z\"><\/path>\r\n                        <\/svg>\r\n                    <\/div>\r\n                    <div>\r\n                        <h1 class=\"yttv-title\">YouTube Title Viewer<\/h1>\r\n                        <p class=\"yttv-subtitle\">Extract video titles instantly<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <!-- Features Grid -->\r\n                <div class=\"yttv-features-grid\">\r\n                    <div class=\"yttv-feature-card\">\r\n                        <span class=\"yttv-feature-icon\">\u26a1<\/span>\r\n                        <p class=\"yttv-feature-text\">Fast<\/p>\r\n                    <\/div>\r\n                    <div class=\"yttv-feature-card\">\r\n                        <span class=\"yttv-feature-icon\">\ud83d\udd12<\/span>\r\n                        <p class=\"yttv-feature-text\">Secure<\/p>\r\n                    <\/div>\r\n                    <div class=\"yttv-feature-card\">\r\n                        <span class=\"yttv-feature-icon\">\ud83d\udcf1<\/span>\r\n                        <p class=\"yttv-feature-text\">Mobile<\/p>\r\n                    <\/div>\r\n                    <div class=\"yttv-feature-card\">\r\n                        <span class=\"yttv-feature-icon\">\ud83c\udd93<\/span>\r\n                        <p class=\"yttv-feature-text\">Free<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- Input Section -->\r\n            <div class=\"yttv-input-section\">\r\n                <div class=\"yttv-input-title\">Enter YouTube URL<\/div>\r\n\r\n                <div class=\"yttv-input-group\">\r\n                    <input type=\"text\" id=\"yttv-videoInput\" class=\"yttv-input-field\" placeholder=\"Paste YouTube URL here...\">\r\n                    <button class=\"yttv-btn yttv-btn-paste\" onclick=\"pasteFromClipboard()\">\r\n                        <svg class=\"yttv-btn-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n                            <path d=\"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\"><\/path>\r\n                        <\/svg>\r\n                        Paste\r\n                    <\/button>\r\n                <\/div>\r\n\r\n                <button class=\"yttv-btn yttv-btn-find\" onclick=\"findTitle()\">\r\n                    <svg class=\"yttv-btn-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n                        <path d=\"M9.5,3L8,6.5H4.5L7.91,9.91L6.5,16.5L9.5,14L12.5,16.5L11.09,9.91L14.5,6.5H11L9.5,3Z\"><\/path>\r\n                    <\/svg>\r\n                    Extract Title\r\n                <\/button>\r\n            <\/div>\r\n\r\n            <!-- Loading State -->\r\n            <div class=\"yttv-loading\" id=\"yttv-loading\">\r\n                <div class=\"yttv-loading-spinner\"><\/div>\r\n                <p class=\"yttv-loading-text\">Processing your request...<\/p>\r\n            <\/div>\r\n\r\n            <!-- Results Container -->\r\n            <div class=\"yttv-results\" id=\"yttv-results\">\r\n                <!-- Results will be populated here -->\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n<script>\r\n(function () {\r\n    'use strict';\r\n\r\n    let isProcessing = false;\r\n    const API_ENDPOINT = 'https:\/\/tools.xrespond.com\/api\/youtube\/video-descriptions';\r\n\r\n    function getById(id) {\r\n        return document.getElementById(id);\r\n    }\r\n\r\n    function escapeHTML(value) {\r\n        return String(value ?? '')\r\n            .replace(\/&\/g, '&amp;')\r\n            .replace(\/<\/g, '&lt;')\r\n            .replace(\/>\/g, '&gt;')\r\n            .replace(\/\"\/g, '&quot;')\r\n            .replace(\/'\/g, '&#039;');\r\n    }\r\n\r\n    function safeUrl(value) {\r\n        if (!value) return '#';\r\n        try {\r\n            const url = new URL(value, window.location.href);\r\n            return ['http:', 'https:'].includes(url.protocol) ? url.href : '#';\r\n        } catch (error) {\r\n            return '#';\r\n        }\r\n    }\r\n\r\n    function firstValue() {\r\n        for (const value of arguments) {\r\n            if (value !== undefined && value !== null && String(value).trim() !== '') {\r\n                return value;\r\n            }\r\n        }\r\n        return '';\r\n    }\r\n\r\n    function normalizeVideoData(payload) {\r\n        const candidates = [\r\n            payload?.data?.data,\r\n            payload?.data?.video,\r\n            payload?.data,\r\n            payload?.video,\r\n            payload\r\n        ].filter(item => item && typeof item === 'object');\r\n\r\n        let source = candidates.find(item => firstValue(\r\n            item.name,\r\n            item.title,\r\n            item.videoTitle,\r\n            item.video_title\r\n        ));\r\n\r\n        if (!source) source = candidates[0] || {};\r\n\r\n        return {\r\n            title: firstValue(source.name, source.title, source.videoTitle, source.video_title, source.author_name),\r\n            channelName: firstValue(source.channelName, source.channel_name, source.author_name, source.ownerChannelName),\r\n            channelUrl: firstValue(source.channelUrl, source.channel_url, source.author_url, source.ownerProfileUrl),\r\n            viewCount: firstValue(source.viewCount, source.view_count, source.views, source.statistics?.viewCount),\r\n            likesCount: firstValue(source.likesCount, source.likeCount, source.like_count, source.likes, source.statistics?.likeCount),\r\n            publishDate: firstValue(source.publishDate, source.publish_date, source.publishedAt, source.uploadDate, source.date)\r\n        };\r\n    }\r\n\r\n    async function fetchApiData(input) {\r\n        const formData = new FormData();\r\n        formData.append('url_or_id', input);\r\n\r\n        const response = await fetch(API_ENDPOINT, {\r\n            method: 'POST',\r\n            body: formData\r\n        });\r\n\r\n        if (!response.ok) {\r\n            let details = '';\r\n            try {\r\n                details = await response.text();\r\n            } catch (error) {\r\n                details = response.statusText || 'Request failed';\r\n            }\r\n            throw new Error(`API Error ${response.status}: ${details || 'Request failed'}`);\r\n        }\r\n\r\n        const payload = await response.json();\r\n        const normalized = normalizeVideoData(payload);\r\n\r\n        if (!normalized.title) {\r\n            throw new Error('No title found in API response');\r\n        }\r\n\r\n        return normalized;\r\n    }\r\n\r\n    async function fetchOEmbedData(videoId) {\r\n        const youtubeUrl = `https:\/\/www.youtube.com\/watch?v=${encodeURIComponent(videoId)}`;\r\n        const response = await fetch(`https:\/\/www.youtube.com\/oembed?url=${encodeURIComponent(youtubeUrl)}&format=json`);\r\n\r\n        if (!response.ok) {\r\n            throw new Error('Could not fetch video title. Please check the YouTube URL and try again.');\r\n        }\r\n\r\n        const payload = await response.json();\r\n\r\n        return {\r\n            title: payload.title || '',\r\n            channelName: payload.author_name || 'Unknown Channel',\r\n            channelUrl: payload.author_url || '#',\r\n            viewCount: 'N\/A',\r\n            likesCount: 'N\/A',\r\n            publishDate: 'N\/A'\r\n        };\r\n    }\r\n\r\n    window.pasteFromClipboard = async function pasteFromClipboard() {\r\n        const input = getById('yttv-videoInput');\r\n        if (!input) return;\r\n\r\n        try {\r\n            const text = await navigator.clipboard.readText();\r\n            input.value = text;\r\n            input.focus();\r\n        } catch (error) {\r\n            showError('Unable to access clipboard. Please paste manually.');\r\n        }\r\n    };\r\n\r\n    window.copyTitle = async function copyTitle() {\r\n        const titleElement = document.querySelector('.yttv-title-content');\r\n        const copyBtn = document.querySelector('.yttv-copy-btn');\r\n        if (!titleElement || !copyBtn) return;\r\n\r\n        const title = titleElement.textContent.trim();\r\n\r\n        try {\r\n            await navigator.clipboard.writeText(title);\r\n            copyBtn.innerHTML = `\r\n                <svg class=\"yttv-copy-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\r\n                    <path d=\"M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z\"><\/path>\r\n                <\/svg>\r\n                Copied!\r\n            `;\r\n            copyBtn.classList.add('yttv-copied');\r\n\r\n            setTimeout(function () {\r\n                copyBtn.innerHTML = `\r\n                    <svg class=\"yttv-copy-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\r\n                        <path d=\"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\"><\/path>\r\n                    <\/svg>\r\n                    Copy\r\n                `;\r\n                copyBtn.classList.remove('yttv-copied');\r\n            }, 2000);\r\n        } catch (error) {\r\n            showError('Failed to copy title to clipboard.');\r\n        }\r\n    };\r\n\r\n    window.extractVideoId = function extractVideoId(input) {\r\n        const value = String(input || '').trim();\r\n        if (!value) return null;\r\n\r\n        if (\/^[a-zA-Z0-9_-]{11}$\/.test(value)) {\r\n            return value;\r\n        }\r\n\r\n        try {\r\n            const url = new URL(value);\r\n            const host = url.hostname.replace(\/^www\\.\/, '').replace(\/^m\\.\/, '');\r\n\r\n            if (host === 'youtu.be') {\r\n                const id = url.pathname.split('\/').filter(Boolean)[0];\r\n                return \/^[a-zA-Z0-9_-]{11}$\/.test(id) ? id : null;\r\n            }\r\n\r\n            if (host.endsWith('youtube.com')) {\r\n                const watchId = url.searchParams.get('v');\r\n                if (watchId && \/^[a-zA-Z0-9_-]{11}$\/.test(watchId)) return watchId;\r\n\r\n                const parts = url.pathname.split('\/').filter(Boolean);\r\n                const knownPath = ['embed', 'v', 'shorts', 'live'].find(path => parts[0] === path);\r\n                if (knownPath && parts[1] && \/^[a-zA-Z0-9_-]{11}$\/.test(parts[1])) return parts[1];\r\n            }\r\n        } catch (error) {\r\n            const match = value.match(\/(?:v=|youtu\\.be\\\/|embed\\\/|shorts\\\/|live\\\/|\\\/v\\\/)([a-zA-Z0-9_-]{11})\/);\r\n            if (match) return match[1];\r\n        }\r\n\r\n        return null;\r\n    };\r\n\r\n    function getThumbnailUrls(videoId) {\r\n        return [\r\n            `https:\/\/img.youtube.com\/vi\/${videoId}\/maxresdefault.jpg`,\r\n            `https:\/\/img.youtube.com\/vi\/${videoId}\/hqdefault.jpg`,\r\n            `https:\/\/img.youtube.com\/vi\/${videoId}\/mqdefault.jpg`,\r\n            `https:\/\/img.youtube.com\/vi\/${videoId}\/default.jpg`\r\n        ];\r\n    }\r\n\r\n    window.findTitle = async function findTitle() {\r\n        if (isProcessing) return;\r\n\r\n        const inputField = getById('yttv-videoInput');\r\n        const loading = getById('yttv-loading');\r\n        const results = getById('yttv-results');\r\n        const findBtn = document.querySelector('.yttv-btn-find');\r\n\r\n        if (!inputField || !loading || !results || !findBtn) return;\r\n\r\n        const input = inputField.value.trim();\r\n        if (!input) {\r\n            showError('Please enter a YouTube URL or video ID.');\r\n            return;\r\n        }\r\n\r\n        const videoId = window.extractVideoId(input);\r\n        if (!videoId) {\r\n            showError('Invalid YouTube URL or video ID.');\r\n            return;\r\n        }\r\n\r\n        isProcessing = true;\r\n        findBtn.disabled = true;\r\n        findBtn.innerHTML = `\r\n            <span class=\"yttv-inline-spinner\" aria-hidden=\"true\"><\/span>\r\n            Processing...\r\n        `;\r\n        loading.style.display = 'block';\r\n        results.style.display = 'none';\r\n        results.innerHTML = '';\r\n\r\n        try {\r\n            let videoData;\r\n            try {\r\n                videoData = await fetchApiData(input);\r\n            } catch (apiError) {\r\n                videoData = await fetchOEmbedData(videoId);\r\n            }\r\n\r\n            displayResults(videoData, videoId);\r\n            inputField.value = '';\r\n        } catch (error) {\r\n            showError(error.message || 'Something went wrong. Please try again.');\r\n        } finally {\r\n            isProcessing = false;\r\n            findBtn.disabled = false;\r\n            findBtn.innerHTML = `\r\n                <svg class=\"yttv-btn-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\r\n                    <path d=\"M9.5,3L8,6.5H4.5L7.91,9.91L6.5,16.5L9.5,14L12.5,16.5L11.09,9.91L14.5,6.5H11L9.5,3Z\"><\/path>\r\n                <\/svg>\r\n                Extract Title\r\n            `;\r\n            loading.style.display = 'none';\r\n        }\r\n    };\r\n\r\n    function showError(message) {\r\n        const results = getById('yttv-results');\r\n        if (!results) return;\r\n\r\n        results.innerHTML = `\r\n            <div class=\"yttv-error\">\r\n                <div class=\"yttv-error-icon\">\u26a0\ufe0f<\/div>\r\n                <div class=\"yttv-error-title\">Error<\/div>\r\n                <p class=\"yttv-error-message\"><strong>Message:<\/strong> ${escapeHTML(message)}<\/p>\r\n                <p class=\"yttv-error-details\">Please check your YouTube URL and try again.<\/p>\r\n            <\/div>\r\n        `;\r\n        results.style.display = 'block';\r\n    }\r\n\r\n    function createThumbnailWithFallback(videoId) {\r\n        const thumbnailUrls = getThumbnailUrls(videoId);\r\n        let currentIndex = 0;\r\n\r\n        const img = document.createElement('img');\r\n        img.className = 'yttv-thumbnail';\r\n        img.alt = 'Video Thumbnail';\r\n        img.loading = 'lazy';\r\n\r\n        function tryNextThumbnail() {\r\n            if (currentIndex < thumbnailUrls.length) {\r\n                img.src = thumbnailUrls[currentIndex];\r\n                currentIndex += 1;\r\n            } else {\r\n                img.src = 'data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAwIiBoZWlnaHQ9IjE2OSIgdmlld0JveD0iMCAwIDMwMCAxNjkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZyI+CjxyZWN0IHdpZHRoPSIzMDAiIGhlaWdodD0iMTY5IiBmaWxsPSIjNDQ0Ii8+Cjx0ZXh0IHg9IjE1MCIgeT0iODQuNSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZmlsbD0iIzk5OSIgZm9udC1zaXplPSIxNCI+VGh1bWJuYWlsPC90ZXh0Pgo8L3N2Zz4=';\r\n                img.onerror = null;\r\n            }\r\n        }\r\n\r\n        img.onerror = tryNextThumbnail;\r\n        tryNextThumbnail();\r\n        return img;\r\n    }\r\n\r\n    function displayResults(data, videoId) {\r\n        const results = getById('yttv-results');\r\n        if (!results) return;\r\n\r\n        const title = data.title || 'No title available';\r\n        const channelName = data.channelName || 'Unknown Channel';\r\n        const channelUrl = safeUrl(data.channelUrl);\r\n        const viewCount = data.viewCount || 'N\/A';\r\n        const likesCount = data.likesCount || 'N\/A';\r\n        const publishDate = data.publishDate || 'N\/A';\r\n\r\n        results.innerHTML = `\r\n            <div class=\"yttv-video-card\">\r\n                <div class=\"yttv-video-header\">\r\n                    <div class=\"yttv-video-title\">${escapeHTML(title)}<\/div>\r\n\r\n                    <div class=\"yttv-thumbnail-container\" id=\"yttv-thumbnailContainer\"><\/div>\r\n\r\n                    <div class=\"yttv-video-info\">\r\n                        <div class=\"yttv-channel-info\">\r\n                            <div class=\"yttv-channel-avatar\">\r\n                                <svg class=\"yttv-channel-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\r\n                                    <path d=\"M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z\"><\/path>\r\n                                <\/svg>\r\n                            <\/div>\r\n                            <div class=\"yttv-channel-details\">\r\n                                <div class=\"yttv-channel-name\">\r\n                                    <a href=\"${escapeHTML(channelUrl)}\" class=\"yttv-channel-link\" target=\"_blank\" rel=\"noopener noreferrer\">\r\n                                        ${escapeHTML(channelName)}\r\n                                    <\/a>\r\n                                <\/div>\r\n                                <p class=\"yttv-verified-text\">YouTube Channel<\/p>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"yttv-stats-grid\">\r\n                            <div class=\"yttv-stat-card yttv-views\">\r\n                                <div class=\"yttv-stat-icon\">\r\n                                    <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\r\n                                        <path d=\"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\"><\/path>\r\n                                    <\/svg>\r\n                                <\/div>\r\n                                <div class=\"yttv-stat-label\">Views<\/div>\r\n                                <div class=\"yttv-stat-value\">${escapeHTML(viewCount)}<\/div>\r\n                            <\/div>\r\n\r\n                            <div class=\"yttv-stat-card yttv-likes\">\r\n                                <div class=\"yttv-stat-icon\">\r\n                                    <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\r\n                                        <path d=\"M12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5 2,5.41 4.42,3 7.5,3C9.24,3 10.91,3.81 12,5.08C13.09,3.81 14.76,3 16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12,21.35Z\"><\/path>\r\n                                    <\/svg>\r\n                                <\/div>\r\n                                <div class=\"yttv-stat-label\">Likes<\/div>\r\n                                <div class=\"yttv-stat-value\">${escapeHTML(likesCount)}<\/div>\r\n                            <\/div>\r\n\r\n                            <div class=\"yttv-stat-card yttv-published\">\r\n                                <div class=\"yttv-stat-icon\">\r\n                                    <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\r\n                                        <path d=\"M19,3H18V1H16V3H8V1H6V3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M19,19H5V8H19V19Z\"><\/path>\r\n                                    <\/svg>\r\n                                <\/div>\r\n                                <div class=\"yttv-stat-label\">Date<\/div>\r\n                                <div class=\"yttv-stat-value\">${escapeHTML(publishDate)}<\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"yttv-title-section\">\r\n                            <div class=\"yttv-section-header\">\r\n                                <div class=\"yttv-section-title\">\r\n                                    <div class=\"yttv-section-icon\">\r\n                                        <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\r\n                                            <path d=\"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M18,20H6V4H13V9H18V20Z\"><\/path>\r\n                                        <\/svg>\r\n                                    <\/div>\r\n                                    <div class=\"yttv-section-title-text\">\r\n                                        <div class=\"yttv-section-title-heading\">Video Title<\/div>\r\n                                        <p>Copy the video title<\/p>\r\n                                    <\/div>\r\n                                <\/div>\r\n\r\n                                <button type=\"button\" class=\"yttv-copy-btn\" onclick=\"copyTitle()\">\r\n                                    <svg class=\"yttv-copy-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\r\n                                        <path d=\"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\"><\/path>\r\n                                    <\/svg>\r\n                                    Copy\r\n                                <\/button>\r\n                            <\/div>\r\n\r\n                            <div class=\"yttv-title-content\">${escapeHTML(title)}<\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"yttv-search-again-section\">\r\n                    <button type=\"button\" class=\"yttv-btn-search-again\" onclick=\"searchAgain()\">\r\n                        <svg class=\"yttv-search-again-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\">\r\n                            <path d=\"M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z\"><\/path>\r\n                        <\/svg>\r\n                        Search Again\r\n                    <\/button>\r\n                <\/div>\r\n            <\/div>\r\n        `;\r\n\r\n        const thumbnailContainer = getById('yttv-thumbnailContainer');\r\n        if (thumbnailContainer) {\r\n            thumbnailContainer.appendChild(createThumbnailWithFallback(videoId));\r\n        }\r\n\r\n        results.style.display = 'block';\r\n    }\r\n\r\n    window.searchAgain = function searchAgain() {\r\n        const results = getById('yttv-results');\r\n        const inputField = getById('yttv-videoInput');\r\n        const wrapper = document.querySelector('.yttv-wrapper');\r\n\r\n        if (results) {\r\n            results.style.display = 'none';\r\n            results.innerHTML = '';\r\n        }\r\n\r\n        if (inputField) {\r\n            inputField.value = '';\r\n            inputField.focus();\r\n        }\r\n\r\n        if (wrapper) {\r\n            wrapper.scrollIntoView({ behavior: 'smooth', block: 'start' });\r\n        }\r\n    };\r\n\r\n    const inputField = getById('yttv-videoInput');\r\n    if (inputField) {\r\n        inputField.addEventListener('keydown', function (event) {\r\n            if (event.key === 'Enter' && !isProcessing) {\r\n                event.preventDefault();\r\n                window.findTitle();\r\n            }\r\n        });\r\n    }\r\n}());\r\n<\/script><\/div>\n<div class=\"tc-wp-tool-content\"><div class=\"wpc-scope-124\">\n<div class=\"tc-wp-content-root\" data-tc-wp-scope=\"1\" style=\"max-width:100%;box-sizing:border-box;isolation:isolate;min-width:0;position:relative;\">\n<div class=\"tt\">\n<div class=\"tt-inner\">\n<div class=\"tt-hb\" style=\"margin-top: 4rem;\"><\/div>\n<\/div><section class=\"tt-sec tt-bg-wh\" aria-labelledby=\"tt-h1\">\n<div class=\"tt-inner\">\n<div class=\"tt-hb\">\n<h2 id=\"tt-h1\">How <span class=\"tt-gx\">YouTube Title Viewer<\/span> Works<\/h2>\n<p>Access and explore YouTube video titles with powerful viewing tools designed for research and analysis.<\/p>\n<\/div>\n<div class=\"tt-g3\" data-tt-grid=\"g1\">\n<article class=\"tt-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tt-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg>\n<\/div>\n<h3>Title View<\/h3>\n<p>See the complete title text of any YouTube video without truncation or omission ensuring you never miss important keywords or context, making your overall experience on the platform smooth efficient and thoroughly enjoyable.<\/p>\n<\/article>\n<article class=\"tt-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tt-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"\/><\/svg>\n<\/div>\n<h3>Title Search<\/h3>\n<p>Search through thousands of video titles by entering any keyword or phrase instantly for fast and accurate content discovery across the platform, giving you complete control and flexibility over every aspect of your content journey.<\/p>\n<\/article>\n<article class=\"tt-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tt-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><line x1=\"8\" y1=\"6\" x2=\"21\" y2=\"6\"\/><line x1=\"8\" y1=\"12\" x2=\"21\" y2=\"12\"\/><line x1=\"8\" y1=\"18\" x2=\"21\" y2=\"18\"\/><line x1=\"3\" y1=\"6\" x2=\"3.01\" y2=\"6\"\/><line x1=\"3\" y1=\"12\" x2=\"3.01\" y2=\"12\"\/><line x1=\"3\" y1=\"18\" x2=\"3.01\" y2=\"18\"\/><\/svg>\n<\/div>\n<h3>Title List<\/h3>\n<p>Browse video titles in a clean organized list format for easy scanning and navigation making it simple to review large amounts of content, ensuring you get the maximum value and utility from every single visit you make.<\/p>\n<\/article>\n<article class=\"tt-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tt-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"\/><\/svg>\n<\/div>\n<h3>Title Details<\/h3>\n<p>View full title metadata including character count word breakdown and length analysis to understand title optimization strategies used by creators, so you can work smarter achieve more and stay productive throughout your sessions.<\/p>\n<\/article>\n<article class=\"tt-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tt-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><line x1=\"16\" y1=\"3\" x2=\"16\" y2=\"21\"\/><line x1=\"8\" y1=\"3\" x2=\"8\" y2=\"21\"\/><polyline points=\"21 8 16 3 11 8\"\/><polyline points=\"3 16 8 21 13 16\"\/><\/svg>\n<\/div>\n<h3>Title Compare<\/h3>\n<p>Compare titles across similar videos to spot patterns differences and optimization trends that can inform your own video title strategy, providing a seamless intuitive workflow that enhances your daily content management tasks.<\/p>\n<\/article>\n<article class=\"tt-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tt-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 6 12 12 16 14\"\/><\/svg>\n<\/div>\n<h3>Title History<\/h3>\n<p>Track how video titles change over time with complete revision history and timestamps allowing you to see optimization changes and A\/B testing, making your overall experience on the platform smooth efficient and thoroughly enjoyable.<\/p>\n<\/article>\n<\/div>\n<\/div>\n<\/section>\n\n<section class=\"tt-sec tt-bg-ow\" aria-labelledby=\"tt-h2\">\n<div class=\"tt-inner\">\n<div class=\"tt-hb\">\n<h2 id=\"tt-h2\">Key Benefits of <span class=\"tt-gx\">YouTube Title Viewer<\/span><\/h2>\n<p>Experience a fast free and private way to view every YouTube video title without limitations.<\/p>\n<\/div>\n<div class=\"tt-g4\" data-tt-grid=\"g2\">\n<article class=\"tt-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"tt-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"\/><line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"\/><\/svg>\n<\/div>\n<div class=\"tt-cb-body\">\n<h3>Complete Titles<\/h3>\n<p>Every YouTube video title displayed in full with no character limits or hidden text.<\/p>\n<\/div>\n<\/article>\n<article class=\"tt-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"tt-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0\"\/><\/svg>\n<\/div>\n<div class=\"tt-cb-body\">\n<h3>No Login<\/h3>\n<p>Start viewing titles instantly without signing into a YouTube account or any service.<\/p>\n<\/div>\n<\/article>\n<article class=\"tt-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"tt-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 2l-10 8 10 8 10-8-10-8z\"\/><polyline points=\"2 12 12 20 22 12\"\/><\/svg>\n<\/div>\n<div class=\"tt-cb-body\">\n<h3>Unlimited Access<\/h3>\n<p>View as many titles as you want with no daily hourly or usage restrictions applied.<\/p>\n<\/div>\n<\/article>\n<article class=\"tt-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"tt-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"23\"\/><path d=\"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"\/><\/svg>\n<\/div>\n<div class=\"tt-cb-body\">\n<h3>Free Service<\/h3>\n<p>All title viewing features are available completely free with no premium tiers required.<\/p>\n<\/div>\n<\/article>\n<article class=\"tt-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"tt-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10\"\/><\/svg>\n<\/div>\n<div class=\"tt-cb-body\">\n<h3>Quick Load<\/h3>\n<p>Titles load in milliseconds with our optimized delivery and caching infrastructure.<\/p>\n<\/div>\n<\/article>\n<article class=\"tt-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"tt-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><polygon points=\"5 3 19 12 5 21 5 3\"\/><\/svg>\n<\/div>\n<div class=\"tt-cb-body\">\n<h3>Any Video<\/h3>\n<p>Works with every public YouTube video across all categories topics and languages.<\/p>\n<\/div>\n<\/article>\n<article class=\"tt-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"tt-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\/><polyline points=\"7 10 12 15 17 10\"\/><line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\/><\/svg>\n<\/div>\n<div class=\"tt-cb-body\">\n<h3>Title Export<\/h3>\n<p>Export title collections to CSV or JSON format for offline analysis and reporting.<\/p>\n<\/div>\n<\/article>\n\n<article class=\"tt-cb\" tabindex=\"0\" role=\"article\">\n<div class=\"tt-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"5\" y=\"2\" width=\"14\" height=\"20\" rx=\"2\"\/><line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\"\/><\/svg>\n<\/div>\n<div class=\"tt-cb-body\">\n<h3>Multi Device<\/h3>\n<p>Access the service seamlessly across desktop mobile and tablet devices without any restrictions.<\/p>\n<\/div>\n<\/article>\n<\/div>\n<\/div>\n<\/section>\n\n<section class=\"tt-sec tt-bg-wh\" aria-labelledby=\"tt-h3\">\n<div class=\"tt-inner\">\n<div class=\"tt-hb\">\n<h2 id=\"tt-h3\">Who Should Use <span class=\"tt-gx\">YouTube Title Viewer<\/span><\/h2>\n<p>Explore real-world scenarios where our tool delivers the most value and impact for users like you.<\/p>\n<\/div>\n<div class=\"tt-g3\" data-tt-grid=\"g3\">\n<article class=\"tt-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tt-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><polyline points=\"23 6 13.5 15.5 8.5 10.5 1 18\"\/><polyline points=\"17 6 23 6 23 12\"\/><\/svg>\n<\/div>\n<h3>SEO Research<\/h3>\n<p>Analyze how top channels craft their video titles for maximum search ranking and discoverability helping you optimize your own titles for better reach.<\/p>\n<\/article>\n<article class=\"tt-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tt-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"\/><line x1=\"11\" y1=\"11\" x2=\"11\" y2=\"6\"\/><\/svg>\n<\/div>\n<h3>Title Analysis<\/h3>\n<p>Break down successful title structures patterns and content strategies used by creators to understand what drives views and engagement through titles.<\/p>\n<\/article>\n<article class=\"tt-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tt-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 2l-10 8 10 8 10-8-10-8z\"\/><polyline points=\"2 12 12 20 22 12\"\/><\/svg>\n<\/div>\n<h3>Content Strategy<\/h3>\n<p>Research optimal title formats and styles to boost your video discovery and engagement using data driven insights from top performing content.<\/p>\n<\/article>\n<article class=\"tt-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tt-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><polyline points=\"4 7 4 4 20 4 20 7\"\/><line x1=\"9\" y1=\"20\" x2=\"15\" y2=\"20\"\/><line x1=\"12\" y1=\"4\" x2=\"12\" y2=\"20\"\/><\/svg>\n<\/div>\n<h3>Keyword Study<\/h3>\n<p>Discover which keywords drive the most views engagement and subscriber growth for your niche enabling smarter keyword targeting and content planning.<\/p>\n<\/article>\n<article class=\"tt-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tt-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><polyline points=\"23 6 13.5 15.5 8.5 10.5 1 18\"\/><polyline points=\"17 6 23 6 23 12\"\/><\/svg>\n<\/div>\n<h3>Trend Tracking<\/h3>\n<p>Monitor title trend patterns across your niche industry and competitor landscape over time to stay current with evolving content strategies.<\/p>\n<\/article>\n<article class=\"tt-ca\" tabindex=\"0\" role=\"article\">\n<div class=\"tt-ico\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"\/><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"\/><\/svg>\n<\/div>\n<h3>Competitor Intel<\/h3>\n<p>Track how competitors optimize their video titles and adapt their title strategies over time to maintain a competitive edge in your content space.<\/p>\n<\/article>\n<\/div>\n<\/div>\n<\/section>\n\n<\/div>\n<noscript><\/noscript>\n<\/div>\n<\/div><\/div>\n<\/section>\n<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":3,"featured_media":0,"parent":5345,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-homepage.php","meta":{"footnotes":""},"class_list":["post-5597","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/pages\/5597","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/comments?post=5597"}],"version-history":[{"count":2,"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/pages\/5597\/revisions"}],"predecessor-version":[{"id":5703,"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/pages\/5597\/revisions\/5703"}],"up":[{"embeddable":true,"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/pages\/5345"}],"wp:attachment":[{"href":"https:\/\/viiewerr.com\/wp-json\/wp\/v2\/media?parent=5597"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}