PageSourceSearch

https://whaletv.com/

html whaletv.com collected 2026-09-24 09:42:55 UTC 34,657 bytes, 258 lines download raw bytes

1<!DOCTYPE html><!-- Last Published: Thu Sep 10 2026 07:58:28 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="wf.whaletv.com" data-wf-page="6666d37a275951ae96644f51" data-wf-site="6666d37a275951ae96644f4b" lang="en"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>Whale TV | Home</title><link rel="alternate" hrefLang="x-default" href="https://www.whaletv.com/"/><link rel="alternate" hrefLang="en" href="https://www.whaletv.com/"/><link rel="alternate" hrefLang="zh" href="https://www.whaletv.com/zh"/><link rel="alternate" hrefLang="de" href="https://www.whaletv.com/de"/><link rel="alternate" hrefLang="pt-BR" href="https://www.whaletv.com/pt-br"/><link rel="alternate" hrefLang="es" href="https://www.whaletv.com/es"/><meta content="Better TV for everyone. Broadcast TV, streaming apps and your connected devices. Smart, incredibly simple to use and all in one place." name="description"/><meta content="Whale TV | Home" property="og:title"/><meta content="Better TV for everyone. Broadcast TV, streaming apps and your connected devices. Smart, incredibly simple to use and all in one place." property="og:description"/><meta content="Whale TV | Home" name="twitter:title"/><meta content="Better TV for everyone. Broadcast TV, streaming apps and your connected devices. Smart, incredibly simple to use and all in one place." name="twitter:description"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><meta content="mHgTFaOcR8Ojd0ioHdVA40m8EgW2dksH4iFhMNT3TxE" name="google-site-verification"/><link href="https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/css/whale-tv-2024-staging.shared.4dc59c41d.min.css" rel="stylesheet" type="text/css" integrity="sha384-TcWcQdyFyrnqalUf21sZj4YkkY6dsplLdfyBvsxn+jdPzxmfY5bjVys3SLptbm9p" crossorigin="anonymous"/>
1<script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script>
1<link href="https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/66d03deb03f5275d830eaf7e_Whale%20TV%20Favicon.png" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/66d03def2a2cb3524574e5d4_Whale%20TV%20Webclip.png" rel="apple-touch-icon"/><link href="https://www.whaletv.com/" rel="canonical"/><!-- OneTrust Cookies Consent Notice start for whaletv.com -->
2<script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js"  type="text/javascript" charset="UTF-8" data-domain-script="01993d18-2b78-7ee7-9e6a-165c2d7fd237" ></script>
vendor: 1 bytes, line 2
2
3<script type="text/javascript">
4function OptanonWrapper() { }
5</script>
5
6<!-- OneTrust Cookies Consent Notice end for whaletv.com -->
7
8<style>
9  .line-1.open {
10        transform: translateY(6px) translateX(0) rotate(45deg);
11        -webkit-transform: translateY(6px) translateX(0) rotate(45deg);
12        -moz-transform: translateY(6px) translateX(0) rotate(45deg);
13      }
14      .line-2.open {
15       	transform: scaleX(0);
16        -webkit-transform: scaleX(0);
17        -moz-transform: scaleX(0);
18      }
19      .line-3.open {
20        transform: translateY(-6px) translateX(0) rotate(-45deg);
21        -webkit-transform: translateY(-6px) translateX(0) rotate(-45deg);
22        -moz-transform: translateY(-6px) translateX(0) rotate(-45deg);
23      }
24</style>
25
26<meta name="google-site-verification" content="b1zE8PgWU4LocSApAOhg5hhBV6nW24z9uGc7n9Rr688" />
27
28<!-- Matomo -->
29<script>
30  var _paq = window._paq = window._paq || [];
31  /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
32  _paq.push(["disableCookies"]);
33  _paq.push(['trackPageView']);
34  _paq.push(['enableLinkTracking']);
35  (function() {
36    var u="//matomo.whaletv.com/";
37    _paq.push(['setTrackerUrl', u+'matomo.php']);
38    _paq.push(['setSiteId', '2']);
39    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
40    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
41  })();
42</script>
42
43<!-- End Matomo Code -->
44
45<link rel="stylesheet" href="https://unpkg.com/swiper/swiper-bundle.min.css" />
45<script src="https://cdn.prod.website-files.com/6666d37a275951ae96644f4b%2F66ba5a08efe71070f98dd10a%2F695fad3a6960d470d58358f3%2Fk3dq6274-1.1.1.js" type="text/javascript"></script>
45</head><body class="body"><div data-animation="default" data-collapse="medium" data-duration="400" data-easing="ease-out-quad" data-easing2="ease-in-cubic" role="banner" class="navbar w-nav"><div class="navbar-container w-container"><div id="w-node-_216d007a-540a-78ea-4977-45b09b9d0638-452c60b8" class="navbar-grid-wrapper"><a id="w-node-_1febcca7-7e4e-3637-c7a1-46124138af6c-452c60b8" href="/?r=0" aria-current="page" class="w-inline-block w--current"><img loading="lazy" src="https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/66c44eedc8a8596bbf701a63_whaletv_logo_white_RGB.svg" alt="Whale TV Brand Logo" class="navbar-brand-logo"/></a><nav role="navigation" id="w-node-_216d007a-540a-78ea-4977-45b09b9d063a-452c60b8" class="nav-menu-wrapper w-nav-menu"><nav id="w-node-_216d007a-540a-78ea-4977-45b09b9d063b-452c60b8" class="nav-center"><a href="/?r=0" aria-current="page" class="nav-bar-item w-nav-link w--current">Home</a><a href="/whale-tv" class="nav-bar-item w-nav-link">Whale TV</a><a href="/plus" class="nav-bar-item w-nav-link">Whale TV+</a><div class="dropdown-wrapper"><div data-hover="true" data-delay="0" class="dropdown w-dropdown"><div class="nav-bar-item dropdown w-dropdown-toggle"><div>Other Products</div><div class="icon w-icon-dropdown-toggle"></div></div><nav class="dropdown-list w-dropdown-list"><a href="/g-engine" class="dropdown-link navbar-dropdown w-dropdown-link">G-Engine</a><a href="/whale-framely" class="dropdown-link navbar-dropdown w-dropdown-link">Whale Framely</a></nav></div></div><a href="/news" class="nav-bar-item w-nav-link">News</a><a href="/about-us" class="nav-bar-item w-nav-link">About Us</a></nav></nav><nav role="navigation" id="w-node-_216d007a-540a-78ea-4977-45b09b9d0646-452c60b8" class="nav-menu-wrapper last w-nav-menu"><nav id="w-node-_216d007a-540a-78ea-4977-45b09b9d0647-452c60b8" class="nav-right"><a href="/for-business" class="button small light navbar-cta w-nav-link">For Business</a></nav></nav><div id="w-node-_216d007a-540a-78ea-4977-45b09b9d064a-452c60b8" data-w-id="216d007a-540a-78ea-4977-45b09b9d064a" class="navbar-mobile-menu-button w-nav-button"><div class="mobile-menu-icon"><span class="line line-1"></span><span class="line line-2"></span><span class="line line-3"></span></div></div></div></div></div><section class="hero-section home"><div class="w-layout-blockcontainer container hero w-container"><div data-w-id="f3b2bd61-2a5a-cc13-39e1-a2a119c4bdc4" style="opacity:0" class="home-hero-div"><div data-w-id="166af191-b823-f02b-e038-d19a505df0a5" style="opacity:0" class="home-hero-slogan">Better TV for everyone.</div><h1 data-w-id="31f03f24-e452-7bb4-1df6-9bb2981ddb27" style="opacity:0" class="h1-home-hero">Broadcast TV, streaming apps and your connected devices. All in one place.</h1><div data-w-id="c2d8f8fc-61c8-fa4a-6364-7f11f922ff41" style="opacity:0" class="home-hero-cta-wrapper"><a href="#section-1" class="button cta light w-button">Learn More</a></div></div></div><div class="hero-background"><div class="hero-image-overlay home"></div><img src="https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/695f5f70553db8edb42ddf4f_7d53004d6370ef0c8e2d86463205d775_family-tv_1200x800_Q1-26.jpg" loading="lazy" sizes="(max-width: 2160px) 100vw, 2160px" srcset="https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/695f5f70553db8edb42ddf4f_7d53004d6370ef0c8e2d86463205d775_family-tv_1200x800_Q1-26-p-500.jpg 500w, https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/695f5f70553db8edb42ddf4f_7d53004d6370ef0c8e2d86463205d775_family-tv_1200x800_Q1-26-p-800.jpg 800w, https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/695f5f70553db8edb42ddf4f_7d53004d6370ef0c8e2d86463205d775_family-tv_1200x800_Q1-26-p-1080.jpg 1080w, https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/695f5f70553db8edb42ddf4f_7d53004d6370ef0c8e2d86463205d775_family-tv_1200x800_Q1-26-p-1600.jpg 1600w, https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/695f5f70553db8edb42ddf4f_7d53004d6370ef0c8e2d86463205d775_family-tv_1200x800_Q1-26.jpg 2160w" alt="" class="hero-image"/></div></section><section id="section-1" class="content-section home"><div class="w-layout-blockcontainer container section w-container"><div class="content-section-group"><div id="w-node-c8f4173d-3fb6-67c5-0bbe-0a3e1ed707fc-96644f51" class="content-section-block"><img src="https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/66c45f369855d914ef6c3ba7_whaletv_logo_grey_RGB.svg" loading="lazy" alt="Whale TV Brand Logo" class="whale-tv-logo-home-section"/>
45<h2 class="h2-home-product-feature">Smart and incredibly simple to use, this TV was engineered to entertain and amaze you!</h2><a href="/whale-tv" class="button cta w-button">Learn More About Whale TV</a></div><div id="w-node-_219c1ebe-20de-bd95-cef0-03f8b89dc4ec-96644f51" class="tv-mockup"><img src="https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/695e4bedb0b9768d21ecb5ea_WhaleOS10.3_Homepage_2026Q1-2_GLOBAL_V1.jpg" loading="lazy" width="Auto" sizes="(max-width: 767px) 100vw, (max-width: 991px) 728px, 940px" alt="" srcset="https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/695e4bedb0b9768d21ecb5ea_WhaleOS10.3_Homepage_2026Q1-2_GLOBAL_V1-p-500.jpg 500w, https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/695e4bedb0b9768d21ecb5ea_WhaleOS10.3_Homepage_2026Q1-2_GLOBAL_V1-p-800.jpg 800w, https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/695e4bedb0b9768d21ecb5ea_WhaleOS10.3_Homepage_2026Q1-2_GLOBAL_V1-p-1080.jpg 1080w, https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/695e4bedb0b9768d21ecb5ea_WhaleOS10.3_Homepage_2026Q1-2_GLOBAL_V1-p-1600.jpg 1600w, https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/695e4bedb0b9768d21ecb5ea_WhaleOS10.3_Homepage_2026Q1-2_GLOBAL_V1.jpg 1920w" class="tv-image"/><img src="https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/66c4b0cf78c8945173114c6f_background-pattern-whaletv.svg" loading="lazy" width="Auto" alt="" class="background-pattern"/></div></div></div></section><section class="content-section alt-background-pattern"><div class="w-layout-blockcontainer container section w-container"><div class="content-section-group"><div id="w-node-f77c2f9a-5393-8632-dca4-975e33f02c8f-96644f51" class="tv-mockup"><img src="https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/6a0c062785bfe3891abdcfe8_WhaleTV%2B_Bigscreen_LivePlayer.png" loading="lazy" width="Auto" sizes="(max-width: 767px) 100vw, (max-width: 991px) 728px, 940px" alt="" srcset="https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/6a0c062785bfe3891abdcfe8_WhaleTV%2B_Bigscreen_LivePlayer-p-500.png 500w, https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/6a0c062785bfe3891abdcfe8_WhaleTV%2B_Bigscreen_LivePlayer-p-800.png 800w, https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/6a0c062785bfe3891abdcfe8_WhaleTV%2B_Bigscreen_LivePlayer-p-1080.png 1080w, https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/6a0c062785bfe3891abdcfe8_WhaleTV%2B_Bigscreen_LivePlayer-p-1600.png 1600w, https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/6a0c062785bfe3891abdcfe8_WhaleTV%2B_Bigscreen_LivePlayer.png 1920w" class="tv-image"/></div><div id="w-node-_868d7cb8-2550-5328-7941-007bc82dbb10-96644f51" class="content-section-block"><img src="https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/66c5e8f0c914b64eac4dd6a1_whaletv%2B_logo_whitepink_RGB.svg" loading="lazy" alt="Whale TV+ Brand Logo" class="whale-tv-logo-home-section"/><h2 class="h2-home-product-feature">Stream thousands of hours of free TV, both live and on demand</h2><a href="/plus" class="button cta w-button">Learn More About Whale TV+</a></div></div></div></section><section class="content-section"><div data-w-id="6c88ae8c-0bd7-b9c9-6d48-84d40fdfe1d9" style="opacity:0" class="w-layout-blockcontainer container centered-content w-container"><h2 class="h2-section-header">A selection of our 400+ TV partners</h2><div data-w-id="bdd550e6-3d9a-e16f-1927-9559567fcfef" style="opacity:0" class="slider-wrapper-wrapper"><aside class="slider-overlay"></aside><div class="slider-wrapper partner-logos for-business w-dyn-list"><div role="list" class="slider-list w-dyn-items"><div role="listitem" class="slider-item brand-logo-image-background w-dyn-item"><img src="https://cdn.prod.website-files.com/6672dfb3875e810a86b64e89/66dd9f1ca9ac9cec6971d23c_philips.png" loading="lazy" alt="" class="collection-item brand-logo-image slider"/></div><div role="listitem" class="slider-item brand-logo-image-background w-dyn-item"><img src="https://cdn.prod.website-files.com/6672dfb3875e810a86b64e89/66dd9f24da3370f88766e874_telefunke
45n.png" loading="lazy" alt="" class="collection-item brand-logo-image slider"/></div><div role="listitem" class="slider-item brand-logo-image-background w-dyn-item"><img src="https://cdn.prod.website-files.com/6672dfb3875e810a86b64e89/698dad7f9913654afcd32202_Onvo_Logo.png" loading="lazy" alt="" class="collection-item brand-logo-image slider"/></div><div role="listitem" class="slider-item brand-logo-image-background w-dyn-item"><img src="https://cdn.prod.website-files.com/6672dfb3875e810a86b64e89/66dd9f2a8b7957d393538524_jvc.png" loading="lazy" alt="" class="collection-item brand-logo-image slider"/></div><div role="listitem" class="slider-item brand-logo-image-background w-dyn-item"><img src="https://cdn.prod.website-files.com/6672dfb3875e810a86b64e89/66dd9f2f0df625ac2db12e4e_rca.png" loading="lazy" alt="" class="collection-item brand-logo-image slider"/></div><div role="listitem" class="slider-item brand-logo-image-background w-dyn-item"><img src="https://cdn.prod.website-files.com/6672dfb3875e810a86b64e89/698ddc3f93a76dcc474cf6cf_Blaupunkt_Logo.png" loading="lazy" alt="" class="collection-item brand-logo-image slider"/></div><div role="listitem" class="slider-item brand-logo-image-background w-dyn-item"><img src="https://cdn.prod.website-files.com/6672dfb3875e810a86b64e89/66dd9f46e396191369a6e0ab_aiwa.png" loading="lazy" alt="" class="collection-item brand-logo-image slider"/></div><div role="listitem" class="slider-item brand-logo-image-background w-dyn-item"><img src="https://cdn.prod.website-files.com/6672dfb3875e810a86b64e89/66dd9f40fffe70f35c59e771_magnavox.png" loading="lazy" alt="" class="collection-item brand-logo-image slider"/></div><div role="listitem" class="slider-item brand-logo-image-background w-dyn-item"><img src="https://cdn.prod.website-files.com/6672dfb3875e810a86b64e89/66d99e2f3d5e28500c8fccf6_westinghouse.png" loading="lazy" alt="" class="collection-item brand-logo-image slider"/></div><div role="listitem" class="slider-item brand-logo-image-background w-dyn-item"><img src="https://cdn.prod.website-files.com/6672dfb3875e810a86b64e89/66d99e60f4fddbf3c1abefda_premier.png" loading="lazy" alt="" class="collection-item brand-logo-image slider"/></div><div role="listitem" class="slider-item brand-logo-image-background w-dyn-item"><img src="https://cdn.prod.website-files.com/6672dfb3875e810a86b64e89/698ddb1f815d643b4360c1e1_Akai_logo.png" loading="lazy" alt="" class="collection-item brand-logo-image slider"/></div><div role="listitem" class="slider-item brand-logo-image-background w-dyn-item"><img src="https://cdn.prod.website-files.com/6672dfb3875e810a86b64e89/66d99e6ff197e2e20e597b81_dixon.png" loading="lazy" alt="" class="collection-item brand-logo-image slider"/></div><div role="listitem" class="slider-item brand-logo-image-background w-dyn-item"><img src="https://cdn.prod.website-files.com/6672dfb3875e810a86b64e89/6870d984df61107e6278cfca_impex_logo.png" loading="lazy" alt="" class="collection-item brand-logo-image slider"/></div><div role="listitem" class="slider-item brand-logo-image-background w-dyn-item"><img src="https://cdn.prod.website-files.com/6672dfb3875e810a86b64e89/698dacfbf9711c4f6777c2da_EFL_logo.png" loading="lazy" alt="" class="collection-item brand-logo-image slider"/></div><div role="listitem" class="slider-item brand-logo-image-background w-dyn-item"><img src="https://cdn.prod.website-files.com/6672dfb3875e810a86b64e89/698ddace82ad4ea73e5f59ac_Kodak_logo.png" loading="lazy" alt="" class="collection-item brand-logo-image slider"/></div><div role="listitem" class="slider-item brand-logo-image-background w-dyn-item"><img src="https://cdn.prod.website-files.com/6672dfb3875e810a86b64e89/698ddbf803a645d042668ecf_Schneider_logo.png" loading="lazy" alt="" class="collection-item brand-logo-image slider"/></div></div></div></div></div></section><section class="content-section alt-background"><div data-w-id="3ba1440f-779c-b15c-fce2-02e9e23d4c44" style="opacity:0" class="w-layout-blockcontainer container news w-container"><h2 class="h2-section-header">Latest News</h2><div class="news-collection w-dyn-list"><div role="list" class="news-collection-list w-dyn-items"><div role="listitem" class="news-collection-item w-dyn-item"><a href="/news/spotify" class="news-collection-item-link-block w-inline-block"><img src="https://cdn.prod.website-files.com/6672dfb3875e810a86b64e89/6a97f4f8213430967015d063_Spotify_PR_Thumbnail.jpg" loading="lazy" alt="" class="news-thumbnail-image"/><div class="news-card-excerpt-block"><h3 class="news-card-date">September 22, 2026</h3><h4 class="news-card-title">Whale TV Brings Spotify App to Millions of Smart TVs Worldwide</h4><div class="news-excerpt-buttons"><p class="button small">Read More</p></div></div></a></div><div role="listitem" class="news-collection-item w-dyn-item"><a href="/news/teads" class="news-collection-item-link-block w-inline-block"><img src="https://cdn.prod.website-files.com/6672dfb3875e810a86b64e89/6aa2ab47775769a2eb347128_FlareFlow_PR_Thumbnail.png" loading="lazy" alt="" class="news-thumbnail-image"/><div class="news-card-excerpt-block"><h3 class="news-card-date">September 10, 2026</h3><h4 class="news-card-title">Teads Expands Global CTV Offering with Whale TV Partnership</h4><div class="news-excerpt-buttons"><p class="button small">Read More</p></div></div></a></div><div role="listitem" class="news-collection-item w-dyn-item"><a href="/news/flareflow-launches-on-whale-tv-bringing-micro-dramas-to-the-big-screen-in-south-america-for-the-first-time" class="news-collection-item-link-block w-inline-block"><img src="https://cdn.prod.website-files.com/6672dfb3875e810a86b64e89/6a9fd6894b02ff904748a2e4_FlareFlow_PR_Thumbnail.jpg" loading="lazy" alt="" class="news-thumbnail-image"/><div class="news-card-excerpt-block"><h3 class="news-card-date">September 9, 2026</h3><h4 class="news-card-title">FlareFlow Launches on Whale TV, Bringing Microdramas to TV Screens in South America for the First Time</h4><div class="news-excerpt-buttons"><p class="button small">Read More</p></div></div></a></div></div></div><div class="news-categories"><a href="/all-news" class="button cta w-button">All News</a><div class="news-category-collection-wrapper w-dyn-list"><div role="list" class="news-category-collection-list w-dyn-items"><div role="listitem" class="news-category-collection-item w-dyn-item"><a href="/news-category/blog" class="news-category-wrapper w-inline-block"><div class="button cta">Blog</div></a></div></div></div></div></div></section><section id="newsletter" class="section newsletter"><div data-w-id="7861577e-da8e-e2c0-3161-3b08d80efd42" style="opacity:0" class="w-layout-blockcontainer container newsletter w-container"><div class="div newsletter"><h2 class="newsletter-sign-up-h2">Want to know more?</h2><h3 class="newsletter-sign-up-h3">Stay up to date by subscribing to our newsletter!</h3></div><div class="form newsletter w-form"><form method="get" fs-formsubmit-element="form" name="wf-form-" data-name="" action="https://n8n.whaletv.com/webhook/b21de697-de06-441e-8cdc-12d0e392136c" id="wf-form-" fs-formsubmit-enhance="true" class="form" data-wf-page-id="6666d37a275951ae96644f51" data-wf-element-id="65564014-685d-694b-aa5b-785c96c71b5e"><input class="form-field w-input" maxlength="256" name="E-Mail" data-name="E Mail" placeholder="Enter your Email address" type="email" id="E-Mail" required=""/><input type="submit" data-wait="Please wait..." class="button cta light w-button" value="Sign Up"/></form><div class="form-success w-form-done"><div>Thank you for signing up! Please check your inbox to verify your email. If you don&#x27;t see it, please check your spam or junk folder.</div></div><div class="w-form-fail"><div>Oops! Something went wrong, please try again later.</div></div></div></div></section><footer class="section footer"><div class="w-layout-blockcontainer container footer w-container"><div class="w-layout-grid footer-flex"><div id="w-node-_3d5cd192-1642-285b-a3f7-d0a0f29de1b6-f29de1ac" class="footer-cell"><div class="locales-wrapper w-locales-list"><div data-hover="false" data-delay="0" data-w-id="568cbf70-5b37-6e6d-9296-b248297e7002" class="language-dropdown w-dropdown"><div class="language-switcher-dropdown-toggle w-dropdown-toggle"><div class="globe-icon-wrapper"><img src="https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/69149e89403d4cb0064e4296_dade380262bdd7e10c94bbaa787bdf82_language.svg" loading="lazy" alt="" class="image-6"/></div><div class="language-dropdown-button-label">English</div><div data-w-id="568cbf70-5b37-6e6d-9296-b248297e7004" class="language-dropdown-arrow w-icon-dropdown-toggle"></div></div><nav data-w-id="568cbf70-5b37-6e6d-9296-b248297e7007" class="language-dropdown-list w-dropdown-list"><div role="list" class="w-locales-items"><div role="listitem" class="w-locales-item"><a hreflang="en" href="/?r=0" aria-current="page" class="locale-link-row w-inline-block w--current"><div class="checkmark-wrapper"><div class="checkmark">✓</div></div><div class="locale-link language-switcher">English</div></a></div><div role="listitem" class="w-locales-item"><a hreflang="zh" href="/zh" class="locale-link-row w-inline-block"><div class="checkmark-wrapper"></div><div class="locale-link language-switcher">中文</div></a></div><div role="listitem" class="w-locales-item"><a hreflang="de" href="/de" class="locale-link-row w-inline-block"><div class="checkmark-wrapper"></div><div class="locale-link language-switcher">
45Deutsch</div></a></div><div role="listitem" class="w-locales-item"><a hreflang="pt-BR" href="/pt-br" class="locale-link-row w-inline-block"><div class="checkmark-wrapper"></div><div class="locale-link language-switcher">Português</div></a></div><div role="listitem" class="w-locales-item"><a hreflang="es" href="/es" class="locale-link-row w-inline-block"><div class="checkmark-wrapper"></div><div class="locale-link language-switcher">Español</div></a></div></div></nav></div></div><img src="https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/66c46126fb5cbcdb3a67473b_whaletv_logo_pink_RGB.svg" loading="lazy" id="w-node-_23e2ae37-f2b4-395e-6feb-2ff965661bbf-f29de1ac" alt="Whale TV Brand Logo" class="footer-logo"/></div><div class="footer-cell"><h6 class="heading-6-footer">Products</h6><a href="/whale-tv" class="nav-link footer">Whale TV</a><a href="/plus" class="nav-link footer">Whale TV+</a><a href="/g-engine" class="nav-link footer">G-Engine</a><a href="/whale-framely" class="nav-link footer">Whale Framely</a></div><div class="footer-cell"><h6 class="heading-6-footer">Developers</h6><a href="https://developer.whaletv.com/" class="nav-link footer">Developer Portal</a></div><div class="footer-cell"><h6 class="heading-6-footer">About Us</h6><a href="/about-us" class="nav-link footer">Who We Are</a><a href="/careers" class="nav-link footer">Careers</a><a href="/news" class="nav-link footer">News</a><a href="/news#press-room" class="nav-link footer">Press Room</a></div><div class="footer-cell"><h6 class="heading-6-footer">Legal</h6><a href="/privacy-policy" class="nav-link footer">Privacy Policy</a><a href="/terms-of-use" class="nav-link footer">Terms of Use</a><a href="https://beian.miit.gov.cn/" target="_blank" class="nav-link footer">京ICP备11012483号-9</a><a href="/coordinated-vulnerability-disclosure-policy" class="nav-link footer">CVD Policy</a></div><div class="footer-cell"><h6 class="heading-6-footer">Contact</h6><a href="mailto:[email protected]" class="nav-link footer">Support</a><a href="mailto:[email protected]" class="nav-link footer">Press Inquiries</a><a href="/for-business" class="nav-link footer">Partner With Us</a><a href="/security-reporting" class="nav-link footer">Security Reporting</a><div class="socials"><a href="https://www.linkedin.com/company/whaletv/" target="_blank" class="nav-link social w-inline-block"><img src="https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/66c7affa9dec0055debbe428_linkedin-in.svg" loading="lazy" alt="" class="socials-logo"/></a></div></div></div></div></footer>
45<script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=6666d37a275951ae96644f4b" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
45<script src="https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/js/whale-tv-2024-staging.schunk.f2efb3c5440a81cf.js" type="text/javascript" integrity="sha384-VK02VJvMib7ytrF5M2joPWNtDQs366FZgEQ5B+Iwnjx0WBnwQXfootyziSYxdrmS" crossorigin="anonymous"></script>
45<script src="https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/js/whale-tv-2024-staging.schunk.4847666aefa94cb3.js" type="text/javascript" integrity="sha384-YTFcj8Ing9v2X6gtcZ9O0URS2ZR16xgRwpHOdSMQ08xbA+CEZ0TPyHCUplOQX9Vs" crossorigin="anonymous"></script>
45<script src="https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/js/whale-tv-2024-staging.schunk.dac51c455b7e76af.js" type="text/javascript" integrity="sha384-ZQ6U9fIU+7NO4yp5YptTIwCSqp+zvOO+9sjFM6NR3D4Ma7CCSf/lR7Ilthe4YRiw" crossorigin="anonymous"></script>
45<script src="https://cdn.prod.website-files.com/6666d37a275951ae96644f4b/js/whale-tv-2024-staging.33ebecfc.633f4b7290e80c24.js" type="text/javascript" integrity="sha384-20TxEbvHOvuPFvLtkBh/8Exl1/bdY0CkYT+2Ahe6FGyI9qqT2O90nYlI2tA9h1E4" crossorigin="anonymous"></script>
45<script>
46document.addEventListener('DOMContentLoaded', () => {
47 document.querySelectorAll('.navbar-mobile-menu-button').forEach(trigger => {
48  trigger.addEventListener('click', function(){ 
49    this.x = ((this.x || 0) + 1)%2; 
50    if(this.x){
51      document.querySelectorAll('.line').forEach(target => target.classList.add('open'));
52      }
53      else{
54      document.querySelectorAll('.line').forEach(target => target.classList.remove('open'));
55      } 
56    });
57 });
58});
59</script>
vendor: 68 bytes, lines 59-61
59
60
61<script async="" src="https://www.googletagmanager.com/gtag/js?id=
61G-ZC9BHCP1QG
vendor: 65 bytes, lines 61-62
61" fs-consent-categories="analytics" type="fs-consent"></script>
62
63<script fs-consent-categories="analytics" type="fs-consent">
64  
vendor: 134 bytes, lines 64-68
64window.dataLayer = window.dataLayer || [];
65  function gtag(){dataLayer.push(arguments);}
66  gtag('js', new Date());
67
68  gtag('config', '
68G-ZC9BHCP1QG
vendor: 4 bytes, line 68
68');
69</script>
69
70
71
72<script>
73const supportedLocales = ["en", "de", "zh", "es", "pt-br"];
74const defaultLocale = "en"; // Primary locale used without a path prefix (no /en/ prefix in URL)
75
76// --- Utility Functions ---
77
78/**
79 * Detects the current locale from the URL path.
80 * Returns the detected prefix or the defaultLocale ('en') if no prefix is found.
81 */
82function getCurrentLocale() {
83  const path = window.location.pathname.toLowerCase();
84  
85  // Reliably matches a prefix like /de/, /zh/, /pt-br/ at the start of the path
86  const match = path.match(/^\/([a-z]{2,5}(?:-[a-z]{2,5})?)(?:$|\/)/);
87  
88  const matchedLocale = match ? match[1] : null;
89
90  // If a supported locale is matched, return it.
91  if (matchedLocale && supportedLocales.includes(matchedLocale)) {
92    return matchedLocale;
93  }
94  // Otherwise, if no prefix is found, the current page is considered the default locale.
95  return defaultLocale;
96}
97
98/**
99 * Replaces the existing locale prefix in the path with a new one.
100 * If the newLocale is the default, the path is stripped of any prefix.
101 */
102function replaceLocaleInPath(newLocale) {
103  const url = new URL(window.location.href);
104  let path = url.pathname;
105  const currentLocale = getCurrentLocale();
106  
107  // 1. Remove existing locale prefix (only if it was detected and is not the default 'en' which has no prefix)
108  if (currentLocale !== defaultLocale) {
109    const currentLocaleEscaped = currentLocale.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
110    
111    // Strips the prefix and leaves the subpath (e.g., /plus)
112    path = path.replace(new RegExp(`^/${currentLocaleEscaped}`), "") || "/";
113  }
114
115  // 2. Prepend new locale (Conditional)
116  if (newLocale !== defaultLocale) {
117    // ONLY prepend the prefix if the new locale is NOT the default
118    path = `/${newLocale}${path.startsWith('/') ? path : '/' + path}`;
119    path = path.replace(/\/\/+/g, '/'); // Clean up any double slashes
120  }
121  // If newLocale IS the default ('en'), 'path' remains the stripped subpath (e.g., /plus or /)
122
123  return path + url.search + url.hash;
124}
125
126// --- Event Handlers ---
127
128document.addEventListener("click", function (e) {
129  const link = e.target.closest("a[hreflang]");
130  if (!link) return;
131
132  // Normalize locale to lowercase
133  const selectedLocale = link.getAttribute("hreflang").toLowerCase(); 
134  
135  if (!supportedLocales.includes(selectedLocale)) return;
136
137  // Save the user's explicit choice
138  localStorage.setItem("preferredLocale", selectedLocale);
139
140  e.preventDefault();
141  window.location.href = replaceLocaleInPath(selectedLocale);
142});
143
144document.addEventListener("DOMContentLoaded", function () {
145  const savedLocale = localStorage.getItem("preferredLocale");
146  const currentLocale = getCurrentLocale();
147  
148  let targetLocale = null;
149
150  // --- 1. Determine Target Locale ---
151  
152  // A. Priority 1: Saved Preference Check
153  if (savedLocale && supportedLocales.includes(savedLocale)) {
154    targetLocale = savedLocale;
155  } 
156  // B. Priority 2: Browser Language Check (Only if no saved preference AND current URL is the default)
157  else if (currentLocale === defaultLocale && !savedLocale) {
158    const browserLang = navigator.language.toLowerCase();
159    const primaryBrowserLang = browserLang.split('-')[0];
160    
161    // Check for full locale match (e.g., "pt-br")
162    if (supportedLocales.includes(browserLang)) {
163        targetLocale = browserLang;
164    } 
165    // Check for primary code match (e.g., "de")
166    else if (supportedLocales.includes(primaryBrowserLang)) {
167        targetLocale = primaryBrowserLang;
168    }
169    
170    // If a supported language is found, save it for future visits
171    if (targetLocale && targetLocale !== defaultLocale) {
172      localStorage.setItem("preferredLocale", targetLocale);
173    }
174  }
175
176  // --- 2. Execute Redirect ---
177  
178  // If a target locale was found and it conflicts with the current URL locale, redirect.
179  if (targetLocale && targetLocale !== currentLocale) {
180    window.location.href = replaceLocaleInPath(targetLocale);
181  }
182});
183</script>
183<!-- [Attributes by Finsweet] Form Submit Actions -->
184<script defer src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-formsubmit@1/formsubmit.js"></script>
184
185
186<!-- Slider -->
187<script src="https://unpkg.com/swiper/swiper-bundle.min.js"></script>
vendor: 1 bytes, line 187
187
188<script src="https://weblocks.io/library.js"></script>
vendor: 1 bytes, line 188
188
189<script>
190$(document).ready(function () {
191      var slider_wrapper = new Swiper(".slider-wrapper", {
192          wrapperClass: "slider-list",
193      slideClass: "slider-item",
194      navigation: {
195        nextEl: '.next-slide',
196        prevEl: '.prev-slide'
197      },
198      pagination: {
199          type: 'bullets',
200    el: '.pagination',
201    clickable: true,
202
203      },
204  autoplay: {
205          delay: 2000,
206    disableOnInteraction: false,
207
208      },
209  speed: 700,
210  slidesPerView: 'auto',
211  initialSlide: 5,
212  loop: true,
213
214        on: {
215          init: function () {
216              var swiper_pagination_bulletwe_style = document.createElement('style'); swiper_pagination_bulletwe_style.type = 'text/css'; swiper_pagination_bulletwe_style.innerHTML =
217      ` .swiper-pagination-bullet{   background:#fff;
218    margin-right:8px;
219    transition:.2s;
220   } `;
221      document.getElementsByTagName('head')[0].appendChild(swiper_pagination_bulletwe_style);var swiper_pagination_bullethoverwe_style = document.createElement('style'); swiper_pagination_bullethoverwe_style.type = 'text/css'; swiper_pagination_bullethoverwe_style.innerHTML =
222      ` .swiper-pagination-bullet:hover{   opacity:.7;
223   } `;
224      document.getElementsByTagName('head')[0].appendChild(swiper_pagination_bullethoverwe_style);var swiper_pagination_bullet_activehoverwe_style = document.createElement('style'); swiper_pagination_bullet_activehoverwe_style.type = 'text/css'; swiper_pagination_bullet_activehoverwe_style.innerHTML =
225      ` .swiper-pagination-bullet-active:hover{   opacity:1;
226   } `;
227      document.getElementsByTagName('head')[0].appendChild(swiper_pagination_bullet_activehoverwe_style);var swiper_pagination_fractionwe_style = document.createElement('style'); swiper_pagination_fractionwe_style.type = 'text/css'; swiper_pagination_fractionwe_style.innerHTML =
228      ` .swiper-pagination-fraction{   font-size:16px;
229   } `;
230      document.getElementsByTagName('head')[0].appendChild(swiper_pagination_fractionwe_style);var slide_imagewe_style = document.createElement('style'); slide_imagewe_style.type = 'text/css'; slide_imagewe_style.innerHTML =
231      ` .slide-image{   transition:transform .2s;
232   } `;
233      document.getElementsByTagName('head')[0].appendChild(slide_imagewe_style);var slide_contentwe_style = document.createElement('style'); slide_contentwe_style.type = 'text/css'; slide_contentwe_style.innerHTML =
234      ` .slide-content{   transition:opacity .2s;
235   } `;
236      document.getElementsByTagName('head')[0].appendChild(slide_contentwe_style);$('.slider-item').on('mouseover',function() {
237    $(this).find('.slide-image').css({
238      'transform':'scale(1.1)',
239    });
240    $(this).find('.slide-content').css({
241      'opacity':'.8',
242    });
243  });
244  $('.slider-item').on('mouseout',function() {
245    $(this).find('.slide-image').css({
246      'transform':'scale(1)',
247    });
248    $(this).find('.slide-content').css({
249      'opacity':'1',
250    });
251  });
252
253          },
254        },
255      });
256    });
257</script>
257
258</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.