American Sports Story | Avengers | Only Murders in the Building | The Penguin | Tracker | Tulsa King | The Walking Dead: Daryl Dixon | všechny seriály
PřihlášeníRegistrace
- Úvod
- Novinky
- Seriály a filmy
- Další vysílání
- Žebříčky
- Herci
- Magazín
- Blog
- Diskuze
- Tip na seriál
0/100 - 1×
do BednyInfo
Vtajuplném světě Los Angeles se mladá Gemma, plná snů oslávě, ocitá ve víru záhadného spánkového centra Somnium. Noční směny se postupně mění vnapínavý boj opřežití, když se pod povrchem kliniky začínají odhalovat temná tajemství. Sci-fi thriller propletený dramatem zkoumá hranice mezi snem a realitou a vtáhne vás do atmosféry plné napětí a nečekaných zvratů.
- USA | 2025
- vysílání
- | 90 minut
- žánr
- Sci-fi, Thriller, Drama
Hodnocení
Chceš taky hodnotit? Registruj se nebo se přihlaš!
Žádné hlasy s komentářem. Buď první!
Napište nám
Našli jste chybu ve vysílání? Nemůžete se dopídit českých titulků? Chtěli byste se o tento seriál starat? Napište nám!
Filtr seriálů a filmů
- 1923
- 3 Body Problem
- 9-1-1
- 9-1-1: Lone Star
- Ahsoka
- The Alienist
- All American
- Amazing Stories (2020)
- American Crime Story
- American Dad!
- American Horror Story
- Andor
- Animal Kingdom
- Assassin's Creed
- Avatar
- Avengers
- The Boys
- Bridgerton
- Chicago Fire
- Chicago Med
- Chicago P.D.
- Citadel
- Citadel: Diana
- Citadel: Honey Bunny
- Dark Universe
- Dexter
- Die Hard
- Disney Movies
- Doctor Who (2024)
- Dune
- Dune: Prophecy
- Emily in Paris
- Family Guy
- Fargo
- FBI
- For All Mankind
- Foundation
- Ghosts
- Grey's Anatomy
- The Handmaid's Tale
- Harry Potter
- Heartstopper
- House of the Dragon
- Indiana Jones
- Interview with the Vampire
- Invasion (2021)
- Invincible
- James Bond
- Justice League
- La Brea
- The Last of Us
- The Lord of the Rings: The Rings of Power
- Magnum P.I. (2018)
- Manifest
- Mayfair Witches
- Mission: Impossible
- The Morning Show
- Nancy Drew
- NCIS
- The Night Agent
- Only Murders in the Building
- The Orville
- Outer Banks
- Outlander
- The Politician
- Predator
- Reacher
- Rick and Morty
- SEAL Team
- Secret Level
- Shōgun
- Silo
- South Park
- SpongeBob SquarePants
- Star Wars
- Star Wars: Skeleton Crew
- Stranger Things
- The Summer I Turned Pretty
- Survivor
- Sweet Magnolias
- Ted Lasso
- Terminator
- The Grand Tour
- The Mandalorian
- Tracker
- True Detective
- Tulsa King
- Upload
- Venom
- The Walking Dead: Daryl Dixon
- The Walking Dead: Dead City
- Warrior Nun
- Wednesday
- The Wheel of Time
- The Witcher
- Yellowjackets
- You
Nebo můžete procházet všechny seriály.
Žebříčky
- Film | Rakuten TV | Animovaný
- Film | Rakuten TV | Dobrodružný
- Film | Rakuten TV | Sci-fi
- Seriál | 2020 | Hudební
- Seriál | 2023 | Komedie
- Seriál | Netflix | 2022 | Komedie
- Seriál | 2018 | Komiksový
- Seriál | Max | 2019 | Komedie
- Film | 2024 | Sci-fi
- Seriál | 2020 | Komedie
- Film | 2017 | Komiksový
- Seriál | 2015 | Drama
- Film | Hororový
- Seriál | 2013 | Drama
- Film | Apple TV Plus | 2011 | Dobrodružný
- Film | Amazon Prime Video | Špionážní
- Seriál | Canal+ | 2020 | Drama
- Seriál | 2014 | Thriller
- Seriál | Disney Plus | Životopisný
- Seriál | Netflix | 2020 | K-drama
- Film | 2024 | Fantasy
- Seriál | 2008 | Komedie
- Seriál | Disney Plus | 2022 | Drama
- Film | Disney Plus | Akční
- Seriál | Disney Plus | 2016 | Komedie
- Seriál | Netflix | 2023 | Komedie
- Seriál | Netflix | 2020 | Dokumentární
- Film | Apple TV Plus | 2016 | Dobrodružný
- Seriál | Apple TV Plus | Thriller
- Seriál | 2014 | Rodinný
'; document.getElementById('outstream-iframe').srcdoc = '
'; document.getElementById('outstream-iframe').onload = function(){ setupIframe(); } } function setupIframe() { outstreamDocument = document.getElementById('outstream-iframe').contentWindow.document; let el = outstreamDocument.createElement('style'); el.type = 'text/css'; outstreamDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe {width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{width:100vw;height:100vh}body{font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{overflow:hidden;background:#000}#adMuteBtn{width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:-5px;right:25px}"; videoContent = outstreamDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; if (!outstream_direct_played) { console.log('Setup iframe: direct'); setUpIMA(true); } else if (iinfoOutstreamAllowed) { console.log('Setup iframe: allowed article'); const playPromise = videoContent.play(); playPromise.then(function () { console.log('OUTSTREAM sound allowed'); setUpIMA(false); }).catch(function () { renderPassback(); }); } else { console.log('Setup iframe: passback'); renderPassback(); } } /** * Sets up IMA ad display container, ads loader, and makes an ad request. */ function setUpIMA(direct) { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function() { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); if (direct) { adsRequest.adTagUrl = iinfoVastDirect; console.log('Outstream DIRECT CAMPAING advert: ' + iinfoVastDirect); videoContent.muted = true; videoContent.volume = 0; outstream_direct_played = true; } else { adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Outstream advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; } adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } /** * Sets the 'adContainer' div as the IMA ad display container. */ function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. outstreamDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( outstreamDocument.getElementById('adContainer'), videoContent); } function unmuteAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(1); outstreamDocument.getElementById('adMuteBtn').innerHTML = '
'; } else { adsManager.setVolume(0); outstreamDocument.getElementById('adMuteBtn').innerHTML = '
'; } } /** * Loads the video content and initializes IMA ad playback. */ function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); try { adsManager.init(outstream_width_init, outstream_height_init, google.ima.ViewMode.NORMAL); adsManager.start(); } catch (adError) { } } /** * Handles the ad manager loading and sets ad event listeners. * @param {!google.ima.AdsManagerLoadedEvent} adsManagerLoadedEvent */ function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } /** * Handles actions taken in response to ad events. * @param {!google.ima.AdEvent} adEvent */ function onAdEvent(adEvent) { // Retrieve the ad from the event. Some events (for example, // ALL_ADS_COMPLETED) don't have ad object associated. const ad = adEvent.getAd(); console.log('Outstream event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: // This is the first event sent for an ad - it is possible to // determine whether the ad is a video ad or an overlay. if (!ad.isLinear()) { // Position AdDisplayContainer correctly for overlay. // Use ad.width and ad.height. videoContent.play(); } outstreamDocument.getElementById('adContainer').style.width = '100%'; outstreamDocument.getElementById('adContainer').style.maxWidth = '640px'; outstreamDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); // This event indicates the ad has started - the video player // can adjust the UI, for example display a pause button and // remaining time. if (ad.isLinear()) { // For a linear ad, a timer can be started to poll for // the remaining time. intervalTimer = setInterval( function() { // Example: const remainingTime = adsManager.getRemainingTime(); }, 300); // every 300ms } //unmuteAdvert(); outstreamDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (outstream_last_error == 303) { renderPassback(); } break; case google.ima.AdEvent.Type.COMPLETE: // This event indicates the ad has finished - the video player // can perform appropriate UI actions, such as removing the timer for // remaining time detection. if (ad.isLinear()) { clearInterval(intervalTimer); } if (true) { renderPassback(); } break; } } function renderPassback() { console.log('Outstream Spouštím Passback'); advertContainer.innerHTML = ""; advertContainer.appendChild(passBackDiv); } /** * Handles ad errors. * @param {!google.ima.AdErrorEvent} adErrorEvent */ function onAdError(adErrorEvent) { // Handle the error logging. console.log(adErrorEvent.getError()); outstream_last_error = adErrorEvent.getError().getErrorCode(); console.log(outstream_last_error); if (!loadNext()) { renderPassback(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrls.length > iinfoVastUrlIndex) { outstream_init(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { console.log('outstream onActiveView()'); var wrapper = document.getElementsByClassName('outstream-container')[0]; if (wrapper) { var containerOffset = wrapper.getBoundingClientRect(); var windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (outstream_paused) { adsManager.resume(); outstream_paused = false; /*window.removeEventListener('scroll', onActiveView);*/ console.log('Outstream: ad resume()'); } return true; } else { if (!outstream_paused) { adsManager.pause(); outstream_paused = true; /*window.removeEventListener('scroll', onActiveView);*/ console.log('Outstream: ad pause()'); } } } return false; } let outstream_initialize_interval = setInterval(tryToInicializeOutstream, 100); function tryToInicializeOutstream() { console.log(cpexPackage.adserver.displayed); var wrapper = document.getElementsByClassName('outstream-container')[0]; if (wrapper) { var containerOffset = wrapper.getBoundingClientRect(); var windowHeight = window.innerHeight; if (containerOffset.top < windowHeight / 1 && containerOffset.bottom > 0.0) { if (cpexPackage.adserver.displayed) { clearInterval(outstream_initialize_interval); outstream_init(); } } } }