Updates titles, meta descriptions, and Open Graph tags across various pages and API responses for improved SEO and language consistency. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 401e2ec0-e00d-4f10-9d0e-60f3d479f9a5 Replit-Commit-Checkpoint-Type: intermediate_checkpoint Replit-Commit-Event-Id: b39b5688-81f4-4af3-b05c-9c9e8c4350ff Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/60d372ff-2c10-46c7-b01b-10c3435136b0/401e2ec0-e00d-4f10-9d0e-60f3d479f9a5/qFrskyV
264 lines
12 KiB
HTML
264 lines
12 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="de">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, user-scalable=no, viewport-fit=cover" />
|
|
<title>Folx TV - Video</title>
|
|
|
|
<!-- Google Consent Management Platform -->
|
|
<script>
|
|
window.dataLayer = window.dataLayer || [];
|
|
function gtag(){dataLayer.push(arguments);}
|
|
gtag('consent', 'default', {
|
|
'ad_storage': 'granted',
|
|
'analytics_storage': 'granted',
|
|
'ad_user_data': 'granted',
|
|
'ad_personalization': 'granted'
|
|
});
|
|
</script>
|
|
<script async src="https://fundingchoicesmessages.google.com/i/pub-4465464714854276?ers=1" nonce="temp-nonce"></script>
|
|
<script nonce="temp-nonce">(function() {function signalGooglefcPresent() {if (!window.frames['googlefcPresent']) {if (document.body) {const iframe = document.createElement('iframe'); iframe.style = 'width: 0; height: 0; border: none; z-index: -1000; left: -1000px; top: -1000px;'; iframe.style.display = 'none'; iframe.name = 'googlefcPresent'; document.body.appendChild(iframe);} else {setTimeout(signalGooglefcPresent, 0);}}}signalGooglefcPresent();})();</script>
|
|
<meta name="description" content="Folx TV - Nummer 1 in Europa für Volksmusik und Schlager. Video Streaming Plattform mit Musik, Unterhaltung und Live-Streaming." />
|
|
|
|
<!-- Google Search Console verification -->
|
|
<meta name="google-site-verification" content="YcRvFNGnAbAnlhQvhODVJOaqHLVdOKnpCqk7oH-xeKE" />
|
|
|
|
<!-- Open Graph meta podatki za družbena omrežja in mobilne aplikacije -->
|
|
<meta property="og:title" content="Folx TV - Video" />
|
|
<meta property="og:description" content="Folx TV - Nummer 1 in Europa für Volksmusik und Schlager. Musik, Unterhaltung und Live-Streaming." />
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:site_name" content="video.folx.tv" />
|
|
<meta property="og:locale" content="de_DE" />
|
|
<meta property="og:url" id="og-url" content="https://video.folx.tv/" />
|
|
<meta property="og:image" id="og-image" content="https://video.folx.tv/api/social-image" />
|
|
<meta property="og:image:width" content="1200" />
|
|
<meta property="og:image:height" content="630" />
|
|
<meta property="og:image:type" content="image/png" />
|
|
<meta property="og:image:alt" content="Folx TV - Video" />
|
|
|
|
<!-- Twitter Card meta podatki -->
|
|
<meta name="twitter:card" content="summary_large_image" />
|
|
<meta name="twitter:site" content="@folxtv" />
|
|
<meta name="twitter:title" content="Folx TV - Video" />
|
|
<meta name="twitter:description" content="Folx TV - Nummer 1 in Europa für Volksmusik und Schlager. Musik, Unterhaltung und Live-Streaming." />
|
|
<meta name="twitter:image" id="twitter-image" content="https://video.folx.tv/api/social-image" />
|
|
<meta name="twitter:image:alt" content="Folx TV - Video" />
|
|
|
|
<!-- WhatsApp/Viber specifične oznake -->
|
|
<meta property="og:image:secure_url" id="og-image-secure" content="https://video.folx.tv/api/social-image" />
|
|
<meta name="format-detection" content="telephone=no" />
|
|
<meta name="robots" content="index, follow" />
|
|
|
|
<!-- Dodatni meta podatki za mobilne naprave -->
|
|
<meta name="application-name" content="video.folx.tv" />
|
|
<meta name="apple-mobile-web-app-title" content="FOLX.TV" />
|
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
|
<meta name="theme-color" content="#6366f1" />
|
|
<meta name="mobile-web-app-capable" content="yes" />
|
|
|
|
<!-- iOS specifične meta oznake -->
|
|
<meta name="apple-touch-fullscreen" content="yes" />
|
|
<meta name="format-detection" content="telephone=no" />
|
|
|
|
<!-- iOS ikone za različne velikosti -->
|
|
<link rel="apple-touch-icon" sizes="57x57" href="/api/favicon?size=57&format=png" />
|
|
<link rel="apple-touch-icon" sizes="60x60" href="/api/favicon?size=60&format=png" />
|
|
<link rel="apple-touch-icon" sizes="72x72" href="/api/favicon?size=72&format=png" />
|
|
<link rel="apple-touch-icon" sizes="76x76" href="/api/favicon?size=76&format=png" />
|
|
<link rel="apple-touch-icon" sizes="114x114" href="/api/favicon?size=114&format=png" />
|
|
<link rel="apple-touch-icon" sizes="120x120" href="/api/favicon?size=120&format=png" />
|
|
<link rel="apple-touch-icon" sizes="144x144" href="/api/favicon?size=144&format=png" />
|
|
<link rel="apple-touch-icon" sizes="152x152" href="/api/favicon?size=152&format=png" />
|
|
<link rel="apple-touch-icon" sizes="180x180" href="/api/favicon?size=180&format=png" />
|
|
|
|
<!-- Favicon -->
|
|
<link rel="icon" type="image/svg+xml" href="/api/favicon" />
|
|
<link rel="apple-touch-icon" href="/api/favicon?size=180&format=png" />
|
|
<link rel="manifest" href="/manifest.json" />
|
|
|
|
<!-- Google AdSense -->
|
|
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4465464714854276" crossorigin="anonymous"></script>
|
|
|
|
<!-- Google tag (gtag.js) - Analytics -->
|
|
<script async src="https://www.googletagmanager.com/gtag/js?id=G-6TC49YVDJ7"></script>
|
|
<script>
|
|
window.dataLayer = window.dataLayer || [];
|
|
function gtag(){dataLayer.push(arguments);}
|
|
gtag('js', new Date());
|
|
gtag('config', 'G-6TC49YVDJ7');
|
|
</script>
|
|
|
|
<!-- JSON-LD Structured Data for SEO -->
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "WebSite",
|
|
"name": "video.folx.tv",
|
|
"alternateName": "Folx TV - Video",
|
|
"url": "https://video.folx.tv",
|
|
"description": "Folx TV - Nummer 1 in Europa für Volksmusik und Schlager. Video Streaming Plattform mit Musik, Unterhaltung und Live-Streaming.",
|
|
"inLanguage": "de",
|
|
"potentialAction": {
|
|
"@type": "SearchAction",
|
|
"target": "https://video.folx.tv/?search={search_term_string}",
|
|
"query-input": "required name=search_term_string"
|
|
},
|
|
"publisher": {
|
|
"@type": "Organization",
|
|
"name": "FOLX.TV",
|
|
"url": "https://folx.tv",
|
|
"logo": {
|
|
"@type": "ImageObject",
|
|
"url": "https://video.folx.tv/folx-logo.png"
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "Organization",
|
|
"name": "FOLX.TV",
|
|
"url": "https://video.folx.tv",
|
|
"logo": "https://video.folx.tv/folx-logo.png",
|
|
"sameAs": [
|
|
"https://www.facebook.com/folxtv",
|
|
"https://www.instagram.com/folx.tv",
|
|
"https://www.youtube.com/@folxtv"
|
|
],
|
|
"contactPoint": {
|
|
"@type": "ContactPoint",
|
|
"contactType": "customer service",
|
|
"availableLanguage": ["German", "English"]
|
|
}
|
|
}
|
|
</script>
|
|
|
|
</head>
|
|
<body>
|
|
<div id="root">
|
|
<!-- Preloader to prevent white screen -->
|
|
<div id="app-preloader" style="
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: linear-gradient(135deg, hsl(220, 13%, 9%) 0%, hsl(220, 13%, 12%) 100%);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
z-index: 9999;
|
|
font-family: 'Poppins', 'Inter', Arial, sans-serif;
|
|
">
|
|
<div style="text-align: center; color: white;">
|
|
<div style="
|
|
width: 50px;
|
|
height: 50px;
|
|
background: linear-gradient(45deg, #ec4c73, #e91e63);
|
|
border-radius: 12px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
margin: 0 auto 20px;
|
|
animation: pulse 2s infinite;
|
|
">
|
|
<div style="
|
|
width: 0;
|
|
height: 0;
|
|
border-left: 16px solid white;
|
|
border-top: 12px solid transparent;
|
|
border-bottom: 12px solid transparent;
|
|
margin-left: 4px;
|
|
"></div>
|
|
</div>
|
|
<h2 style="margin: 0; font-size: 28px; font-weight: 800; letter-spacing: 1px; text-shadow: 2px 2px 8px rgba(0,0,0,0.5);">FOLX.TV</h2>
|
|
<p style="margin: 10px 0 0; opacity: 0.9; font-size: 16px; font-weight: 500;">Amazing Content</p>
|
|
</div>
|
|
</div>
|
|
<style>
|
|
@keyframes pulse {
|
|
0%, 100% { transform: scale(1); }
|
|
50% { transform: scale(1.1); }
|
|
}
|
|
</style>
|
|
</div>
|
|
<script type="module" src="/src/main.tsx" defer></script>
|
|
<link rel="preload" href="/src/main.tsx" as="script" crossorigin>
|
|
<link rel="dns-prefetch" href="//fonts.googleapis.com">
|
|
<link rel="preconnect" href="//fonts.gstatic.com" crossorigin>
|
|
<!-- Replit script removed - caused scrolling issues -->
|
|
|
|
<!-- Dynamic social meta tags update -->
|
|
<script>
|
|
// Set dynamic URLs based on current domain
|
|
const currentOrigin = window.location.origin;
|
|
const socialImageUrl = `${currentOrigin}/api/social-image?v=${Date.now()}`;
|
|
|
|
// Update meta tags with correct URLs
|
|
document.getElementById('og-url').setAttribute('content', currentOrigin + '/');
|
|
document.getElementById('og-image').setAttribute('content', socialImageUrl);
|
|
document.getElementById('twitter-image').setAttribute('content', socialImageUrl);
|
|
document.getElementById('og-image-secure').setAttribute('content', socialImageUrl);
|
|
</script>
|
|
|
|
<!-- Debug script for deployment issues -->
|
|
<script>
|
|
console.log('🚀 video.folx.tv loading...');
|
|
|
|
// Set timeout to detect hanging in Chrome
|
|
let appLoadTimeout = setTimeout(function() {
|
|
console.warn('⚠️ App taking too long to load in Chrome, forcing refresh...');
|
|
const preloader = document.getElementById('app-preloader');
|
|
if (preloader) {
|
|
preloader.innerHTML = '<div style="text-align: center; color: white;"><h2>Loading timeout</h2><p>Refreshing automatically...</p></div>';
|
|
}
|
|
setTimeout(function() {
|
|
location.reload();
|
|
}, 2000);
|
|
}, 8000); // 8 second timeout for Chrome
|
|
|
|
// Global callback for when app loads successfully
|
|
window.appLoaded = function() {
|
|
clearTimeout(appLoadTimeout);
|
|
console.log('⏱️ App load timeout cleared');
|
|
};
|
|
|
|
// Clear any cached service workers
|
|
if ('serviceWorker' in navigator) {
|
|
navigator.serviceWorker.getRegistrations().then(function(registrations) {
|
|
for(let registration of registrations) {
|
|
registration.unregister();
|
|
console.log('🧹 Cleared service worker registration');
|
|
}
|
|
});
|
|
}
|
|
|
|
window.addEventListener('load', function() {
|
|
console.log('✅ Window loaded');
|
|
setTimeout(function() {
|
|
const root = document.getElementById('root');
|
|
const preloader = document.getElementById('app-preloader');
|
|
if (preloader && preloader.style.opacity !== '0') {
|
|
console.error('❌ React app failed to mount - preloader still visible');
|
|
preloader.innerHTML = '<div style="text-align: center; color: white;"><h2>Loading failed</h2><p>Refreshing automatically...</p></div>';
|
|
|
|
// Auto-refresh after 3 seconds
|
|
setTimeout(function() {
|
|
location.reload();
|
|
}, 3000);
|
|
}
|
|
}, 5000);
|
|
});
|
|
|
|
window.addEventListener('error', function(e) {
|
|
console.error('❌ Global error:', e.error);
|
|
});
|
|
|
|
window.addEventListener('unhandledrejection', function(e) {
|
|
console.error('❌ Unhandled promise rejection:', e.reason);
|
|
});
|
|
</script>
|
|
</body>
|
|
</html> |