<!DOCTYPE html>
<html lang="vi" style="margin-top: 0px !important">

<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <link rel="preconnect" href="https://fonts.googleapis.com" />
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap" rel="stylesheet" />
  <link rel="stylesheet" href="/wp-content/themes/cakhiatv/style.css" />
  <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
    <link rel="icon" href="/favicon.ico" type="image/x-icon" />
  	<style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style>
	
<!-- Tối ưu hóa công cụ tìm kiếm bởi Rank Math PRO - https://rankmath.com/ -->
<title>CakhiaTV - Trực Tiếp Bóng Đá Cà Khịa HD - Link TTBD Miễn Phí</title>
<meta name="description" content="Xem trực tiếp bóng đá siêu nét, không giật lag tại CakhiaTV cùng đội ngũ BLV chuyên môn cao. Cakhia TV phát bóng đá trực tuyến ở tất cả giải đấu."/>
<meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large"/>
<link rel="canonical" href="https://cakhiatvxttbdh.tv" />
<meta property="og:locale" content="vi_VN" />
<meta property="og:type" content="website" />
<meta property="og:title" content="CakhiaTV - Trực Tiếp Bóng Đá Cà Khịa HD - Link TTBD Miễn Phí" />
<meta property="og:description" content="Xem trực tiếp bóng đá siêu nét, không giật lag tại CakhiaTV cùng đội ngũ BLV chuyên môn cao. Cakhia TV phát bóng đá trực tuyến ở tất cả giải đấu." />
<meta property="og:url" content="https://cakhiatvxttbdh.tv" />
<meta property="og:site_name" content="CakhiaTV – Trực Tiếp Bóng Đá Cà Khịa HD – Link TTBD Miễn Phí" />
<meta property="og:updated_time" content="2025-08-12T18:11:28+07:00" />
<meta property="og:image" content="https://cdn.cakhiatvxttbdh.tv/wp-content/uploads/2025/08/og_image_colatv.png" />
<meta property="og:image:secure_url" content="https://cdn.cakhiatvxttbdh.tv/wp-content/uploads/2025/08/og_image_colatv.png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:alt" content="cakhiatv" />
<meta property="og:image:type" content="image/png" />
<meta property="article:published_time" content="2025-06-22T18:41:07+07:00" />
<meta property="article:modified_time" content="2025-08-12T18:11:28+07:00" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="CakhiaTV - Trực Tiếp Bóng Đá Cà Khịa HD - Link TTBD Miễn Phí" />
<meta name="twitter:description" content="Xem trực tiếp bóng đá siêu nét, không giật lag tại CakhiaTV cùng đội ngũ BLV chuyên môn cao. Cakhia TV phát bóng đá trực tuyến ở tất cả giải đấu." />
<meta name="twitter:image" content="https://cdn.cakhiatvxttbdh.tv/wp-content/uploads/2025/08/og_image_colatv.png" />
<meta name="twitter:label1" content="Được viết bởi" />
<meta name="twitter:data1" content="Hoàng Vân Long" />
<meta name="twitter:label2" content="Thời gian để đọc" />
<meta name="twitter:data2" content="13 phút" />
<script type="application/ld+json" class="rank-math-schema-pro">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://cakhiatvxttbdh.tv/#organization","name":"Cakhia TV","logo":{"@type":"ImageObject","@id":"https://cakhiatvxttbdh.tv/#logo","url":"https://cdn.cakhiatvx.black/wp-content/uploads/2025/08/logo_colatv_square.jpg","contentUrl":"https://cdn.cakhiatvx.black/wp-content/uploads/2025/08/logo_colatv_square.jpg","caption":"CakhiaTV \u2013 Tr\u1ef1c Ti\u1ebfp B\u00f3ng \u0110\u00e1 C\u00e0 Kh\u1ecba HD \u2013 Link TTBD Mi\u1ec5n Ph\u00ed","inLanguage":"vi","width":"520","height":"520"}},{"@type":"WebSite","@id":"https://cakhiatvxttbdh.tv/#website","url":"https://cakhiatvxttbdh.tv","name":"CakhiaTV \u2013 Tr\u1ef1c Ti\u1ebfp B\u00f3ng \u0110\u00e1 C\u00e0 Kh\u1ecba HD \u2013 Link TTBD Mi\u1ec5n Ph\u00ed","alternateName":"C\u00e0 Kh\u1ecba TV Tr\u1ef1c Ti\u1ebfp B\u00f3ng \u0110\u00e1 HD","publisher":{"@id":"https://cakhiatvxttbdh.tv/#organization"},"inLanguage":"vi","potentialAction":{"@type":"SearchAction","target":"https://cakhiatvxttbdh.tv/?s={search_term_string}","query-input":"required name=search_term_string"}},{"@type":"ImageObject","@id":"https://cdn.cakhiatvxttbdh.tv/wp-content/uploads/2025/08/og_image_colatv.png","url":"https://cdn.cakhiatvxttbdh.tv/wp-content/uploads/2025/08/og_image_colatv.png","width":"1200","height":"630","inLanguage":"vi"},{"@type":"WebPage","@id":"https://cakhiatvxttbdh.tv#webpage","url":"https://cakhiatvxttbdh.tv","name":"CakhiaTV - Tr\u1ef1c Ti\u1ebfp B\u00f3ng \u0110\u00e1 C\u00e0 Kh\u1ecba HD - Link TTBD Mi\u1ec5n Ph\u00ed","datePublished":"2025-06-22T18:41:07+07:00","dateModified":"2025-08-12T18:11:28+07:00","about":{"@id":"https://cakhiatvxttbdh.tv/#organization"},"isPartOf":{"@id":"https://cakhiatvxttbdh.tv/#website"},"primaryImageOfPage":{"@id":"https://cdn.cakhiatvxttbdh.tv/wp-content/uploads/2025/08/og_image_colatv.png"},"inLanguage":"vi"},{"@type":"Person","@id":"https://cakhiatvxttbdh.tv/author/hoangvanlong","name":"Ho\u00e0ng V\u00e2n Long","url":"https://cakhiatvxttbdh.tv/author/hoangvanlong","image":{"@type":"ImageObject","@id":"https://secure.gravatar.com/avatar/40fdedd2721a9e16ee58c3d8be84de53e113c59fe2d1f1f74566907e1bda79aa?s=96&amp;d=mm&amp;r=g","url":"https://secure.gravatar.com/avatar/40fdedd2721a9e16ee58c3d8be84de53e113c59fe2d1f1f74566907e1bda79aa?s=96&amp;d=mm&amp;r=g","caption":"Ho\u00e0ng V\u00e2n Long","inLanguage":"vi"},"sameAs":["https://cakhiatvx.black/"],"worksFor":{"@id":"https://cakhiatvxttbdh.tv/#organization"}},{"@type":"Article","headline":"CakhiaTV - Tr\u1ef1c Ti\u1ebfp B\u00f3ng \u0110\u00e1 C\u00e0 Kh\u1ecba HD - Link TTBD Mi\u1ec5n Ph\u00ed","keywords":"cakhiatv","datePublished":"2025-06-22T18:41:07+07:00","dateModified":"2025-08-12T18:11:28+07:00","author":{"@id":"https://cakhiatvxttbdh.tv/author/hoangvanlong","name":"Ho\u00e0ng V\u00e2n Long"},"publisher":{"@id":"https://cakhiatvxttbdh.tv/#organization"},"description":"Xem tr\u1ef1c ti\u1ebfp b\u00f3ng \u0111\u00e1 si\u00eau n\u00e9t, kh\u00f4ng gi\u1eadt lag t\u1ea1i CakhiaTV c\u00f9ng \u0111\u1ed9i ng\u0169 BLV chuy\u00ean m\u00f4n cao. Cakhia TV ph\u00e1t b\u00f3ng \u0111\u00e1 tr\u1ef1c tuy\u1ebfn \u1edf t\u1ea5t c\u1ea3 gi\u1ea3i \u0111\u1ea5u.","name":"CakhiaTV - Tr\u1ef1c Ti\u1ebfp B\u00f3ng \u0110\u00e1 C\u00e0 Kh\u1ecba HD - Link TTBD Mi\u1ec5n Ph\u00ed","@id":"https://cakhiatvxttbdh.tv#richSnippet","isPartOf":{"@id":"https://cakhiatvxttbdh.tv#webpage"},"image":{"@id":"https://cdn.cakhiatvxttbdh.tv/wp-content/uploads/2025/08/og_image_colatv.png"},"inLanguage":"vi","mainEntityOfPage":{"@id":"https://cakhiatvxttbdh.tv#webpage"}}]}</script>
<!-- /Plugin SEO WordPress Rank Math -->

<link rel='dns-prefetch' href='//cdn.cakhiatvxttbdh.tv' />
<script type="text/javascript">
/* <![CDATA[ */
window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.1.0\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.1.0\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/cdn.cakhiatvxttbdh.tv\/wp-content\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.8.1"}};
/*! This file is auto-generated */
!function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\ud83d\udd25","\ud83d\udc26\u200b\ud83d\udd25")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings);
/* ]]> */
</script>
<style id='wp-emoji-styles-inline-css' type='text/css'>

	img.wp-smiley, img.emoji {
		display: inline !important;
		border: none !important;
		box-shadow: none !important;
		height: 1em !important;
		width: 1em !important;
		margin: 0 0.07em !important;
		vertical-align: -0.1em !important;
		background: none !important;
		padding: 0 !important;
	}
</style>
<link rel='stylesheet' id='wp-block-library-css' href='https://cdn.cakhiatvxttbdh.tv/wp-content/wp-includes/css/dist/block-library/style.min.css?ver=6.8.1' type='text/css' media='all' />
<style id='classic-theme-styles-inline-css' type='text/css'>
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<style id='global-styles-inline-css' type='text/css'>
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
</style>
<link rel='stylesheet' id='ez-toc-css' href='https://cdn.cakhiatvxttbdh.tv/wp-content/plugins/easy-table-of-contents/assets/css/screen.min.css?ver=2.0.74' type='text/css' media='all' />
<style id='ez-toc-inline-css' type='text/css'>
div#ez-toc-container .ez-toc-title {font-size: 120%;}div#ez-toc-container .ez-toc-title {font-weight: 500;}div#ez-toc-container ul li , div#ez-toc-container ul li a {font-size: 95%;}div#ez-toc-container ul li , div#ez-toc-container ul li a {font-weight: 500;}div#ez-toc-container nav ul ul li {font-size: 90%;}
.ez-toc-container-direction {direction: ltr;}.ez-toc-counter ul{counter-reset: item ;}.ez-toc-counter nav ul li a::before {content: counters(item, '.', decimal) '. ';display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }.ez-toc-widget-direction {direction: ltr;}.ez-toc-widget-container ul{counter-reset: item ;}.ez-toc-widget-container nav ul li a::before {content: counters(item, '.', decimal) '. ';display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }
</style>
<link rel='stylesheet' id='main-style-css' href='https://cdn.cakhiatvxttbdh.tv/wp-content/themes/cakhiatv/style.css?ver=6.8.1' type='text/css' media='all' />
<script type="text/javascript" src="https://cdn.cakhiatvxttbdh.tv/wp-content/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
<script type="text/javascript" src="https://cdn.cakhiatvxttbdh.tv/wp-content/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script>
<link rel="https://api.w.org/" href="https://cakhiatvxttbdh.tv/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://cakhiatvxttbdh.tv/wp-json/wp/v2/pages/1060" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://cakhiatvxttbdh.tv/xmlrpc.php?rsd" />
<meta name="generator" content="WordPress 6.8.1" />
<link rel='shortlink' href='https://cakhiatvxttbdh.tv/' />
<link rel="alternate" title="oNhúng (JSON)" type="application/json+oembed" href="https://cakhiatvxttbdh.tv/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fcakhiatvxttbdh.tv%2F" />
<link rel="alternate" title="oNhúng (XML)" type="text/xml+oembed" href="https://cakhiatvxttbdh.tv/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fcakhiatvxttbdh.tv%2F&#038;format=xml" />
    <style>
        @media (min-width: 1024px) {
            h1 {
                font-size: 1.5em !important;
            }
        }

        .match-teams-score {
            display: flex !important;
        }

        @media (max-width: 767px) {
            .xgplayer .xg-inner-controls {
                height: 60px !important;
            }
            .header .logo img{
                height: 35px;
            }
        }

        @media (min-width: 481px) and (max-width: 767px) {
            div#chat_messages {
                max-height: 60vh !important;
            }
        }
    </style>
    <style>
            .match-section {
                min-height: 4800px;
            }
            
            .match-card__status {
                position: absolute;
                top: 13%;
                left: 50%;
                transform: translate(-50%, -50%);
            }
            
            .match-card__stats-content {
                background: none !important;
                box-shadow: none !important
            }
            
            
            
            @media (max-width: 480px) {
                .team__logo {
                    width: 40px !important;
                    height: 40px !important;
                }
                .match-card__league {
                    max-width: 100px;
                }
                
                .match-card__time {
                    max-width: 100px;
                }
                
                .match-card__status {
                    max-width: 120px;
                    order: 1 !important;
                    font-size: 12px
                }
                
                .streaming {
                    padding: 4px;
                }
                
                .btn-view-truc-tiep {
                    padding: 8px 4px !important;
                    font-size: 12px;
                }
                .match-card__stats-content {
                    display: block !important;
                }
                
                .match-card__stats {
                    display: block !important
                }
            }
            
            @media (min-width: 768px) and (max-width: 1024px) {
                .match-card__status {
                    position: absolute;
                    top: 13%;
                    left: 50%;
                    transform: translate(-50%, -50%);
                }
                
                .match-card__league {
                    max-width: 110px;
                }
            }
        </style>  
<!-- Google tag (tổng) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V8GXMSME5N"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'G-V8GXMSME5N');
</script>

<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-T7E9D92W79"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());

gtag('config', 'G-T7E9D92W79');
</script>

<script src="//s1.what-on.com/widget/service-v2.js?key=4hBXj" async="async"></script>

</head>

<body>
  <!-- Header -->
<header class="header">
    <div class="container">
      <div class="header__inner">
        <a href="/" class="logo">
          <img src="/wp-content/uploads/2025/07/logo-cakhiatv.png" alt="Cakhia TV" />
        </a>
        <div style="display: flex; align-items: center">
          <nav class="nav">
            <button class="nav__toggle">
              <img src="https://cdn.cakhiatvxttbdh.tv/wp-content/themes/cakhiatv/assets/images/hamburger.svg" alt="Menu" />
            </button>

            <ul class="nav__menu">
              <button class="nav__close" aria-label="Close menu"></button>
              <li class="nav__item"><a href="https://cakhiatvxttbdh.tv/lich-thi-dau" class="">LỊCH THI ĐẤU</a></li><li class="nav__item"><a href="https://cakhiatvxttbdh.tv/bang-xep-hang" class="">BẢNG XẾP HẠNG</a></li><li class="nav__item"><a href="https://cakhiatvxttbdh.tv/ket-qua-bong-da" class="">KẾT QUẢ BÓNG ĐÁ</a></li><li class="nav__item"><a href="https://cakhiatvxttbdh.tv/category/nhan-dinh" class="">NHẬN ĐỊNH</a></li><li class="nav__item"><a href="https://cakhiatvxttbdh.tv/category/tin-tuc" class="">TIN TỨC</a></li>            </ul>
          </nav>
          <div class="header__buttons">
            <a href="https://refvsbb.com/" class="btn btn--secondary header-button" rel="nofollow">
              <span class="header-text">CƯỢC VSBET</span>
            </a>
            <a href="https://t.me/vsbet88888888888888888" rel="nofollow" target="_blank" class="btn btn--default header-button">
              <span class="header-text">LIÊN HỆ KM</span>
            </a>
          </div>

        </div>



      </div>
    </div>
  </header>
 
   <!-- Main Content -->
     <!-- Main Content -->
     <main style="padding-top: 1px">
      <!-- Hero Section -->
      <section class="hero">
        <div class="container">
          <div class="hero__content">
            <h1 class="text-uppercase" style="text-align: left; color: white">
                CakhiaTV | Trực Tiếp Bóng Đá HD - Link Cà Khịa TV #1 Hôm Nay
            </h1>
          </div>
        </div>
      </section>

      <!-- Sports Filter -->
      <section class="sports-filter">
        <div class="container">
          <div class="sports-filter__inner" style="display: none">
            <!-- Group 1: Sports Categories -->
            <!--<div class="sports-filter__group sports-categories">
            <button
                class="sports-filter__button"
                data-sport="all"
              >
                <div class="sports-filter__button-icon">
                  <img
                    src="https://cdn.cakhiatvxttbdh.tv/wp-content/themes/cakhiatv/assets/images/icons/football.png"
                    alt="Tất Cả"
                  />
                </div>
                <div class="sports-filter__button-text">Tất Cả</div>
                <div class="sports-filter__button-count" id="count-all-type"></div>
              </button>

              <button
                class="sports-filter__button"
                data-sport="football"
              >
                <div class="sports-filter__button-icon">
                  <img
                    src="https://cdn.cakhiatvxttbdh.tv/wp-content/themes/cakhiatv/assets/images/icons/football.png"
                    alt="Football"
                  />
                </div>
                <div class="sports-filter__button-text">Bóng đá</div>
                <div class="sports-filter__button-count" id="count-football"></div>
              </button>

              <button class="sports-filter__button" data-sport="basketball">
                <div class="sports-filter__button-icon">
                  <img
                    src="https://cdn.cakhiatvxttbdh.tv/wp-content/themes/cakhiatv/assets/images/icons/basketball.png"
                    alt="Basketball"
                  />
                </div>
                <div class="sports-filter__button-text">Bóng rổ</div>
                <div class="sports-filter__button-count" id="count-basketball"></div>
              </button>

             <!-- <button class="sports-filter__button" data-sport="tennis">
                <div class="sports-filter__button-icon">
                  <img src="https://cdn.cakhiatvxttbdh.tv/wp-content/themes/cakhiatv/assets/images/icons/tennis.png" alt="Tennis" />
                </div>
                <div class="sports-filter__button-text">Tennis</div>
                <div class="sports-filter__button-count" id="count-tennis"></div>
              </button> -->

              <!--<button class="sports-filter__button" data-sport="volleyball">
                <div class="sports-filter__button-icon">
                  <img
                    src="https://cdn.cakhiatvxttbdh.tv/wp-content/themes/cakhiatv/assets/images/icons/volleyball.png"
                    alt="Volleyball"
                  />
                </div>
                <div class="sports-filter__button-text">Bóng chuyền</div>
                <div class="sports-filter__button-count" id="count-volleyball"></div>
              </button> -->

              <div class="livescore-switch">
                <label class="switch">
                  <input type="checkbox" id="livescoreToggle" />
                  <span class="slider"></span>
                </label>
                <span class="livescore-label">Livescore</span>
              </div>
            </div>

            <!-- Divider -->
            <div class="sports-filter__divider"></div>

            <!-- Group 2: Match Filters -->
            <div class="sports-filter__group match-filters">
            <button class="sports-filter__button_child active" data-filter="child_all">
                <div class="sports-filter__button-icon">
                  <img src="https://cdn.cakhiatvxttbdh.tv/wp-content/themes/cakhiatv/assets/images/icons/all.png" alt="All" />
                </div>
                <div class="sports-filter__button-text">Tất cả</div>
                <div class="sports-filter__button-count" id="count-all-type"></div>
              </button>

              <button class="sports-filter__button_child live" data-filter="live">
                <div class="sports-filter__button-icon">
                  <img src="https://cdn.cakhiatvxttbdh.tv/wp-content/themes/cakhiatv/assets/images/icons/live.png" alt="Live" />
                </div>
                <div class="sports-filter__button-text">Đang Live</div>
                <div class="sports-filter__button-count" id="count-live"></div>
              </button>

              <button class="sports-filter__button_child" data-filter="hot">
                <div class="sports-filter__button-icon">
                  <img src="https://cdn.cakhiatvxttbdh.tv/wp-content/themes/cakhiatv/assets/images/icons/hot.png" alt="Hot" />
                </div>
                <div class="sports-filter__button-text">Trận HOT</div>
                <div class="sports-filter__button-count" id="count-hot"></div>
              </button>

              <button class="sports-filter__button_child" data-filter="date" data-value="">
                <div class="sports-filter__button-icon">
                  <img src="https://cdn.cakhiatvxttbdh.tv/wp-content/themes/cakhiatv/assets/images/icons/calendar.png" alt="Today" />
                </div>
                <div class="sports-filter__button-text">Hôm Nay</div>
                <div class="sports-filter__button-count" id="count-today"></div>
              </button>

              <button class="sports-filter__button_child" data-filter="date" data-value="">
                <div class="sports-filter__button-icon">
                  <img
                    src="https://cdn.cakhiatvxttbdh.tv/wp-content/themes/cakhiatv/assets/images/icons/calendar.png"
                    alt="Tomorrow"
                  />
                </div>
                <div class="sports-filter__button-text">Ngày Mai</div>
                <div class="sports-filter__button-count" id="count-tomorrow"></div>
              </button>          
            <!--  
             <button class="sports-filter__button_child" data-filter="no_blv">
                <div class="sports-filter__button-text">Live không BLV</div>
                <div class="sports-filter__button-count" id="noblv-live">0</div>
              </button>
              -->
            </div>
          </div>
        </div>
      </section>

      <!-- Featured Matches -->
      <section class="featured-matches">
        <div class="container">
        <div class="match-section">
            <div id="match-list" class="matches">
            </div>
          </div>

          <!--<div
            style="
              display: flex;
              justify-content: center;
              margin-top: 1rem;
              margin-bottom: 1rem;
            "
          >
            <a href="#" class="btn btn--readmore">
              <span>Xem thêm lịch trực tiếp -></span>
            </a>
          </div>-->
        </div>
      </section>

      <!-- Content Navigation Section -->
      <section class="content-nav">
  <div class="container">
    <div class="content-nav__container" style="max-height:800px !important">
      <div class="content-nav__lists">
        <div class="content-nav__list">
          <!-- Nếu bạn vẫn muốn giữ Mục lục này thủ công, thì để lại -->
          <p style="font-weight: bold; font-size: 120%">Mục Lục</p>
          <!-- Hoặc có thể xoá toàn bộ <ul> này nếu muốn Gutenberg xử lý luôn -->

          <div class="content-nav__divider"></div>

          <div class="content-nav__text">
            <div id="ez-toc-container" class="ez-toc-v2_0_74 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction">
<div class="ez-toc-title-container">
<p class="ez-toc-title" style="cursor:inherit">Table of Contents</p>
<span class="ez-toc-title-toggle"><a href="#" class="ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle" aria-label="Toggle Table of Content"><span class="ez-toc-js-icon-con"><span class=""><span class="eztoc-hide" style="display:none;">Toggle</span><span class="ez-toc-icon-toggle-span"><svg style="fill: #999;color:#999" xmlns="http://www.w3.org/2000/svg" class="list-377408" width="20px" height="20px" viewBox="0 0 24 24" fill="none"><path d="M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z" fill="currentColor"></path></svg><svg style="fill: #999;color:#999" class="arrow-unsorted-368013" xmlns="http://www.w3.org/2000/svg" width="10px" height="10px" viewBox="0 0 24 24" version="1.2" baseProfile="tiny"><path d="M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z"/></svg></span></span></span></a></span></div>
<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-1" href="#Gioi_thieu_ve_CakhiaTV_%E2%80%93_Truc_tiep_bong_da_chat_luong_cao" >Giới thiệu về CakhiaTV &#8211; Trực tiếp bóng đá chất lượng cao</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-2" href="#CakhiaTV_la_gi" >CakhiaTV là gì?</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-3" href="#Su_menh_va_gia_tri_cot_loi" >Sứ mệnh và giá trị cốt lõi</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-4" href="#Doi_tuong_phuc_vu" >Đối tượng phục vụ</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-5" href="#Diem_noi_bat_khi_xem_bong_da_tai_trang_web_Ca_Khia_TV" >Điểm nổi bật khi xem bóng đá tại trang web Cà Khịa TV</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-6" href="#Hinh_anh_Full_HD_cung_am_thanh_song_dong_khi_phat_song" >Hình ảnh Full HD cùng âm thanh sống động khi phát sóng</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-7" href="#Khong_giat_lag_do_tre_thap_cong_nghe_truyen_tai_toi_uu" >Không giật lag, độ trễ thấp, công nghệ truyền tải tối ưu</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-8" href="#Mien_phi_100_%E2%80%93_Khong_can_dang_ky_dang_ky_tai_khoan_rac_roi" >Miễn phí 100% – Không cần đăng ký đăng ký tài khoản rắc rối</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-9" href="#Phu_hop_tren_moi_thiet_bi_PC_Laptop_Smartphone_Smart_TV" >Phù hợp trên mọi thiết bị PC, Laptop, Smartphone, Smart TV</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-10" href="#Khong_quang_cao_chen_ngang" >Không quảng cáo chen ngang</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-11" href="#Box_chat_truc_tiep_khi_xem_tran_dau" >Box chat trực tiếp khi xem trận đấu</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-12" href="#Doi_ngu_BLV_chuyen_mon_cao_ca_ve_bong_da_lan_keo_cuoc" >Đội ngũ BLV chuyên môn cao cả về bóng đá lẫn kèo cược</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-13" href="#Cac_giai_dau_bong_da_duoc_truc_tiep_tren_Ca_Khia_TV" >Các giải đấu bóng đá được trực tiếp trên Ca Khia TV</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-14" href="#Ngoai_Hang_Anh_Premier_League" >Ngoại Hạng Anh (Premier League)</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-15" href="#UEFA_Champions_League_Cup_C1_Chau_Au" >UEFA Champions League (Cúp C1 Châu Âu)</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-16" href="#La_Liga_%E2%80%93_Giai_VDQG_Tay_Ban_Nha" >La Liga – Giải VĐQG Tây Ban Nha</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-17" href="#Serie_A_%E2%80%93_Giai_VDQG_Italia" >Serie A – Giải VĐQG Italia</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-18" href="#Bundesliga_%E2%80%93_Giai_VDQG_Duc" >Bundesliga – Giải VĐQG Đức</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-19" href="#Ligue_1_%E2%80%93_Giai_VDQG_Phap" >Ligue 1 – Giải VĐQG Pháp</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-20" href="#AFF_Cup_SEA_Games_Asian_Cup" >AFF Cup, SEA Games, Asian Cup</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-21" href="#World_Cup_Euro_va_cac_giai_quoc_te" >World Cup, Euro và các giải quốc tế</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-22" href="#So_sanh_CakhiaTV_va_cac_nen_trang_truc_tiep_bong_da_hien_nay_Xoilac_TV_Socolive_RakhoiTV_LuongSonTV_ThapCamTV" >So sánh CakhiaTV và các nền trảng trực tiếp bóng đá hiện nay (Xoilac TV, Socolive, RakhoiTV, LuongSonTV, ThapCamTV)</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-23" href="#Huong_dan_xem_bong_da_truc_tiep_tren_trang_chu_CakhiaTV" >Hướng dẫn xem bóng đá trực tiếp trên trang chủ CakhiaTV</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-24" href="#Truy_cap_nhanh_vao_link_tran_dau_qua_tinh_nang_tim_kiem" >Truy cập nhanh vào link trận đấu qua tính năng tìm kiếm</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-25" href="#Chon_phong_BLV_phu_hop" >Chọn phòng BLV phù hợp</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-26" href="#Su_dung_tinh_nang_loc_tran_theo_Dang_Live_Tran_Hot_Hom_Nay_Ngay_Mai" >Sử dụng tính năng lọc trận theo Đang Live / Trận Hot / Hôm Nay / Ngày Mai</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-27" href="#Luu_y_de_tranh_mat_ket_noi_khi_xem" >Lưu ý để tránh mất kết nối khi xem</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-28" href="#Cac_chuyen_muc_hap_dan_khac_tai_CakhiaTV" >Các chuyên mục hấp dẫn khác tại CakhiaTV</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-29" href="#Lich_thi_dau_hom_nay" >Lịch thi đấu hôm nay</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-30" href="#Ket_qua_bong_da_truc_tuyen" >Kết quả bóng đá trực tuyến</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-31" href="#Bang_xep_hang_bong_da" >Bảng xếp hạng bóng đá</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-32" href="#Nhan_dinh_keo_nha_cai" >Nhận định kèo nhà cái</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-33" href="#Thong_ke_phong_do_%E2%80%93_Lich_su_doi_dau_o_tung_tran" >Thống kê phong độ – Lịch sử đối đầu ở từng trận</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-34" href="#Cac_loi_co_the_gap_khi_xem_bong_da_tai_CakhiaTV_va_cach_khac_phuc" >Các lỗi có thể gặp khi xem bóng đá tại CakhiaTV và cách khắc phục</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-35" href="#Cam_ket_chinh_sach_bao_ve_nguoi_dung" >Cam kết &amp; chính sách bảo vệ người dùng</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-36" href="#Chinh_sach_bao_mat_thong_tin" >Chính sách bảo mật thông tin</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-37" href="#Cam_ket_chat_luong_truyen_phat" >Cam kết chất lượng truyền phát</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-38" href="#Dieu_khoan_su_dung_dich_vu" >Điều khoản sử dụng dịch vụ</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-39" href="#Cau_hoi_thuong_gap_FAQ" >Câu hỏi thường gặp (FAQ)</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-40" href="#CakhiaTV_co_mien_phi_khong" >CakhiaTV có miễn phí không?</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-41" href="#Toi_co_the_xem_lai_tran_da_phat_song_khong" >Tôi có thể xem lại trận đã phát sóng không?</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-42" href="#CakhiaTV_co_bi_giat_khi_nhieu_nguoi_xem" >CakhiaTV có bị giật khi nhiều người xem?</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-43" href="#Co_the_xem_tren_TV_thong_minh_khong" >Có thể xem trên TV thông minh không?</a></li></ul></li></ul></nav></div>




<p><strong><a href="/">CakhiaTV</a></strong> là cái tên vô cùng nổi bật trên thị trường chuyên cung cấp link <strong>xem bóng đá trực tiếp</strong> hoàn toàn miễn phí với chất lượng cao. Lựa chọn truy cập vào địa chỉ này bạn có thể thoải mái cập nhật nhiều chuyên mục đặc sắc. Bên dưới là thông tin giới thiệu chi tiết cho bạn mới tìm hiểu về website này.</p>



<h2 class="wp-block-heading"><span class="ez-toc-section" id="Gioi_thieu_ve_CakhiaTV_%E2%80%93_Truc_tiep_bong_da_chat_luong_cao"></span><strong>Giới thiệu về CakhiaTV &#8211; Trực tiếp bóng đá chất lượng cao</strong><span class="ez-toc-section-end"></span></h2>



<p>Muốn biết bản thân có nên sử dụng thông tin tại trang web này hay không chúng ta cần tìm hiểu giới thiệu tổng quan về <strong><a href="/">Cakhia</a></strong> TV. Bên dưới đây là tin tức quan trọng mà người dùng không nên bỏ qua:</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="CakhiaTV_la_gi"></span><strong>CakhiaTV là gì?</strong><span class="ez-toc-section-end"></span></h3>



<p><strong>Cakhia TV</strong> ra đời trong bối cảnh nhu cầu theo dõi trận đấu bóng đá ngày càng tăng cao. Đội ngũ phát triển đã cố gắng tạo lập trang với nhiều ưu thế đặc biệt, vượt bậc hơn những thương hiệu đang có. Sau bao nhiêu nỗ lực thì thương hiệu cũng chính thức ra đời vào năm 2018.</p>



<p>Mục tiêu chính của website <strong>CakhiaTV</strong> là phục vụ tối đa nhu cầu xem bóng đá của cộng đồng fan hâm mộ đông đảo. Nơi đây chuyên cung cấp hàng loạt đường dẫn theo dõi các cuộc đối đầu của những câu lạc bộ lớn nhỏ trên thế giới. Bên cạnh đó người dùng còn dễ dàng tìm kiếm thông tin liên quan đến cầu thủ, huấn luyện viên, chuyển nhượng, chấn thương,&#8230;.</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXd7_fq8ap1-IlJ5LOC5o-5XgUf83Tb9YvccvBYzt_1JwWSX-iYNXKaXv5CpYVV4vTGEyjaW35SLMkVL5XhhM-kPCStYsHGfrmD53M_e3CY7AGgIfeyzsx-Ms9qEMSdYbDcxC2VwBQ?key=F02E_ibIsumCYnRhUFycaQ" alt=""/></figure>



<p><em>CakhiaTV là gì mà nhiều người yêu thích và lựa chọn tham gia</em></p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Su_menh_va_gia_tri_cot_loi"></span><strong>Sứ mệnh và giá trị cốt lõi</strong><span class="ez-toc-section-end"></span></h3>



<p>Ngay từ những ngày đầu thành lập, thương hiệu đã xác định sứ mệnh của mình là cung cấp trải nghiệm <strong>xem bóng đá </strong>mượt mà cho mọi người. Bên cạnh đó nhằm giúp người xem có thời gian thư giãn tốt hơn nhờ hình ảnh sắc nét và âm thanh sống động.</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Doi_tuong_phuc_vu"></span><strong>Đối tượng phục vụ</strong><span class="ez-toc-section-end"></span></h3>



<p>Cũng như đã đề cập bên trên trang <strong>trực tiếp bóng đá</strong> này dùng để phục vụ người hâm mộ bóng đá Việt Nam. Giờ đây bạn không còn lo lắng về vấn đề theo dõi trực tiếp trận đấu tốn phí, chất lượng không tốt hoặc không có nguồn thông tin chính thống.</p>



<h2 class="wp-block-heading"><span class="ez-toc-section" id="Diem_noi_bat_khi_xem_bong_da_tai_trang_web_Ca_Khia_TV"></span><strong>Điểm nổi bật khi xem bóng đá tại trang web Cà Khịa TV</strong><span class="ez-toc-section-end"></span></h2>



<p>Mặc dù trên thị trường hiện nay có vô vàn những trang web <strong>xem trực tiếp bóng đá</strong> nhưng không đơn vị nào vượt qua được thương hiệu. Bên dưới đây là những ưu điểm nổi bật nhất mà thương hiệu đang sở hữu:</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Hinh_anh_Full_HD_cung_am_thanh_song_dong_khi_phat_song"></span><strong>Hình ảnh Full HD cùng âm thanh sống động khi phát sóng</strong><span class="ez-toc-section-end"></span></h3>



<p><strong><a href="/">Cà Khịa TV</a></strong> nổi tiếng với dịch vụ<strong> trực tiếp bóng đá hôm nay</strong> theo đúng thời gian thực. Chất lượng hình ảnh full HD vô cùng sắc nét giúp bạn không bỏ lỡ bất kỳ cú sút hấp dẫn nào. Bạn còn dễ dàng hòa mình vào không khí sôi động trên khán đài bởi hệ thống âm thanh của trang rất sống động.</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Khong_giat_lag_do_tre_thap_cong_nghe_truyen_tai_toi_uu"></span><strong>Không giật lag, độ trễ thấp, công nghệ truyền tải tối ưu</strong><span class="ez-toc-section-end"></span></h3>



<p><strong>Xem bóng đá Cakhiatv</strong> bạn sẽ không cần lo lắng về vấn đề giật lag hay độ trễ cập nhật thấp. Đơn vị ứng dụng công nghệ truyền tải cực kỳ hiện đại giúp quá trình theo dõi trận đấu thêm mượt mà.</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXd8UfvqzPrHPl2XdH2L-fc2x-GmVE7-MtG7Mfe8a52hOcVXZhF9s9rYB9hgtpXPJRYbXv9KLwOcnJJ5NP60godNJqO38-4O-eiKOeQyaGKyG8z6yXiT3qjzCEa9wr67qvsmEbqbhQ?key=F02E_ibIsumCYnRhUFycaQ" alt=""/></figure>



<p><em>Trang web phát sóng không bị giật lag, độ trễ thấp</em></p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Mien_phi_100_%E2%80%93_Khong_can_dang_ky_dang_ky_tai_khoan_rac_roi"></span><strong>Miễn phí 100% – Không cần đăng ký đăng ký tài khoản rắc rối</strong><span class="ez-toc-section-end"></span></h3>



<p>Ưu điểm nổi bật nhất giúp trang web đánh bại các đối thủ cùng ngành chính là miễn phí. Bạn không cần nạp tiền, không cần đăng ký nick game vẫn có thể dễ dàng khám phá mọi thông tin đăng tải. Toàn bộ bài viết đều có giá trị tham khảo cao, tin chuẩn xác được thực hiện bởi đội ngũ chuyên nghiệp.</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Phu_hop_tren_moi_thiet_bi_PC_Laptop_Smartphone_Smart_TV"></span><strong>Phù hợp trên mọi thiết bị PC, Laptop, Smartphone, Smart TV</strong><span class="ez-toc-section-end"></span></h3>



<p><strong>CakhiaTV</strong> cực kỳ tiện lợi cho người dùng khi trang web tương thích với mọi thiết bị như PC, laptop, điện thoại,&#8230;. Chỉ cần có kết nối internet mạnh mẽ là bạn có thể thoải mái theo dõi các cuộc đối đầu kinh điển ở nhiều giải đấu.</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Khong_quang_cao_chen_ngang"></span><strong>Không quảng cáo chen ngang</strong><span class="ez-toc-section-end"></span></h3>



<p>Rất nhiều trang <strong>xem bóng đá trực tuyến</strong> làm cho người dùng khó chịu khi phải chờ quảng cáo khi đang đến lúc gây cấn. Hiểu được điều đó nên trang cam kết không để banner hoặc các quảng cáo chen ngang nhằm mang lại trải nghiệm trọn vẹn nhất.&nbsp;</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Box_chat_truc_tiep_khi_xem_tran_dau"></span><strong>Box chat trực tiếp khi xem trận đấu</strong><span class="ez-toc-section-end"></span></h3>



<p><strong>Xem bóng đá Cakhia</strong> không chỉ dừng lại ở độ tiện lợi mà còn giúp bạn giao lưu trực tiếp với những người cùng sở thích. Tính năng box chat nằm ngay trên trang chủ sẽ hiển thị mọi bình luận của người xem tạo nên một cộng đồng gắn kết.</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc6dX63VLVV9LNVaeJUci4ZLiYBcrdiIZKCnaFr4t6s3qTr7F8yXntUekU3jVUh5rJ03MLhfNHKEW35f73LSkJHScjlBCNvv-nPS5bEh5V-EAoAh_ZqkRe8kscXjUQCeyAeU0QT?key=F02E_ibIsumCYnRhUFycaQ" alt=""/></figure>



<p><em>Tính năng box chat trực tiếp giúp bạn giao lưu dễ dàng với nhau</em></p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Doi_ngu_BLV_chuyen_mon_cao_ca_ve_bong_da_lan_keo_cuoc"></span><strong>Đội ngũ BLV chuyên môn cao cả về bóng đá lẫn kèo cược</strong><span class="ez-toc-section-end"></span></h3>



<p><strong>CakhiaTV</strong> hướng đến việc cung cấp dịch vụ chất lượng cao trên mỗi trận đấu đều có bình luận viên chuyên nghiệp. Hơn nữa bạn còn dễ dàng lựa chọn giọng dẫn nhằm giúp cho người xem càng thêm thích thú. Bên cạnh đó họ còn sở hữu trình độ chuyên môn cao, phân tích sâu sắc làm tăng thêm không khí sôi động khi theo dõi.</p>



<h2 class="wp-block-heading"><span class="ez-toc-section" id="Cac_giai_dau_bong_da_duoc_truc_tiep_tren_Ca_Khia_TV"></span><strong>Các giải đấu bóng đá được trực tiếp trên Ca Khia TV</strong><span class="ez-toc-section-end"></span></h2>



<p><strong><a href="/">Trực tiếp bóng đá</a> Cà Khịa TV </strong>mang đến cho người xem hàng loạt giải đấu hấp dẫn, chất lượng mà bạn không nên bỏ qua. Bên dưới là thông tin về các cuộc thi đang được trang chú trọng phát sóng.</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Ngoai_Hang_Anh_Premier_League"></span><strong>Ngoại Hạng Anh (Premier League)</strong><span class="ez-toc-section-end"></span></h3>



<p>NHA là cái tên quen thuộc nhất với người <strong>xem bóng đá</strong> vì giải có quá nhiều trận đấu kinh điển, siêu hay, siêu hấp dẫn. Hàng loạt siêu sao tên tuổi cũng đến đây góp mặt làm cho cộng đồng người xem phấn khích.</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="UEFA_Champions_League_Cup_C1_Chau_Au"></span><strong>UEFA Champions League (Cúp C1 Châu Âu)</strong><span class="ez-toc-section-end"></span></h3>



<p>Cúp C1 đã trở thành giải đấu cấp CLB danh giá nhất trong thời điểm hiện tại, rất nhiều tài năng trẻ đã được tìm thấy và đang có những bước phát triển nhảy vọt. Sân chơi này dành cho CLB ở khu vực châu Âu nên hứa hẹn các cuộc tranh tài cũng kịch tính không kém giải khác.</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="La_Liga_%E2%80%93_Giai_VDQG_Tay_Ban_Nha"></span><strong>La Liga – Giải VĐQG Tây Ban Nha</strong><span class="ez-toc-section-end"></span></h3>



<p>Giải VĐQG Tây Ban Nha gây sốt với cộng đồng người xem khi mang đến nhiều cuộc chạm trán nảy lửa. Qua đó chúng ta không thể nào quên những trận đối đầu của Real Madrid cùng Barcelona.</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeAKhsgVDizx_AXo28mNaFMtEvMnzRJ0YK4Rq9n9Ig0clamPIuoNz_B07MmrU8Tv7KFEriWkMbxDXa-p_EMhFDxaKEg-qE0InGPxkG6w2rDEKaws_LTKEE7KMqmPdADSlfIxzJh0w?key=F02E_ibIsumCYnRhUFycaQ" alt=""/></figure>



<p><em>Giải đấu La Liga</em></p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Serie_A_%E2%80%93_Giai_VDQG_Italia"></span><strong>Serie A – Giải VĐQG Italia</strong><span class="ez-toc-section-end"></span></h3>



<p>Giải đấu này có sự góp mặt của nhiều tên tuổi lớn như Juventus, AC Milan hay Inter Milan,&#8230; Với sự cạnh tranh gay gắt cùng nhiều chiến thuật thi đấu được thực hiện từ tấn công đến phòng ngự làm cho fan hâm mộ đứng ngồi không yên khi xem.</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Bundesliga_%E2%80%93_Giai_VDQG_Duc"></span><strong>Bundesliga – Giải VĐQG Đức</strong><span class="ez-toc-section-end"></span></h3>



<p>Giải VĐQG Đức cũng cung cấp nhiều trận cầu căng thẳng cùng bầu không khí cuồng nhiệt. Chính sự góp mặt của các CLB hàng đầu vào Bundesliga như Bayern Munich, Dortmund,&#8230;.. thu hút thêm lượng lớn fan hâm mộ trên khắp thế giới.</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Ligue_1_%E2%80%93_Giai_VDQG_Phap"></span><strong>Ligue 1 – Giải VĐQG Pháp</strong><span class="ez-toc-section-end"></span></h3>



<p>Sân chơi lớn của bóng đá Pháp đã trở thành nơi sản sinh nhiều cầu thủ trẻ nổi bật, giàu tài năng. Ligue 1 không chỉ hấp dẫn bởi có vô vàn CLB lớn tham gia mà còn tạo cảm giác kích thích cho người xem khi các HLV dốc hết sức để đội mình đi tiếp vào vòng trong. Chính vì lẽ đó mà mỗi cuộc tranh tài đều kịch tính, nảy lửa và hồi hộp trong từng phút.</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="AFF_Cup_SEA_Games_Asian_Cup"></span><strong>AFF Cup, SEA Games, Asian Cup</strong><span class="ez-toc-section-end"></span></h3>



<p>Ở khu vực, AFF Cup và SEA Games là những giải đấu thu hút đông đảo người hâm mộ Đông Nam Á. Đội tuyển Việt Nam từng để lại dấu ấn với nhiều chức vô địch. Ở tầm châu lục, Asian Cup là giải đấu lớn nhất, quy tụ các đội tuyển mạnh của châu Á, mang đến các màn so tài quyết liệt.</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="World_Cup_Euro_va_cac_giai_quoc_te"></span><strong>World Cup, Euro và các giải quốc tế</strong><span class="ez-toc-section-end"></span></h3>



<p>World Cup và Euro là đỉnh cao bóng đá thế giới và châu Âu, nơi hội tụ những đội tuyển và cầu thủ xuất sắc nhất. Mỗi kỳ tổ chức đều tạo nên bầu không khí sôi động toàn cầu. Ngoài ra, các giải quốc tế khác như Copa America hay Nations League cũng góp phần đa dạng hóa bức tranh bóng đá toàn cầu.</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfxeVaMDTUANvRpzdcACCtX3jnWmwLYTaDpBwwmPw_Qf48bpuKsNtRefqwgDKEHJ5Jzk3Q3jSO5R1Eu1rzYzGKmuwrrZ8QUZVP_z7ND8BfZ3eZAtheTbPbGUmCrSM-6nwhOEGPhwg?key=F02E_ibIsumCYnRhUFycaQ" alt=""/></figure>



<p><em>Trực tiếp các giải đấu World Cup, Euro và các giải quốc tế</em></p>



<h2 class="wp-block-heading"><span class="ez-toc-section" id="So_sanh_CakhiaTV_va_cac_nen_trang_truc_tiep_bong_da_hien_nay_Xoilac_TV_Socolive_RakhoiTV_LuongSonTV_ThapCamTV"></span><strong>So sánh CakhiaTV và các nền trảng trực tiếp bóng đá hiện nay (Xoilac TV, Socolive, RakhoiTV, LuongSonTV, ThapCamTV)</strong><span class="ez-toc-section-end"></span></h2>



<p>Trong số các nền tảng xem bóng đá trực tuyến như Xoilac TV, Socolive, RakhoiTV, LuongSonTV, ThapCamTV, <strong>CakhiaTV</strong> nổi bật nhờ tốc độ truyền tải mượt mà, số lượng trận đấu phong phú và giao diện tối ưu trải nghiệm người dùng. Theo như phân tích trang còn ăn điểm, để lại ấn tượng sâu sắc trong lòng khán giả nhờ:</p>



<ul class="wp-block-list">
<li>Nếu Xoilac TV chú trọng vào việc cập nhật nhanh link xem, Socolive nổi tiếng với đa dạng bình luận viên, RakhoiTV mạnh về các trận quốc tế, thì trang <strong>trực tiếp bóng đá Cakhia TV</strong> kết hợp cả ưu thế đó trong một hệ thống.</li>



<li>LuongSonTV và ThapCamTV có thế mạnh riêng về các giải quốc nội, nhưng chất lượng hình ảnh và tốc độ truyền phát của <strong>CakhiaTV</strong> vẫn được đánh giá cao hơn trong nhiều trận cầu “hot”.</li>
</ul>



<h2 class="wp-block-heading"><span class="ez-toc-section" id="Huong_dan_xem_bong_da_truc_tiep_tren_trang_chu_CakhiaTV"></span><strong>Hướng dẫn xem bóng đá trực tiếp trên trang chủ CakhiaTV</strong><span class="ez-toc-section-end"></span></h2>



<p>Khi muốn xem <strong>trực tiếp bóng đá Cakhiatv</strong> một cách hiệu quả nhất thì bạn cần nắm rõ những thao tác cơ bản như sau:</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Truy_cap_nhanh_vao_link_tran_dau_qua_tinh_nang_tim_kiem"></span><strong>Truy cập nhanh vào link trận đấu qua tính năng tìm kiếm</strong><span class="ez-toc-section-end"></span></h3>



<p>Người dùng chỉ cần truy cập vào trang chủ hoặc sử dụng các đường dẫn dự phòng được <strong>CakhiaTV</strong> cập nhật thường xuyên. Tiếp đến hãy tìm kiếm tên đội bóng, giải đấu bạn muốn theo dõi.</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Chon_phong_BLV_phu_hop"></span><strong>Chọn phòng BLV phù hợp</strong><span class="ez-toc-section-end"></span></h3>



<p>Trang web cho phép lựa chọn nhiều phòng bình luận khác nhau. Từ BLV chuyên nghiệp đến BLV giải trí, giúp khán giả có thể tận hưởng trận đấu theo phong cách yêu thích.</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Su_dung_tinh_nang_loc_tran_theo_Dang_Live_Tran_Hot_Hom_Nay_Ngay_Mai"></span><strong>Sử dụng tính năng lọc trận theo Đang Live / Trận Hot / Hôm Nay / Ngày Mai</strong><span class="ez-toc-section-end"></span></h3>



<p>Tính năng lọc thông minh giúp người xem nhanh chóng tìm được trận mình muốn theo thời gian hoặc mức độ hấp dẫn. Điều này đặc biệt hữu ích trong các ngày có nhiều trận diễn ra cùng lúc.</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeKDs0F2NXhr8pfUuzZI_9W5pgv2YNZ1rar79NpxmMmqXGpSkv9BgXMgw8ULnfEgvMKLWz4uP3RFDzp1N-lopn3og2UanUq9vj2G7E6f9WZnPuH7RaIPx3_aJpXGq_UAex_JTtKrw?key=F02E_ibIsumCYnRhUFycaQ" alt=""/></figure>



<p><em>Tính năng lọc trận đấu siêu hiện đại</em></p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Luu_y_de_tranh_mat_ket_noi_khi_xem"></span><strong>Lưu ý để tránh mất kết nối khi xem</strong><span class="ez-toc-section-end"></span></h3>



<p>Thương hiệu khuyến khích sử dụng đường truyền internet ổn định, ưu tiên kết nối qua cáp hoặc wifi mạnh. Ngoài ra,bạn cũng cần tắt bớt các ứng dụng nền giúp giảm tải cho thiết bị khi xem.</p>



<h2 class="wp-block-heading"><span class="ez-toc-section" id="Cac_chuyen_muc_hap_dan_khac_tai_CakhiaTV"></span><strong>Các chuyên mục hấp dẫn khác tại CakhiaTV</strong><span class="ez-toc-section-end"></span></h2>



<p>Trang web hiện đang cung cấp hàng loạt chuyên mục hấp dẫn với các phạm vi nội dung rõ ràng giúp bạn nhanh chóng tìm được thông tin mình cần, cụ thể:</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Lich_thi_dau_hom_nay"></span><strong>Lịch thi đấu hôm nay</strong><span class="ez-toc-section-end"></span></h3>



<p>Chuyên mục cập nhật đầy đủ các giải đấu trong ngày, từ quốc tế đến quốc nội, giúp người hâm mộ chủ động sắp xếp thời gian theo dõi. Tất cả đều được ghi theo ngày &#8211; giờ Việt Nam, cực kỳ dễ để xem bóng đá.</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Ket_qua_bong_da_truc_tuyen"></span><strong>Kết quả bóng đá trực tuyến</strong><span class="ez-toc-section-end"></span></h3>



<p><strong>CakhiaTV</strong> hiển thị kết quả ngay sau khi trận đấu kết thúc, kèm thông tin chi tiết về bàn thắng, thẻ phạt và các thống kê quan trọng. Qua đó mọi người dễ dàng biết rõ cầu thủ, thời điểm ghi bàn cũng như thắng / thua trong từng đội.</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Bang_xep_hang_bong_da"></span><strong>Bảng xếp hạng bóng đá</strong><span class="ez-toc-section-end"></span></h3>



<p>Thương hiệu cung cấp bảng xếp hạng mới nhất của các giải đấu lớn như Premier League, La Liga, Serie A, Ligue 1,… Dữ liệu trên chuyên mục thể hiện rõ điểm số, hiệu số bàn thắng để biết rõ phong độ từng đội.</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdzZIqXdjhx2g-b8vyVhLW7C0F3xHpR3xSiNLGFRRxXmOOHE59ZaDp1I_FPQwU0WxeBAkc520pM7FqkAW-qMgWimpj1ZOeRslcAoMfYtLHipldI9orBx54g_zqf7WVwgWvse8fi?key=F02E_ibIsumCYnRhUFycaQ" alt=""/></figure>



<p><em>Chuyên mục bảng xếp hạng trên trang cực hiện đại</em></p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Nhan_dinh_keo_nha_cai"></span><strong>Nhận định kèo nhà cái</strong><span class="ez-toc-section-end"></span></h3>



<p>Trang cũng liên tục cập nhật những bài viết nhận định trước trận đấu để khán giả có cái nhìn tổng quan nhất về từng đội. Từng nội dung đều được thực hiện bởi người có chuyên môn cao.</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Thong_ke_phong_do_%E2%80%93_Lich_su_doi_dau_o_tung_tran"></span><strong>Thống kê phong độ – Lịch sử đối đầu ở từng trận</strong><span class="ez-toc-section-end"></span></h3>



<p>Thông tin về lịch sử đối đầu của từng trận đấu giúp bạn hiểu rõ về thống kê phong độ. Chuyên mục này rất hữu ích với những ai tham gia cá độ bóng đá.</p>



<h2 class="wp-block-heading"><span class="ez-toc-section" id="Cac_loi_co_the_gap_khi_xem_bong_da_tai_CakhiaTV_va_cach_khac_phuc"></span><strong>Các lỗi có thể gặp khi xem bóng đá tại CakhiaTV và cách khắc phục</strong><span class="ez-toc-section-end"></span></h2>



<p>Mặc dù trang web có nhiều ưu điểm nổi bật nhưng không phải lúc nào bạn sử dụng cũng trơn tru. Khách hàng có thể gặp một số lỗi thường gặp như video bị giật do mạng yếu, link tạm thời không hoạt động hoặc âm thanh lệch hình. Cách khắc phục thường là tải lại trang, đổi sang server khác, hoặc giảm chất lượng video để ổn định đường truyền.</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdedTdz0FEVruBm8PaI6cFsFTX89q196Xsf9Lf8qERGLqW0RkK_YgVL-ADYjX4BAsthrRqPBMAmXc0UBeLaxsZwY3lDPiAyhcjK5V8xvFECl3u1ojuOEUOS7XxT8ymvHhSMj2zU?key=F02E_ibIsumCYnRhUFycaQ" alt=""/></figure>



<p><em>Vài lỗi mà bạn có thể gặp khi trải nghiệm xem bóng đá</em></p>



<h2 class="wp-block-heading"><span class="ez-toc-section" id="Cam_ket_chinh_sach_bao_ve_nguoi_dung"></span><strong>Cam kết &amp; chính sách bảo vệ người dùng</strong><span class="ez-toc-section-end"></span></h2>



<p>Nhằm tạo sự an tâm cho người dùng thì thương hiệu cũng đưa ra những cam kết cũng như chính sách bảo vệ người dùng cụ thể;</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Chinh_sach_bao_mat_thong_tin"></span><strong>Chính sách bảo mật thông tin</strong><span class="ez-toc-section-end"></span></h3>



<p><strong>CakhiaTV</strong> không yêu cầu cung cấp thông tin cá nhân và áp dụng các biện pháp mã hóa dữ liệu để bảo vệ người dùng. Chính sách này không phải website nào cũng có vì thế lựa chọn trang này là cực kỳ chuẩn xác.</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Cam_ket_chat_luong_truyen_phat"></span><strong>Cam kết chất lượng truyền phát</strong><span class="ez-toc-section-end"></span></h3>



<p>Đơn vị đảm bảo chất lượng hình ảnh Full HD, âm thanh rõ ràng, hạn chế tối đa độ trễ so với trận đấu thực tế. Điều đó giúp cho người xem có trải nghiệm theo dõi cuộc đối đầu thêm mượt mà.</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Dieu_khoan_su_dung_dich_vu"></span><strong>Điều khoản sử dụng dịch vụ</strong><span class="ez-toc-section-end"></span></h3>



<p>Người dùng cần tuân thủ quy định bản quyền và điều khoản sử dụng, miễn trừ trách nhiệm. Tất cả nội dung đăng tải trên trang web không được sử dụng thương mại trái phép.</p>



<h2 class="wp-block-heading"><span class="ez-toc-section" id="Cau_hoi_thuong_gap_FAQ"></span><strong>Câu hỏi thường gặp (FAQ)</strong><span class="ez-toc-section-end"></span></h2>



<p>Dưới đây là những câu hỏi thường gặp nhất liên quan đến trang web chuyên trực tiếp bóng đá này:</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="CakhiaTV_co_mien_phi_khong"></span><strong>CakhiaTV có miễn phí không?</strong><span class="ez-toc-section-end"></span></h3>



<p>Trang cho phép xem miễn phí hoàn toàn. Bạn chỉ cần thiết bị kết nối mạng là truy cập được.</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Toi_co_the_xem_lai_tran_da_phat_song_khong"></span><strong>Tôi có thể xem lại trận đã phát sóng không?</strong><span class="ez-toc-section-end"></span></h3>



<p>Một số trận được lưu lại để xem lại. Mục “Trận đã phát” hỗ trợ tính năng này giúp bạn không bỏ lỡ bất kỳ trận đấu nào.</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="CakhiaTV_co_bi_giat_khi_nhieu_nguoi_xem"></span><strong>CakhiaTV có bị giật khi nhiều người xem?</strong><span class="ez-toc-section-end"></span></h3>



<p>Hệ thống có nhiều server để tránh quá tải. Tuy nhiên mạng yếu vẫn có thể giật lag vì thế hãy cố gắng dùng đường truyền riêng để không ảnh hưởng đến quá trình xem.</p>



<h3 class="wp-block-heading"><span class="ez-toc-section" id="Co_the_xem_tren_TV_thong_minh_khong"></span><strong>Có thể xem trên TV thông minh không?</strong><span class="ez-toc-section-end"></span></h3>



<p>Chỉ cần mở trình duyệt trên TV và truy cập web là bạn có thể xem trực tiếp. Ngoài ra có thể dùng link tương thích phù hợp với thiết bị.</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeSnbqbBMXLYPykE5aylTenr4jpulOmIB64F8AP2L2Yc1QVw7t79gANgDgTo4wFar9uC0Wkbw8kWU4t3Clxktp7mJsjOA4QC7mGiJN2IY4aH9SryOBxegygovCTkIzn3BFuzSPKgA?key=F02E_ibIsumCYnRhUFycaQ" alt=""/></figure>



<p><em>FAQ thường gặp về thương hiệu CakhiaTV</em></p>
          </div>
        </div>
      </div>
    </div>
  </div>
</section>
    </main>
<!-- Footer -->
    <!-- <footer class="footer">
      <div class="container">
        <div class="footer__content">
          <p style="font-size: 14px">
            Bản quyền bởi
            <a href="#"><span class="text-primary">CakhiaTV</span></a> - All
            rights reserved
          </p>
        </div>
      </div>
    </footer> -->
    
<footer style="background-color: #111; color: #fff; text-align: center; padding: 30px 15px;">
    <div style="max-width: 1280px; margin: 0 auto">
    <div class="footer-logo">
        <img src="/wp-content/uploads/2025/07/logo-cakhiatv.png" alt="Cakhia TV" style="vertical-align: middle; height: 40px;">
    </div>
  
    <p class="footer-descript">
        <a href="/"><strong style="color: #ff6000;">CakhiaTV</strong></a> - Cà Khịa TV là trang web chuyên phát sóng trực tiếp các trận đấu ở nhiều giải trên thế giới cùng đội ngũ BLV được đào tạo bài bản, am hiểu bóng đá. Website còn cung cấp nhiều chuyên mục hữu ích cập nhật theo thời gian thực bao gồm lịch thi đấu, bảng xếp hạng, kết quả bóng đá, nhận định, tin tức.
        </p>
        
<div id="4hBXj" style="text-align:center"></div>


  <nav style="margin: 20px 0;">
    <a href="/gioi-thieu" class="footer-nav-text" style="color: #ff6000; margin: 0 10px; font-weight: bold;">VỀ CHÚNG TÔI</a>
    <a href="/chinh-sach-bao-mat"class="footer-nav-text" style="color: #ff6000; margin: 0 10px; font-weight: bold;">CHÍNH SÁCH</a>
    <a href="/dieu-khoan-su-dung"class="footer-nav-text" style="color: #ff6000; margin: 0 10px; font-weight: bold;">ĐIỀU KHOẢN</a>
    <a href="/lien-he"class="footer-nav-text" style="color: #ff6000; margin: 0 10px; font-weight: bold;">LIÊN HỆ</a>
    <a href="/ban-quyen"class="footer-nav-text" style="color: #ff6000; margin: 0 10px; font-weight: bold;">BẢN QUYỀN</a>
    <a href="/mien-tru-trach-nhiem"class="footer-nav-text" style="color: #ff6000; margin: 0 10px; font-weight: bold;">MIỄN TRỪ TRÁCH NHIỆM</a>
    <a href="#"class="footer-nav-text" style="color: #ff6000; margin: 0 10px; font-weight: bold;">TUYỂN DỤNG</a>
    <a href="#"class="footer-nav-text" style="color: #ff6000; margin: 0 10px; font-weight: bold;">SITEMAP</a>
  </nav>

  <p class="footer-text">Doanh nghiệp: Cakhia TV</p>
  <p class="footer-text">Chịu trách nhiệm nội dung: <a href="/author/hoangvanlong"><span style="color: #ff6000;">Hoàng Vân Long</span></a></p>
  <p class="footer-text">Số điện thoại: 0969 236 481</p>
  <p class="footer-text">Email: <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="dab9bbb1b2b3bbaeaca2b8b6bbb9b19abdb7bbb3b6f4b9b5b7">[email&#160;protected]</a></p>
  <p class="footer-text">Địa chỉ: <a href="https://maps.app.goo.gl/YHnfQ6ufqeSWSLPaA" target="_blank" rel="nofollow"><span style="color: #ff6000;">27 Hàng Quạt, phường Hàng Gai, quận Hoàn Kiếm, Hà Nội</span></a></p>
  <p class="footer-text">Hoạt động: 00:00–23:59 (hằng ngày)</p>

  <p style="margin-top: 15px;">Hashtag: #cakhiatv #cakhia #tructiepbongda #xembongdatructiep #xembongdatructuyen</p>
 
  <div style="margin-top: 15px;">
    <a href="#"><img src="https://cdn.cakhiatvxttbdh.tv/wp-content/wp-content/uploads/2025/06/icon-facebook.webp" alt="Facebook" style="width: 24px; margin: 0 5px;"></a>
    <a href="#" rel="nofollow" target="_blank"><img src="https://cdn.cakhiatvxttbdh.tv/wp-content/wp-content/uploads/2025/06/4.png" alt="Twitter" style="width: 24px; margin: 0 5px;"></a>
    <a href="#" rel="nofollow" target="_blank"><img src="https://cdn.cakhiatvxttbdh.tv/wp-content/wp-content/uploads/2025/06/pngimg.com-twitch_PNG28.png" alt="Twitch" style="width: 24px; margin: 0 5px;"></a>
    <a href="#" rel="nofollow" target="_blank"><img src="https://cdn.cakhiatvxttbdh.tv/wp-content/wp-content/uploads/2025/06/Youtube_logo.png" alt="Youtube" style="width: 24px; margin: 0 5px;"></a>
    <a href="#" rel="nofollow" target="_blank"><img src="https://cdn.cakhiatvxttbdh.tv/wp-content/wp-content/uploads/2025/06/reddit-logo-1.png" alt="Reddit" style="width: 24px; margin: 0 5px;"></a>
    <a href="#" rel="nofollow" target="_blank"><img src="https://cdn.cakhiatvxttbdh.tv/wp-content/wp-content/uploads/2025/06/pngimg.com-pinterest_PNG63.png" alt="Pinterest" style="width: 24px; margin: 0 5px;"></a>
    <a href="#" rel="nofollow" target="_blank"><img src="https://cdn.cakhiatvxttbdh.tv/wp-content/wp-content/uploads/2025/06/free-tumblr-logo-icon-2434-thumb.png" alt="Tumblr" style="width: 24px; margin: 0 5px;"></a>
  </div>
  
  <div style="margin: 1rem 0">
  <a href="//www.dmca.com/Protection/Status.aspx?ID=b03a051e-fc2a-4ffb-ab78-7b2110c8201b" title="DMCA.com Protection Status" class="dmca-badge"> <img src ="https://images.dmca.com/Badges/_dmca_premi_badge_4.png?ID=b03a051e-fc2a-4ffb-ab78-7b2110c8201b"  alt="DMCA.com Protection Status" /></a>  <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script src="https://images.dmca.com/Badges/DMCABadgeHelper.min.js"> </script> 
  </div>
  
  </div>
</footer>


    <button onclick="scrollToTop()" id="scrollTopBtn" title="Go to top">
      <svg viewBox="0 0 24 24">
        <path
          d="M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z"
        ></path>
      </svg>
    </button>

    <script src="https://cdn.cakhiatvxttbdh.tv/wp-content/themes/cakhiatv/assets/js/main.js"></script>
    
  </body>
        <script>
        if ('serviceWorker' in navigator) {
            window.addEventListener('load', function () {
                navigator.serviceWorker.register('/sw.js')
                    .then(function (reg) { /*console.log('[SW] ✅ Registered, scope:', reg.scope);*/ })
                    .catch(function (err) { /*console.warn('[SW] Registration failed:', err);*/ });
            });
        }
    </script>
    <script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/cakhiatv\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
        <script src="https://cakhiatvxttbdh.tv/js/websocket-client.js"></script>
        <style>
            @keyframes spin {
                0% {
                    transform: rotate(0deg);
                }

                100% {
                    transform: rotate(360deg);
                }
            }

            .loading-spinner {
                animation: spin 1s linear infinite;
            }

            #match-list {
                position: relative;
            }

            #match-list>div[style*="display: flex"] {
                width: 100% !important;
                max-width: 100% !important;
            }
        </style>
        <script>
            // ─── LocalStorage Cache (giống colatv40.live) ────────────────
            const LS_MATCHES_KEY = 'colatv_matches_v1';
            const LS_MATCHES_TTL = 10 * 60 * 1000; // 10 phút

            function loadMatchesFromCache() {
                try {
                    const raw = localStorage.getItem(LS_MATCHES_KEY);
                    if (!raw) return null;
                    const { data, ts } = JSON.parse(raw);
                    if (!data || !Array.isArray(data) || data.length === 0) return null;
                    if (Date.now() - ts > LS_MATCHES_TTL) return null;
                    return data;
                } catch { return null; }
            }

            function saveMatchesToCache(matches) {
                try {
                    if (!matches || matches.length === 0) return;
                    localStorage.setItem(LS_MATCHES_KEY, JSON.stringify({ data: matches, ts: Date.now() }));
                } catch { /* localStorage full, bỏ qua */ }
            }
            // ─────────────────────────────────────────────────────────────

            // Tối ưu: Cache DOM selectors để tránh query lại
            const filterCountCache = {
                countAllType: null,
                countAll: null,
                countElements: {},
                noBlvElement: null,
                liveElement: null,
                hotElement: null,
                todayElement: null,
                tomorrowElement: null,
                initialized: false
            };

            function initFilterCountCache() {
                if (filterCountCache.initialized) return;

                filterCountCache.countAllType = document.getElementById('count-all-type');
                filterCountCache.countAll = document.getElementById('count-all');
                filterCountCache.noBlvElement = document.getElementById('noblv-live');
                filterCountCache.liveElement = document.getElementById('count-live');
                filterCountCache.hotElement = document.getElementById('count-hot');
                filterCountCache.todayElement = document.getElementById('count-today');
                filterCountCache.tomorrowElement = document.getElementById('count-tomorrow');

                ['football', 'basketball', 'tennis', 'volleyball'].forEach(sport => {
                    filterCountCache.countElements[sport] = document.getElementById(`count-${sport}`);
                });

                filterCountCache.initialized = true;
            }

            // Hàm đếm số lượng trận đấu theo bộ lọc - Tối ưu với cached selectors
            function updateFilterCounts(visibleMatchCards, allMatchCards) {
                initFilterCountCache();

                if (filterCountCache.countAllType) {
                    filterCountCache.countAllType.textContent = allMatchCards.length;
                }

                if (filterCountCache.countAll) {
                    filterCountCache.countAll.textContent = visibleMatchCards.length;
                }

                ['football', 'basketball', 'tennis', 'volleyball'].forEach(sport => {
                    const countElement = filterCountCache.countElements[sport];
                    if (countElement) {
                        const count = Array.from(allMatchCards).filter(card => card.dataset.sport === sport).length;
                        countElement.textContent = count;
                    }
                });

                if (filterCountCache.noBlvElement) {
                    const noBlvCount = Array.from(visibleMatchCards).filter(card => card.dataset.blv === 'false').length;
                    filterCountCache.noBlvElement.textContent = noBlvCount;
                }

                if (filterCountCache.liveElement) {
                    const noBlvCount = Array.from(visibleMatchCards).filter(card => card.dataset.blv === 'false').length;
                    const liveCount = Array.from(visibleMatchCards).filter(card => card.dataset.live === 'true').length - noBlvCount;
                    filterCountCache.liveElement.textContent = liveCount;
                }

                if (filterCountCache.hotElement) {
                    const noBlvCount = Array.from(visibleMatchCards).filter(card => card.dataset.blv === 'false').length;
                    const hotCount = Array.from(visibleMatchCards).filter(card => card.dataset.hot === 'true').length - noBlvCount;
                    filterCountCache.hotElement.textContent = hotCount;
                }

                const today = new Date().toISOString().split('T')[0];
                const tomorrow = new Date(Date.now() + 86400000).toISOString().split('T')[0];

                if (filterCountCache.todayElement) {
                    const todayCount = Array.from(visibleMatchCards).filter(card => card.dataset.date === today).length;
                    filterCountCache.todayElement.textContent = todayCount;
                }

                if (filterCountCache.tomorrowElement) {
                    const tomorrowCount = Array.from(visibleMatchCards).filter(card => card.dataset.date === tomorrow).length;
                    filterCountCache.tomorrowElement.textContent = tomorrowCount;
                }
            }

            // Hàm chuyển đổi ID môn thể thao thành tên
            function sportName(sportId) {
                const sports = {
                    1: 'football',
                    2: 'basketball',
                };
                return sports[sportId] || 'unknown';
            }

            // Hàm xử lý timestamp
            function fixtime(timestamp) {
                return isNaN(timestamp) ? new Date(timestamp).getTime() : timestamp;
            }

            // Hàm định dạng ngày giờ
            function formatDate(timestamp, format) {
                const date = new Date(timestamp * 1000);
                const day = String(date.getDate()).padStart(2, '0');
                const month = String(date.getMonth() + 1).padStart(2, '0');
                const year = date.getFullYear();
                const hours = String(date.getHours()).padStart(2, '0');
                const minutes = String(date.getMinutes()).padStart(2, '0');
                if (format === 'd/m') return `${day}/${month}`;
                if (format === 'Y-m-d') return `${year}-${month}-${day}`;
                if (format === 'H:i') return `${hours}:${minutes}`;
                return date;
            }

            // Hàm lấy domain API random để tránh Cloudflare rate limit
            function getApiDomain() {
                const domains = ['api.gvapi.cc'];

                // Random chọn một domain
                const index = Math.floor(Math.random() * domains.length);
                const selected = domains[index];

                return 'https://' + selected;
            }

            // Hàm lấy domain API random cho video-home (pinned-home)
            function getVideoHomeApiDomain() {
                const domains = ['video-home.gvapi.cc'];

                // Random chọn một domain
                const index = Math.floor(Math.random() * domains.length);
                const selected = domains[index];

                return 'https://' + selected;
            }

            // Hàm hiển thị loading
            function showLoading() {
                const matchList = getMatchList();
                if (!matchList) return;

                // Hiển thị trực tiếp trong match-list, thay thế toàn bộ nội dung
                matchList.innerHTML = `
                <div style="text-align: center; padding: 60px 20px; width: 100%; min-height: 400px; display: flex; flex-direction: column; justify-content: center; align-items: center; box-sizing: border-box;">
                    <div class="loading-spinner" style="display: block; width: 50px; height: 50px; border: 4px solid #f3f3f3; border-top: 4px solid #3498db; border-radius: 50%; animation: spin 1s linear infinite; margin: 0 auto;"></div>
                    <p style="margin-top: 20px; color: #666; font-size: 16px; text-align: center; width: 100%;">Đang tải dữ liệu...</p>
                </div>
            `;
            }

            // Hàm hiển thị lỗi với các button đề xuất
            function showErrorWithSuggestions() {
                const matchList = getMatchList();
                if (!matchList) return;

                const suggestionLinks = [
                    { name: 'iotditr.com', url: 'https://iotditr.com' },
                    { name: 'cntsiend.com', url: 'https://cntsiend.com' },
                    { name: 'euwygrb.com', url: 'https://euwygrb.com' },
                    { name: 'ppoemlg.com', url: 'https://ppoemlg.com' },
                    { name: 'eyhtldu.com', url: 'https://eyhtldu.com' }
                ];

                const buttonsHtml = suggestionLinks.map(link =>
                    `<a href="${link.url}" target="_blank" rel="nofollow" style="display: inline-block; margin: 8px; padding: 12px 24px; background-color: #3498db; color: white; text-decoration: none; border-radius: 5px; font-weight: bold; transition: background-color 0.3s; cursor: pointer;">${link.name}</a>`
                ).join('');

                // Hiển thị trực tiếp trong match-list, thay thế toàn bộ nội dung
                matchList.innerHTML = `
                <div style="text-align: center; padding: 60px 20px; width: 100%; min-height: 400px; display: flex; flex-direction: column; justify-content: center; align-items: center;">
                    <div style="margin-bottom: 20px;">
                        <svg width="64" height="64" viewBox="0 0 24 24" fill="none" stroke="#e74c3c" stroke-width="2" style="margin: 0 auto; display: block;">
                            <circle cx="12" cy="12" r="10"></circle>
                            <line x1="12" y1="8" x2="12" y2="12"></line>
                            <line x1="12" y1="16" x2="12.01" y2="16"></line>
                        </svg>
                    </div>
                    <h3 style="color: #e74c3c; margin-bottom: 15px; font-size: 24px; font-weight: bold;">Hệ thống gặp sự cố</h3>
                    <p style="color: #666; margin-bottom: 30px; font-size: 16px; max-width: 500px;">Bạn có thể chọn kênh khác:</p>
                    <div style="display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; width: 100%; max-width: 800px;">
                        ${buttonsHtml}
                    </div>
                </div>
            `;
            }

            // Hàm fetch với timeout
            function fetchWithTimeout(url, timeout = 10000) {
                return Promise.race([
                    fetch(url),
                    new Promise((_, reject) =>
                        setTimeout(() => reject(new Error('Request timeout')), timeout)
                    )
                ]);
            }

            // Hàm lấy dữ liệu trận đấu từ API và render
            async function refreshMatches() {
                const matchList = getMatchList();
                if (!matchList) {
                    console.error('Không tìm thấy phần tử match-list');
                    return;
                }

                // Chỉ hiển thị loading nếu chưa có data từ cache
                if (!matchList.querySelector('.match-card')) {
                    showLoading();
                }

                try {
                    const apiBase = getApiDomain();
                    const response = await fetchWithTimeout(apiBase + '/api/matches?t=' + new Date().getTime(), 10000);

                    if (!response.ok) {
                        throw new Error('Lỗi khi lấy dữ liệu API: ' + response.status);
                    }

                    const datas = await response.json();

                    if (!datas.data || typeof datas.data !== 'object') {
                        throw new Error('Cấu trúc dữ liệu API không hợp lệ');
                    }

                    const newMatches = [];
                    const matchesByGroup = {}; // Nhóm matches theo competitionName

                    for (const [key, data] of Object.entries(datas.data)) {
                        // Bảo vệ nếu anchorAppointmentVoList không phải array
                        const anchorList = Array.isArray(data.anchorAppointmentVoList) ? data.anchorAppointmentVoList : [];
                        //if (!anchorList.length) continue;

                        // Bỏ các trận "Live streaming"
                        if (anchorList[0]?.nickName === 'Live streaming') continue;

                        // Bảo vệ tỉ số
                        const homeScoreArr = Array.isArray(data.homeScore) ? data.homeScore : [];
                        const awayScoreArr = Array.isArray(data.awayScore) ? data.awayScore : [];
                        const homeScore = homeScoreArr.length ? homeScoreArr[0] : 0;
                        const awayScore = awayScoreArr.length ? awayScoreArr[0] : 0;

                        // Nếu match có house_id khác null, thêm ?houseId=... vào slug
                        let slug = key;
                        if (data.house_id && data.house_id !== null) {
                            slug = `${key}?houseId=${data.house_id}`;
                        }

                        const competitionName = data.competitionName || 'NBA';
                        const matchData = {
                            id: 2,
                            slug: slug,
                            sport: sportName(data.sportId),
                            live: data.matchStatus === 2,
                            hot: true,
                            blv: anchorList[0]?.nickName !== 'Live streaming',
                            date: formatDate(fixtime(data.matchTime), 'd/m'),
                            datesearch: formatDate(fixtime(data.matchTime), 'Y-m-d'),
                            hour: formatDate(fixtime(data.matchTime), 'H:i'),
                            competitionName: competitionName,
                            teams: [
                                data.homeTeamName || 'Team C',
                                data.awayTeamName || 'Team D'
                            ],
                            score: `${homeScore}:${awayScore}`,
                            videoUrl: data.videoUrl || 'https://live2.example.com',
                            animationUrl: data.animationUrl || 'https://animation.example.com',
                            data: data
                        };

                        newMatches.push(matchData);

                        // Nhóm matches theo competitionName
                        if (!matchesByGroup[competitionName]) {
                            matchesByGroup[competitionName] = [];
                        }
                        matchesByGroup[competitionName].push(matchData);
                    }

                    // Gọi hàm render với danh sách trận đấu mới
                    renderAllMatches(newMatches);
                    filterMatches('parent', newMatches);
                    saveMatchesToCache(newMatches); // 
                } catch (error) {
                    console.error('Lỗi khi làm mới trận đấu:', error);
                    // Đã loại bỏ showErrorWithSuggestions() để không ghi đè giao diện SSR nếu API thất bại ở lần gọi đầu tiên.
                    // Hệ thống sẽ âm thầm giữ nguyên giao diện SSR và đợi Socket cập nhật.
                }
            }

            function createMatchCard(match) {
                // Bảo vệ dữ liệu, tránh crash nếu cache cũ thiếu data
                if (!match || !match.data) return '';

                // Bảo vệ anchorAppointmentVoList
                const anchorList = Array.isArray(match.data.anchorAppointmentVoList)
                    ? match.data.anchorAppointmentVoList
                    : [];

                // Xử lý slug an toàn
                const slugStr = match.slug || '';
                const baseSlug = slugStr.includes('?') ? slugStr.split('?')[0] : slugStr;

                const nicknames = anchorList.map(item => {
                    const itemHouseId = item.houseId || '';
                    if (itemHouseId !== '') {
                        const separator = baseSlug.includes('?') ? '&' : '?';
                        return `<a href="https://cakhiatvxttbdh.tv/truc-tiep/${baseSlug}${separator}houseId=${itemHouseId}" rel="nofollow">${item.nickName}</a>`;
                    } else {
                        return `<a href="https://cakhiatvxttbdh.tv/truc-tiep/${slugStr}" rel="nofollow">${item.nickName}</a>`;
                    }
                });

                const nicknameString = nicknames.join(' | ');

                // Bảo vệ tỉ số (dùng lại match.score nếu muốn)
                const homeScoreArr = Array.isArray(match.data.homeScore) ? match.data.homeScore : [];
                const awayScoreArr = Array.isArray(match.data.awayScore) ? match.data.awayScore : [];
                const homeScore = homeScoreArr.length ? homeScoreArr[0] : 0;
                const awayScore = awayScoreArr.length ? awayScoreArr[0] : 0;

                return `
                <div class="match-card" data-id="${match.id}" data-sport="${match.sport}" data-live="${match.live}" data-blv="${match.blv}" data-hot="${match.hot}" data-date="${match.datesearch}">
                    <div class="match-card__body">
                        <a href="https://cakhiatvxttbdh.tv/truc-tiep/${match.slug}" class="link-match" rel="nofollow"></a>
                        <div class="match-card__header">
                            <div class="match-card__league">
                                <span>${match.data.competitionName}</span>
                            </div>
                            <div class="match-card__status">
                                ${match.data.matchStatus == 1
                ? '<div class="match-card__status text-warning text-uppercase">CHƯA BẮT ĐẦU</div>'
                : match.data.matchStatus == 2
                    ? '<div class="match-card__status streaming">ĐANG TRỰC TIẾP</div>'
                    : match.data.matchStatus == 3
                        ? '<span class="btn btn--warning text-uppercase">Tạm ngừng phát sóng</span>'
                        : match.data.matchStatus == 4
                            ? '<span class="btn btn--danger text-uppercase">Cấm phát sóng vĩnh viễn</span>'
                            : '<span class="btn btn--secondary text-uppercase">Không xác định</span>'
            }
                            </div>
                            <div class="match-card__time"><span class="match-time">${match.hour} - ${match.date}</span></div>
                        </div>
                        <div class="match-card__teams">
                            <div class="team home">
                                <img src="${match.data.homeTeamLogo}" alt="${match.data.homeTeamName}" class="team__logo">
                                <span class="team__name">${match.data.homeTeamName}</span>
                            </div>
                            <div class="match-card__score">${homeScore} - ${awayScore}</div>
                            <div class="team">
                                <img src="${match.data.awayTeamLogo}" alt="${match.data.awayTeamName}" class="team__logo">
                                <span class="team__name">${match.data.awayTeamName}</span>
                            </div>
                        </div>
                        <div class="match-card__info">
                            <div class="match-card__stats">
                                <div class="match-card__stats-content">
                                    ${nicknameString}
                                </div>
                            </div>
                            <div class="match-card__odds">
                                <a href="https://cakhiatvxttbdh.tv/truc-tiep/${match.slug}" class="btn btn--primary" rel="nofollow">
                                    <span>XEM NGAY</span>
                                </a>
                            </div>
                        </div>
                    </div>
                </div>
            `;
            }

            // Khởi tạo bộ lọc
            let currentFilters = {
                sport: 'all',
                live: false,
                blv: false,
                hot: false,
                commentator: false,
                date: 'all',
                league: 'all'
            };

            // Tối ưu: Preload video metadata để tăng tốc độ load khi click vào match
            const videoPreloadCache = new Map(); // Cache preloaded videos
            function preloadVideoMetadata(videoUrl) {
                if (!videoUrl || videoPreloadCache.has(videoUrl)) {
                    return; // Đã preload rồi
                }

                // Mark as preloading
                videoPreloadCache.set(videoUrl, { status: 'loading', timestamp: Date.now() });

                // Preload bằng cách tạo video element và load metadata
                const video = document.createElement('video');
                video.preload = 'metadata'; // Chỉ load metadata, không load toàn bộ video
                video.muted = true;
                video.playsInline = true;
                video.style.display = 'none';

                video.addEventListener('loadedmetadata', function () {
                    videoPreloadCache.set(videoUrl, { status: 'loaded', timestamp: Date.now() });
                    document.body.removeChild(video);
                });

                video.addEventListener('error', function () {
                    videoPreloadCache.set(videoUrl, { status: 'error', timestamp: Date.now() });
                    if (document.body.contains(video)) {
                        document.body.removeChild(video);
                    }
                });

                video.src = videoUrl;
                document.body.appendChild(video);

                // Cleanup cache sau 5 phút
                setTimeout(() => {
                    videoPreloadCache.delete(videoUrl);
                }, 5 * 60 * 1000);
            }

            // Tối ưu: Cache match-list selector
            let matchListCache = null;
            function getMatchList() {
                if (!matchListCache) {
                    matchListCache = document.getElementById('match-list');
                }
                return matchListCache;
            }

            // Hàm render toàn bộ trận đấu
            function renderAllMatches(matches) {
                const matchList = getMatchList();
                if (!matchList) {
                    console.error('Không tìm thấy phần tử match-list');
                    return;
                }

                // Xóa danh sách cũ
                matchList.innerHTML = '';

                // Render danh sách mới
                matches.forEach(match => {
                    if (!match || !match.data) return; // Bỏ qua match lỗi

                    const cardHTML = createMatchCard(match);
                    if (!cardHTML) return; // Bỏ qua nếu không tạo được thẻ
                    
                    const tempDiv = document.createElement('div');
                    tempDiv.innerHTML = cardHTML.trim();
                    const cardElement = tempDiv.firstChild;
                    if (!cardElement) return;

                    // Ẩn các trận không có bình luận viên
                    /*if (cardElement.getAttribute('data-blv') === 'false') {
                        cardElement.classList.add('d-none');
                    }*/

                    // Tối ưu: Preload video metadata khi hover vào match card
                    if (match.data && match.data.videoUrl) {
                        let preloadTimeout = null;
                        cardElement.addEventListener('mouseenter', function () {
                            // Debounce: chỉ preload sau 500ms hover
                            preloadTimeout = setTimeout(() => {
                                preloadVideoMetadata(match.data.videoUrl);
                            }, 500);
                        });
                        cardElement.addEventListener('mouseleave', function () {
                            if (preloadTimeout) {
                                clearTimeout(preloadTimeout);
                                preloadTimeout = null;
                            }
                        });
                    }

                    matchList.appendChild(cardElement);
                });

                // Cập nhật bộ đếm
                const visibleMatches = document.querySelectorAll('.match-card:not(.d-none)');
                updateFilterCounts(visibleMatches, document.querySelectorAll('.match-card'));
            }

            // Hàm lọc trận đấu
            function filterMatches(type, matches) {
                const allCards = document.querySelectorAll('.match-card');

                // Lọc theo môn thể thao
                const sportFiltered = Array.from(allCards).filter(card => {
                    const sport = card.dataset.sport;
                    return currentFilters.sport === 'all' || sport === currentFilters.sport;
                });

                let finalFiltered = sportFiltered;

                // Áp dụng các bộ lọc khác
                if (currentFilters.live) {
                    finalFiltered = finalFiltered.filter(card => card.dataset.live === 'true' && card.dataset.blv === 'true');
                } else if (currentFilters.blv) {
                    finalFiltered = finalFiltered.filter(card => card.dataset.blv === 'false');
                } else if (currentFilters.hot) {
                    finalFiltered = finalFiltered.filter(card => card.dataset.hot === 'true' && card.dataset.blv === 'true');
                } else if (currentFilters.date !== 'all') {
                    finalFiltered = finalFiltered.filter(card => card.dataset.date === currentFilters.date && card.dataset.blv === 'true');
                }

                // Hiển thị/ẩn các thẻ
                allCards.forEach(card => {
                    card.classList.toggle('d-none', !finalFiltered.includes(card));
                });

                // Cập nhật bộ đếm
                if (type === 'parent') {
                    updateFilterCounts(sportFiltered, allCards);
                } else {
                    updateFilterCounts(finalFiltered, allCards);
                }
            }

            // Gắn sự kiện cho nút lọc môn thể thao
            document.querySelectorAll('.sports-filter__button[data-sport]').forEach(button => {
                button.addEventListener('click', () => {
                    currentFilters.sport = button.getAttribute('data-sport');
                    filterMatches('parent');
                });
            });

            // Gắn sự kiện cho nút lọc con
            document.querySelectorAll('.sports-filter__button_child').forEach(btn => {
                btn.addEventListener('click', function () {
                    const filterType = this.getAttribute('data-filter');
                    const value = this.getAttribute('data-value');

                    if (filterType === 'date') {
                        currentFilters.date = value;
                        currentFilters.live = false;
                        currentFilters.hot = false;
                        currentFilters.blv = false;
                    } else if (filterType === 'live') {
                        currentFilters.live = true;
                        currentFilters.date = 'all';
                        currentFilters.hot = false;
                        currentFilters.blv = false;
                    } else if (filterType === 'hot') {
                        currentFilters.hot = true;
                        currentFilters.date = 'all';
                        currentFilters.live = false;
                        currentFilters.blv = false;
                    } else if (filterType === 'child_all') {
                        currentFilters.live = false;
                        currentFilters.hot = false;
                        currentFilters.blv = false;
                        currentFilters.date = 'all';
                    }

                    document.querySelectorAll('.sports-filter__button_child').forEach(b => b.classList.remove('active'));
                    this.classList.add('active');

                    filterMatches('child');
                });
            });

            // Gắn sự kiện cho toggle livescore
            const liveToggle = document.getElementById('livescoreToggle');
            if (liveToggle) {
                liveToggle.addEventListener('change', () => {
                    currentFilters.live = liveToggle.checked;
                    filterMatches('parent');
                });
            }

            // ===== WEBSOCKET INTEGRATION =====
            let wsClient = null;
            let matchesWebSocketConnected = false;
            let fallbackPollingInterval = null;

            // Function để transform WebSocket data format
            function transformWebSocketMatches(data) {
                const newMatches = [];

                for (const [key, matchData] of Object.entries(data)) {
                    // Logic tương tự như trong refreshMatches()
                    const anchorList = Array.isArray(matchData.anchorAppointmentVoList)
                        ? matchData.anchorAppointmentVoList
                        : [];

                    if (anchorList[0]?.nickName === 'Live streaming') continue;

                    const homeScoreArr = Array.isArray(matchData.homeScore) ? matchData.homeScore : [];
                    const awayScoreArr = Array.isArray(matchData.awayScore) ? matchData.awayScore : [];
                    const homeScore = homeScoreArr.length ? homeScoreArr[0] : 0;
                    const awayScore = awayScoreArr.length ? awayScoreArr[0] : 0;

                    let slug = key;
                    if (matchData.house_id && matchData.house_id !== null) {
                        slug = `${key}?houseId=${matchData.house_id}`;
                    }

                    const competitionName = matchData.competitionName || 'NBA';
                    const matchDataObj = {
                        id: 2,
                        slug: slug,
                        sport: sportName(matchData.sportId),
                        live: matchData.matchStatus === 2,
                        hot: true,
                        blv: anchorList[0]?.nickName !== 'Live streaming',
                        date: formatDate(fixtime(matchData.matchTime), 'd/m'),
                        datesearch: formatDate(fixtime(matchData.matchTime), 'Y-m-d'),
                        hour: formatDate(fixtime(matchData.matchTime), 'H:i'),
                        competitionName: competitionName,
                        teams: [
                            matchData.homeTeamName || 'Team C',
                            matchData.awayTeamName || 'Team D'
                        ],
                        score: `${homeScore}:${awayScore}`,
                        videoUrl: matchData.videoUrl || 'https://live2.example.com',
                        animationUrl: matchData.animationUrl || 'https://animation.example.com',
                        data: matchData
                    };

                    newMatches.push(matchDataObj);
                }

                return newMatches;
            }

            // Function để init WebSocket
            function initMatchesWebSocket() {
                // WebSocket URL - có thể config từ PHP hoặc hardcode
                // Nếu có server-socket service, dùng URL đó
                // Format: wss://server.gvapi.cc hoặc ws://localhost:3320
                const wsUrl = 'wss://server.ws-xyz.com/ws'; // Thay bằng URL thực tế của bạn

                // Check nếu RealtimeWebSocketClient đã được load
                if (typeof RealtimeWebSocketClient === 'undefined') {
                    console.warn('[Homepage] RealtimeWebSocketClient not loaded, falling back to polling');
                    startFallbackPolling();
                    return;
                }

                wsClient = new RealtimeWebSocketClient(wsUrl);

                // Subscribe to matches updates
                wsClient.subscribe('matches:updated', (data) => {
                    //console.log('[Homepage] Received matches update from WebSocket');

                    if (data.code === '0000' && data.data) {
                        // Transform data để tương thích với renderAllMatches()
                        const transformedMatches = transformWebSocketMatches(data.data);
                        renderAllMatches(transformedMatches);
                        filterMatches('parent', transformedMatches);
                        saveMatchesToCache(transformedMatches); // 
                    } else if (data.data && typeof data.data === 'object') {
                        // Nếu data trực tiếp là object (không có code)
                        const transformedMatches = transformWebSocketMatches(data.data);
                        renderAllMatches(transformedMatches);
                        filterMatches('parent', transformedMatches);
                        saveMatchesToCache(transformedMatches); // 
                    }
                });

                // Handle connection events
                wsClient.subscribe('connected', () => {
                    //console.log('[Homepage] WebSocket connected');
                    matchesWebSocketConnected = true;
                    // Stop fallback polling nếu đang chạy
                    if (fallbackPollingInterval) {
                        clearInterval(fallbackPollingInterval);
                        fallbackPollingInterval = null;
                    }
                });

                wsClient.subscribe('disconnected', () => {
                    //console.log('[Homepage] WebSocket disconnected, falling back to polling');
                    matchesWebSocketConnected = false;
                    startFallbackPolling();
                });

                wsClient.subscribe('error', (error) => {
                    console.error('[Homepage] WebSocket error:', error);
                    matchesWebSocketConnected = false;
                    startFallbackPolling();
                });

                wsClient.connect();
            }

            // Fallback polling nếu WebSocket fail
            function startFallbackPolling() {
                if (fallbackPollingInterval) return; // Already running

                //('[Homepage] Starting fallback polling');
                fallbackPollingInterval = setInterval(() => {
                    if (!matchesWebSocketConnected) {
                        refreshMatches(); // Use existing function
                    } else {
                        // WebSocket reconnected, stop polling
                        clearInterval(fallbackPollingInterval);
                        fallbackPollingInterval = null;
                    }
                }, 120000); // 2 minutes như cũ
            }

            // Nếu SSR đã render HTML, ta không cần nạp từ localStorage hay fetch API lần đầu nữa (tránh nháy màn hình)
            const ssrCardsCount = document.querySelectorAll('.match-card').length;
            
            if (ssrCardsCount === 0) {
                // Thử load từ cache trước nếu không có SSR
                const cachedMatches = loadMatchesFromCache();
                if (cachedMatches && cachedMatches.length > 0) {
                    try {
                        renderAllMatches(cachedMatches);
                        filterMatches('parent', cachedMatches);
                    } catch (error) {
                        console.error('[Cache Render Error]', error);
                    }
                }

                // Fetch fresh data từ API (cập nhật + ghi đè cache)
                refreshMatches();
            }

            // Thử WebSocket trước, fallback to polling nếu fail
            // Delay một chút để đảm bảo RealtimeWebSocketClient đã được load
            setTimeout(() => {
                initMatchesWebSocket();
            }, 500);

            // Cleanup khi page unload
            window.addEventListener('beforeunload', () => {
                if (wsClient) {
                    wsClient.disconnect();
                }
                if (fallbackPollingInterval) {
                    clearInterval(fallbackPollingInterval);
                }
            });
        </script>
            <style>
        .home-banner-slider {
            width: 100%;
            margin: 15px 0;
            border-radius: 8px;
            overflow: hidden;
            position: relative;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
            display: none;
            /* Hidden by default until loaded */
            z-index: 10;
        }

        .home-banner-track {
            display: flex;
            transition: transform 0.5s ease-in-out;
            height: 100%;
        }

        .home-banner-slide {
            min-width: 100%;
            display: block;
            text-decoration: none;
        }

        .home-banner-slide img {
            width: 100%;
            height: auto;
            display: block;
            object-fit: cover;
        }

        .home-banner-dots {
            position: absolute;
            bottom: 10px;
            left: 0;
            right: 0;
            display: flex;
            justify-content: center;
            gap: 6px;
        }

        .home-banner-dot {
            width: 8px;
            height: 8px;
            background: rgba(255, 255, 255, 0.5);
            border-radius: 50%;
            cursor: pointer;
            transition: background 0.3s;
        }

        .home-banner-dot.active {
            background: white;
            transform: scale(1.2);
        }
    </style>
    <script>
        document.addEventListener('DOMContentLoaded', async function () {
            try {
                // Fetch settings
                const res = await fetch('https://api.gvapi.cc/api/settings');
                const data = await res.json();

                if (data.success && data.home_banners && data.home_banners.length > 0) {
                    const banners = data.home_banners.sort((a, b) => a.order - b.order);

                    // Create slider container
                    const sliderContainer = document.createElement('div');
                    sliderContainer.className = 'home-banner-slider';

                    const track = document.createElement('div');
                    track.className = 'home-banner-track';

                    const dotsContainer = document.createElement('div');
                    dotsContainer.className = 'home-banner-dots';

                    banners.forEach((banner, index) => {
                        // Slide
                        const slide = document.createElement('a');
                        slide.className = 'home-banner-slide';
                        slide.href = banner.link_url && banner.link_url !== '#' ? banner.link_url : 'javascript:void(0)';
                        slide.target = banner.link_url && banner.link_url !== '#' ? '_blank' : '_self';

                        const img = document.createElement('img');
                        img.src = banner.image_url;
                        img.alt = banner.name || 'Banner';

                        slide.appendChild(img);
                        track.appendChild(slide);

                        // Dot
                        const dot = document.createElement('div');
                        dot.className = 'home-banner-dot';
                        if (index === 0) dot.classList.add('active');

                        dot.addEventListener('click', () => {
                            goToSlide(index);
                        });

                        dotsContainer.appendChild(dot);
                    });

                    sliderContainer.appendChild(track);
                    if (banners.length > 1) {
                        sliderContainer.appendChild(dotsContainer);
                    }

                    // Inject into DOM (after h1 in hero content)
                    const h1 = document.querySelector('.hero__content h1');
                    if (h1) {
                        h1.insertAdjacentElement('afterend', sliderContainer);
                        sliderContainer.style.display = 'block';

                        // Slider Logic
                        let currentIndex = 0;
                        let autoPlayInterval;
                        const totalSlides = banners.length;

                        function goToSlide(index) {
                            if (totalSlides <= 1) return;
                            currentIndex = index;
                            track.style.transform = `translateX(-${currentIndex * 100}%)`;

                            // Update dots
                            Array.from(dotsContainer.children).forEach((d, i) => {
                                if (i === currentIndex) d.classList.add('active');
                                else d.classList.remove('active');
                            });

                            resetAutoPlay();
                        }

                        function nextSlide() {
                            let next = currentIndex + 1;
                            if (next >= totalSlides) next = 0;
                            goToSlide(next);
                        }

                        function resetAutoPlay() {
                            clearInterval(autoPlayInterval);
                            autoPlayInterval = setInterval(nextSlide, 3000);
                        }

                        if (totalSlides > 1) {
                            resetAutoPlay();
                        }
                    }
                }
            } catch (err) {
                console.error('Lỗi load home banners:', err);
            }
        });
    </script>
            <style>
            @media (min-width: 481px) and (max-width: 767px) {
                .match-card__status {
                    max-width: 120px;
                    font-size: 12px;
                }
            }

            @media (min-width: 576px) and (max-width: 767px) {
                .match-card__league {
                    max-width: 100px;
                }
            }

            @media (min-width: 481px) and (max-width: 575px) {
                .match-card__header {
                    flex-direction: row !important;
                }

                .match-card__time {
                    max-width: 100px !important;
                }
            }

            .top-live-box {
                width: 100%;
                height: auto;
                display: flex;
                gap: 8px;
            }

            .top-live-box .left {
                width: 100%;
                min-height: 564px;
                background-color: #000;
                border-radius: 4px;
                overflow: hidden;
            }

            .top-live-box .live-list {
                width: 240px;
                flex-shrink: 0;
            }

            .top-live-box .live-list .live-item {
                width: 100%;
                height: 144px;
                margin-bottom: 6px;
                cursor: pointer;
                border-radius: 4px;
                transition: all .1s ease-in-out;
                overflow: hidden;
                border: 2px solid transparent;
                position: relative;
            }

            .top-live-box .live-list .live-item .anchor-item {
                width: 100%;
                height: 100%;
            }

            .el-image img {
                display: block;
                width: 100%;
                height: 100%;
                object-fit: cover;
            }

            .btn-view-truc-tiep {
                position: absolute;
                top: 70%;
                left: 50%;
                transform: translate(-50%, -50%);
                z-index: 5;
                background: #f2152d;
                padding: 20px;
                border-radius: 30px;
                cursor: pointer;
                text-align: center;
            }

            .btn-view-truc-tiep:hover {
                opacity: 0.8;
            }

            .video-player {
                position: relative;
            }

            .top-live-box .live-list .live-item.active {
                border: 2px solid #ff0202;
            }

            .overlay-click {
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                z-index: 10;
                display: block;
            }

            /* Responsive */
            @media screen and (max-width: 1024px) {
                .top-live-box {
                    flex-direction: column;
                }

                .top-live-box .left {
                    width: 100%;
                    min-height: 400px;
                }

                .top-live-box .live-list {
                    display: none !important;
                    width: 100%;
                    flex-direction: row;
                    flex-wrap: wrap;
                    justify-content: center;
                    gap: 6px;
                    margin-top: 12px;
                }

                .top-live-box .live-list .live-item {
                    width: calc(50% - 6px);
                    height: 120px;
                }
            }

            @media screen and (max-width: 768px) {
                .top-live-box .left {
                    min-height: unset;
                }

                .btn-view-truc-tiep {
                    padding: 10px 10px;
                    font-size: 12px;
                }

                .top-live-box .live-list .live-item {
                    width: calc(50% - 3px);
                    height: 100px;
                }
            }

            @media screen and (max-width: 480px) {
                .top-live-box .live-list .live-item {
                    width: calc(50% - 3px);
                    height: 100px;
                }

                .btn-view-truc-tiep {
                    padding: 8px 14px;
                    font-size: 13px;
                }

                .match-card__body {
                    gap: 0.6rem;
                }
            }
        </style>
        <script src="//unpkg.byted-static.com/xgplayer/3.0.0-next.1/dist/index.min.js"></script>
        <script src="//unpkg.com/xgplayer-hls@3.0.0-next.1/dist/index.min.js"></script>
        <link rel="stylesheet" href="//unpkg.byted-static.com/xgplayer/3.0.0-alpha.100/dist/xgplayer.min.css" />
        <script type="text/javascript">
            // Hàm lấy domain API random cho video-home (pinned-home)
            function getVideoHomeApiDomain() {
                const domains = [
                    'video-home.gvapi.cc'
                ];

                // Random chọn một domain
                const index = Math.floor(Math.random() * domains.length);
                const selected = domains[index];

                return 'https://' + selected;
            }

            document.addEventListener('DOMContentLoaded', function () {
                const apiBase = getVideoHomeApiDomain();
                const STORAGE_KEY = 'pinnedMatchesCache';
                const heroSection = document.querySelector('section.hero');
                if (!heroSection) {
                    console.error('Hero section not found.');
                    return;
                }

                const skeletonHtml = `
                    <div class="top-live-box container skeleton-loading" id="pinned-matches-container">
                        <style>
                            .skeleton-box {
                                display: inline-block;
                                height: 100%;
                                width: 100%;
                                position: relative;
                                overflow: hidden;
                                background-color: #2a2a2a;
                                border-radius: 8px;
                            }
                            .skeleton-box::after {
                                position: absolute;
                                top: 0;
                                right: 0;
                                bottom: 0;
                                left: 0;
                                transform: translateX(-100%);
                                background-image: linear-gradient(
                                    90deg,
                                    rgba(255, 255, 255, 0) 0,
                                    rgba(255, 255, 255, 0.05) 20%,
                                    rgba(255, 255, 255, 0.2) 60%,
                                    rgba(255, 255, 255, 0)
                                );
                                animation: shimmer 2s infinite;
                                content: '';
                            }
                            @keyframes shimmer { 100% { transform: translateX(100%); } }
                            .skeleton-loading .left { aspect-ratio: 16/9; background: #1a1a1a; padding: 10px; border-radius: 8px;}
                            .skeleton-loading .live-list { display: flex; gap: 10px; margin-top: 10px; }
                            .skeleton-loading .live-item { flex: 1; aspect-ratio: 1/1; background: #1a1a1a; border-radius: 8px; overflow: hidden; }
                        </style>
                        <div class="left">
                            <div class="skeleton-box" style="min-height: 300px;"></div>
                        </div>
                        <div class="live-list">
                            <div class="live-item"><div class="skeleton-box"></div></div>
                            <div class="live-item"><div class="skeleton-box"></div></div>
                            <div class="live-item"><div class="skeleton-box"></div></div>
                            <div class="live-item"><div class="skeleton-box"></div></div>
                        </div>
                    </div>
                `;

                function renderMatches(matches) {
                    const anchors = matches.slice(0, 4).map((match, index) => ({
                        streamUrl: match.playStreamAddress2,
                        image: match.houseImage,
                        name: match.nickName,
                        slug: match.slugKey + '?houseId=' + match.houseId
                    }));

                    if (anchors.length === 0) return;

                    const streamUrl = anchors[0].streamUrl;

                    const liveBoxHtml = `
                        <div class="top-live-box container" id="pinned-matches-container">
                            <div class="left">
                                <div class="video-container">
                                    <div class="video-player">
                                        <div id="mse" style="width: 100%;"></div>
                                        <a href="/truc-tiep/${anchors[0].slug}" class="overlay-click" id="btn-view-link" rel="nofollow"></a>
                                        <span class="btn-view-truc-tiep" rel="nofollow">Vào phòng live đang phát sóng</span>
                                    </div>
                                </div>
                            </div>
                            <div class="live-list">
                                ${anchors.map((anchor, index) => `
                                    <div class="live-item ${index === 0 ? 'active' : ''} live-living-item" data-index="${index}">
                                        <div class="anchor-item">
                                            <div class="placeholder img">
                                                <img src="${anchor.image}" alt="${anchor.name}" style="object-fit: cover;">
                                            </div>
                                        </div>
                                    </div>
                                `).join('')}
                            </div>
                        </div>
                    `;

                    const existingContainer = document.getElementById('pinned-matches-container');
                    if (existingContainer) {
                        existingContainer.outerHTML = liveBoxHtml;
                    } else {
                        heroSection.insertAdjacentHTML('afterend', liveBoxHtml);
                    }

                    if (window.Player && window.HlsPlayer) {
                        new Player({
                            plugins: [window.HlsPlayer],
                            id: "mse",
                            ignores: ["time", "progress"],
                            autoplayMuted: true,
                            autoplay: true,
                            playsinline: true,
                            isLive: true,
                            fluid: true,
                            pip: true,
                            muted: true,
                            url: streamUrl
                        });
                    }

                    const liveItems = document.querySelectorAll('#pinned-matches-container .live-item');
                    const viewLink = document.getElementById('btn-view-link');

                    liveItems.forEach(item => {
                        item.addEventListener('click', () => {
                            const index = parseInt(item.getAttribute('data-index'));
                            liveItems.forEach(i => i.classList.remove('active'));
                            item.classList.add('active');

                            if (window.Player && window.HlsPlayer) {
                                new Player({
                                    plugins: [window.HlsPlayer],
                                    id: "mse",
                                    ignores: ["time", "progress"],
                                    autoplayMuted: true,
                                    autoplay: true,
                                    playsinline: true,
                                    isLive: true,
                                    fluid: true,
                                    pip: true,
                                    muted: true,
                                    url: anchors[index].streamUrl
                                });
                            }
                            if (viewLink) {
                                viewLink.href = '/truc-tiep/' + anchors[index].slug;
                            }
                        });
                    });
                }

                let hasLocalData = false;
                try {
                    const cached = localStorage.getItem(STORAGE_KEY);
                    if (cached) {
                        const parsed = JSON.parse(cached);
                        if (parsed && parsed.length > 0) {
                            renderMatches(parsed);
                            hasLocalData = true;
                        }
                    }
                } catch (e) {
                    console.error('Error parsing localStorage:', e);
                }

                if (!hasLocalData) {
                    heroSection.insertAdjacentHTML('afterend', skeletonHtml);
                }

                fetch('https://video-home.gvapi.cc/api/pinned-home?t=' + new Date().getTime())
                    .then(response => {
                        if (!response.ok) throw new Error('API Response not ok: ' + response.status);
                        return response.json();
                    })
                    .then(data => {
                        const matches = data.pinnedMatches;
                        if (!matches || matches.length < 1) {
                            localStorage.removeItem(STORAGE_KEY);
                            const existingContainer = document.getElementById('pinned-matches-container');
                            if (existingContainer) existingContainer.remove();
                            return;
                        }
                        localStorage.setItem(STORAGE_KEY, JSON.stringify(matches));
                        renderMatches(matches);
                    })
                    .catch(error => {
                        console.error('Error fetching API data:', error);
                        if (!hasLocalData) {
                            const existingContainer = document.getElementById('pinned-matches-container');
                            if (existingContainer) existingContainer.remove();
                        }
                    });
            });
        </script>

            <style>
        .aligncenter {
            margin: 0 auto;

        }

        .wp-caption {
            max-width: 100%;
        }

        footer .container {
            grid-template-columns: 1fr;
        }
    </style>
        <script>
        const mini = document.querySelector('.video-player.is-floating.floating-draggable');
        const margin = 8; // cách mép

        function clampFloatingVideo() {
            if (!mini) return;

            const rect = mini.getBoundingClientRect();

            let x = rect.left;
            let y = rect.top;

            const vw = window.innerWidth;
            const vh = window.innerHeight;

            const minX = margin;
            const minY = margin;           // nếu muốn chừa notch: + safeTop
            const maxX = vw - rect.width - margin;
            const maxY = vh - rect.height - margin;

            if (x < minX) x = minX;
            if (x > maxX) x = maxX;
            if (y < minY) y = minY;
            if (y > maxY) y = maxY;

            mini.style.left = x + 'px';
            mini.style.top = y + 'px';
        }

        // chạy lại mỗi khi viewport thay đổi
        window.addEventListener('scroll', clampFloatingVideo);
        window.addEventListener('resize', clampFloatingVideo);
        window.addEventListener('orientationchange', clampFloatingVideo);

        // iOS Safari thanh URL co giãn → nên dùng thêm:
        if (window.visualViewport) {
            visualViewport.addEventListener('resize', clampFloatingVideo);
            visualViewport.addEventListener('scroll', clampFloatingVideo);
        }
    </script>

    <script type="text/javascript" id="ez-toc-scroll-scriptjs-js-extra">
/* <![CDATA[ */
var eztoc_smooth_local = {"scroll_offset":"30","add_request_uri":"","add_self_reference_link":""};
/* ]]> */
</script>
<script type="text/javascript" src="https://cdn.cakhiatvxttbdh.tv/wp-content/plugins/easy-table-of-contents/assets/js/smooth_scroll.min.js?ver=2.0.74" id="ez-toc-scroll-scriptjs-js"></script>
<script type="text/javascript" src="https://cdn.cakhiatvxttbdh.tv/wp-content/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js?ver=2.2.1" id="ez-toc-js-cookie-js"></script>
<script type="text/javascript" src="https://cdn.cakhiatvxttbdh.tv/wp-content/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js?ver=1.9.2" id="ez-toc-jquery-sticky-kit-js"></script>
<script type="text/javascript" id="ez-toc-js-js-extra">
/* <![CDATA[ */
var ezTOC = {"smooth_scroll":"1","visibility_hide_by_default":"","scroll_offset":"30","fallbackIcon":"<span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span>","chamomile_theme_is_on":""};
/* ]]> */
</script>
<script type="text/javascript" src="https://cdn.cakhiatvxttbdh.tv/wp-content/plugins/easy-table-of-contents/assets/js/front.min.js?ver=2.0.74-1746443216" id="ez-toc-js-js"></script>
    <script>
        // === Catfish Banner Global: lấy từ API /api/catfish-banners (giống React CatfishBanners.jsx) ===
        (function () {
            var apiUrl = 'https://api.gvapi.cc/api/catfish-banners';
            fetch(apiUrl)
                .then(function (res) { return res.ok ? res.json() : null; })
                .then(function (data) {
                    if (!data || !data.success || !data.data || !data.data.length) return;

                    // === Video catfish overlay (nếu có trong trang watch) ===
                    var catfishLink = data.data[0].link_url || '';
                    if (catfishLink) {
                        var overlayTop = document.querySelector('.video-catfish-overlay-top');
                        var overlayBottom = document.querySelector('.video-catfish-overlay');
                        if (overlayTop) {
                            overlayTop.href = catfishLink;
                            overlayTop.style.display = 'block';
                        }
                        if (overlayBottom) {
                            overlayBottom.href = catfishLink;
                            overlayBottom.style.display = 'block';
                        }
                    }

                    // === Tạo container catfish-banner-global (fixed bottom, giống React) ===
                    var wrapper = document.createElement('div');
                    wrapper.className = 'catfish-banner-global';
                    wrapper.style.cssText = 'position:fixed;bottom:0;left:0;right:0;z-index:9999;display:flex;flex-direction:column;align-items:center;pointer-events:none;width:50%;margin:0 auto;';

                    // Nút đóng
                    var closeBtn = document.createElement('button');
                    closeBtn.className = 'catfish-banner-close';
                    closeBtn.innerHTML = '✕';
                    closeBtn.setAttribute('aria-label', 'Đóng quảng cáo');
                    closeBtn.style.cssText = 'position:absolute;top:-24px;right:4px;width:24px;height:24px;background:rgba(0,0,0,0.7);color:#fff;border:none;border-radius:50%;font-size:14px;line-height:24px;text-align:center;cursor:pointer;pointer-events:auto;z-index:10000;padding:0;';
                    closeBtn.addEventListener('click', function () { wrapper.remove(); });
                    wrapper.appendChild(closeBtn);

                    // Render banners
                    data.data.forEach(function (banner) {
                        var a = document.createElement('a');
                        a.className = 'catfish-banner-global-item';
                        a.href = banner.link_url || '#';
                        a.target = '_blank';
                        a.rel = 'nofollow noopener noreferrer';
                        a.style.cssText = 'display:block;width:100%;pointer-events:auto;line-height:0;cursor:pointer;';
                        var img = document.createElement('img');
                        img.src = banner.image_url;
                        img.alt = banner.name || 'Banner';
                        img.style.cssText = 'width:100%;height:auto;display:block;object-fit:contain;';
                        a.appendChild(img);
                        wrapper.appendChild(a);
                    });

                    document.body.appendChild(wrapper);

                    // Mobile: full width
                    var mq = window.matchMedia('(max-width: 768px)');
                    function applyMobile(e) { wrapper.style.width = e.matches ? '100%' : '50%'; }
                    applyMobile(mq);
                    mq.addListener(applyMobile);
                })
                .catch(function (e) { console.warn('Catfish banner load failed:', e); });
        })();
    </script>
    <script>
        // === FIX: Chặn smooth-scroll handlers can thiệp vào catfish overlay ===
        (function () {
            document.addEventListener('click', function (e) {
                var overlay = e.target.closest('.video-catfish-overlay, .video-catfish-overlay-top');
                if (!overlay) return;
                var href = overlay.getAttribute('href');
                if (href && href !== '#' && !href.startsWith('#')) {
                    e.stopImmediatePropagation();
                }
            }, true);
        })();
    </script>
        <script>
    document.addEventListener('DOMContentLoaded', function () {

        function updateLinks() {
            document.querySelectorAll('.home-banner-slide').forEach(function(el) {
                el.href = 'https://refvsbb.com/';
                el.target = '_blank';
            });
        }

        // Banner hiện có
        updateLinks();

        // Banner render sau bằng JS/API
        new MutationObserver(updateLinks).observe(document.body, {
            childList: true,
            subtree: true
        });

    });
    </script>
    </html>


<!-- | cakhiatvxttbdh.tv | 2026-09-11 15:15:26 -->