fix(extractor): handle missing VidSrc files

This commit is contained in:
WebStreamr 2025-06-12 20:58:25 +00:00
parent d2d7e84d9b
commit 013fb4084f
No known key found for this signature in database
6 changed files with 1227 additions and 1 deletions

View file

@ -21,4 +21,8 @@ describe('VidSrc', () => {
test('Black Mirror', async () => {
expect(await extractorRegistry.handle(ctx, new URL('https://vidsrc.xyz/embed/tv/tt2085059/4/2'), CountryCode.en, 'Black Mirror 4x2')).toMatchSnapshot();
});
test('not found', async () => {
expect(await extractorRegistry.handle(ctx, new URL('https://vidsrc.xyz/embed/movie/tt35628853'), CountryCode.en, 'Black Mirror 4x2')).toMatchSnapshot();
});
});

View file

@ -3,6 +3,7 @@ import slugify from 'slugify';
import { Extractor } from './types';
import { Fetcher, guessFromPlaylist } from '../utils';
import { Context, CountryCode, UrlResult } from '../types';
import { NotFoundError } from '../error';
export class VidSrc implements Extractor {
readonly id = 'vidsrc';
@ -39,7 +40,10 @@ export class VidSrc implements Extractor {
const srcMatch = iframeHtml.match(`src:\\s?'(.*)'`) as string[];
const playerHtml = await this.fetcher.text(ctx, new URL(srcMatch[1] as string, iframeUrl.origin));
const fileMatch = playerHtml.match(`file:\\s?'(.*)'`) as string[];
const fileMatch = playerHtml.match(`file:\\s?'(.*)'`);
if (!fileMatch) {
throw new NotFoundError();
}
const m3u8Url = new URL(fileMatch[1] as string);
const height = await guessFromPlaylist(ctx, this.fetcher, m3u8Url, { noReferer: true });

View file

@ -31,3 +31,5 @@ exports[`VidSrc Full Metal Jacket 1`] = `
},
]
`;
exports[`VidSrc not found 1`] = `[]`;

View file

@ -0,0 +1,145 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html"/>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0-2/css/all.min.css" integrity="" crossorigin="anonymous"/>
<link rel="stylesheet" href="/style_rcp-e600e6.css?t=1744906951"/>
<style>
body {
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}
.hidden {
display:none;
}
#asdf {
width: 0px;
height: 0px;
}
#iframe_title {
position: absolute;
top: calc(50% + 45px);
font-size: 1.1em;
text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
width: calc(100% - 30px);
text-align: center;
padding: 0px 15px;
}
</style>
</head>
<body data-i="35628853" >
<!--<div id="pop_asdf" style="position:absolute; width:100%; height:100%; z-index:2147483650; pointer-events: none;"></div>-->
<!--<div id="loading_overlay"></div>-->
<div id="the_frame" style="background-image: none;">
<div id="pl_but_background" style="background-image: url('//image.tmdb.org/t/p/w780/dUCGp7TlntRm6WZyflAUsg6zSw7.jpg');">
<div id="iframe_title">
Titan: The OceanGate Disaster (2025) </div>
<i id="pl_but" class="fas fa-play"></i>
</div>
</div>
<div id="hidden" style="display:hidden;"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js" integrity="sha256-1A78rJEdiWTzco6qdn3igTBv9VupN3Q1ozZNTR4WE/Y=" crossorigin="anonymous"></script>
<script src="/base64.js?t="></script>
<script>
/*
$(document).ready(function(){
if($.cookie('pop_asdf')){
$("#pop_asdf").addClass("hidden");
}
$("#pop_asdf").click(function(){
if(!$.cookie('pop_asdf')){
if($.cookie('pop_asdf_tmp') >= 3){
var date = new Date();
date.setTime(date.getTime() + (10800 * 1000));
$.cookie('pop_asdf', 1, { expires: date });
$("#pop_asdf").addClass("hidden");
}else{
var cookie_value = 1;
if($.cookie('pop_asdf_tmp'))
cookie_value = $.cookie('pop_asdf_tmp');
cookie_value++;
$.cookie('pop_asdf_tmp', cookie_value);
$(this).addClass("hidden");
setTimeout(function(){
$("#pop_asdf").removeClass("hidden");
}, 59000);
}
}
});
});
*/
$("#pl_but_background , #pl_but").click(function(){
loadIframe();
});
function loadIframe(data = 1){
if(data == 1){
$("#the_frame").removeAttr("style");
$("#the_frame").html("");
$('<iframe>', {
id: 'player_iframe',
src: '/prorcp/YTRlNzg2MTNhNWI1YjA0NjdhMmFlNTEwMjFiMDc5YmU6VEVWQ2FWaEpSbFZOWldNd2RTOU5WbU5FYkZSaGQxVmhZVVV5U0dveVZFZEZORFo2WldocU4wdHBSWGREUTJsNE5YRnlTMUZHVUdRd1ZEUk9OSGhzWVdSSmNXaEJjMGc1UWtOQ1dWWjZZMkpRYlZOTE5EQkZSamwwYkZrM2RscFhUWE4wYWpCd05WUmtOMG8zZVRkbFNqZFZha1JwU1d0cVpsWnVaME0xUWxZMmQxSmFXVlUzVVdJNFNHUnNjVTFQWkV4U1VrUlNSMU5pYW1kNGFVWlZXVWcxVWtNMGJFNHdiamRGWkhoMFRteHdVa0p1UjA1T1MyNUNibXcwTDBSTFJUSlhNRVZvV1dGVU9YcDJLMUpLVTNseU5FaHNLM1pxUW5SRmRFZHFWME5LWjIxRVRXWkZXSEF3VGtvdmNEaGxZekk1ZVV3NVJ6QkRiaXR5UlZCQmJHOVZMM2t3VEVNclUzcG1NVlV6YVZkb056QkJPVk54UldaRWMzaHljakpzYlhWRVNHaFJVMHhNV21OM01HZEdkRlIzY2pORk9YWkNTV2szTlZBeVJuSkRWR3AzSzIxT1VWTmpka3gxYjBScVJucEhORkExZERkNmFUQm1aV2RHUlVWRU1uazRlbXB5WVRrME16QTBaVTlTV1V4WlVXUlplR0ZYUVVaTVlVUlNjekpNTTBzck55ODBSMjUxYmtoaVFrTlBlVlpaWW0xSFIwd3ZXbkpxYmxGWU56SXhiM2hKUVhRM1ZXdGlXalozWlZnNVUwUmplVmh0ZEdSaVdWWjBlVU40UjJWc2VFMDRZbmx0ZEdKWWRISXhUemxRYkdWeFJUaEtaVTU2Y1dSbmRqaHNaRFZ2WmxOUk16VkZkazlvUkV0c2VuQlljVnBOVEVJd2JuaDZZa3ROZVcwMlNWbDJXbGxSTjFNeGNFZDNWamd6UmtOMlYwUXllVlYxU1RaeldrcGlSbkpuUm1JMVUyNDFjR1p2TkU1dk1rNTBhM0JzYVZSRk5ISXpOV1ZDT1VkNFJpOW1WbUZOZG1zMWFpOVlTblpVWlZoUlRIZFJhakl5YVhneE1XVkRjRTl4U0ZnclJqQnpialF5YlhCcVFXWjFPRWwxU1dkSWMzcFJMM3AyZDBKcUsxSXZUVUoyY1ZSV1IxcDRUVTR6YlV4b2JHeFRhVlpGVDNZMFl6VTBSa1J0TDA1dFRGTXpTMHRVVkdwWGRERlZkV05VVm5aa1FYbEdOV1pVVDJoSVZuUlFUa3hPU213NFExQklXazg1VkNzMFpsVklXRE41UWpKUEwwWmFjR1ZZYjNNeGRFOW5lazQ1WkZOM1psQlBSbHB2TkZJMVJqZG9RVmswWlZWM2RsTnpOMWRxVmt4b1QwOHpSMnRVZGtsa09IUlZSazFwYjJSVlEyNXBSSFJyYzFGdWJ6Z3dURzB5ZEdwd2J6RmxXVGhWWVVOdVEycExjRmRGY1ZSVmFXVjJPR0ppUjJsaVJEWTVTVGR0Wm1ZNGFIVXdPQzkyVVVNM1pVSjNkbThyV0N0TWFHMXdSMFpZVjJ4NlZWcDZjRGw0UWxwRmJFcHZaekJKUkdOMlRub3hXV055TjA5cVdHRTJLMHR1V0ZoVWJYcHhjbHBwVFVoV09YQXlWRmQ0UVZCellrWnhTVW8wVWxsVWVrcEpjMFUwUnpOQldHRkRaVFV5U21kV1ZtRlNaamQyUm5obVJYUmtVM2xsWWxWV1VWUkNPWGg1YjIxQk5pOTRNbWQzVXpNeFEyeFBha3h6WnpaM1FYbHJTV1ZHVEc4M00wWk9RbkkwVFRSQk1GTnJjbGhZYmtaT09VaDBTVkF6UWxSb0wyeFZMMHAxWlVkRFNGaHpkRmt6Y25SQmRYRnZjMUZOTkdaR1ZXSlpObmg2ZUU1MU1YbHJSRTVrVFhKd2MwRTVZVWhKU1hSQ05YRndSMWx2YURkT2JHOTROVEpTTlRORVRVVldObTV2ZUVwS2FFOXpSVVJtUjFwTVRXdHJSekV5WmpCV2N6UjNiVkV3YjIweFdXSk9PVUZLVlRSMVJVeE1kbnBNVDBOeGRqbEhOa3MxVEVsRE9FdGxZWFpvU2tzclRsbHJlRkY1VWtkVmFYWnRMMDFVWW5VelVFdDBkSEZMSzFkNE9XcFlOMFI2Y1dkSmFtcFJkMU0xZGxGQ1RGZHFabkJKU0ZSdU1GSTJWM3BpTkVwd1JURjBPRzVRVjBjdmMyeE1OV1JMTWtoRU1Fa3hSMmhUV1ZJemRqZDZhMUJ4TVhJPQ--',
frameborder: 0,
scrolling: 'no',
allowfullscreen: 'yes',
allow: "autoplay",
style: 'height: 100%; width: 100%;'
}).appendTo('#the_frame');
$("#player_iframe").on("load", function () {
$("#the_frame").attr("style","background-image: none;");
});
}
}
// pm redirector
window.addEventListener('message', message => {
if (message.source == window) {
return; // Skip message in this event listener
}
var the_iframe = document.getElementById('player_iframe');
if(message.source == window.parent){
the_iframe.contentWindow.postMessage(message.data,'*');
}else{
window.parent.postMessage(message.data , '*');
}
});
</script>
</body>
</html>

View file

@ -0,0 +1,803 @@
<!DOCTYPE html>
<html>
<head>
<title>Titan: The OceanGate Disaster (2025)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="referrer" content="origin" />
<!--<link rel="stylesheet" href="https://cdn.plyr.io/3.6.12/plyr.css" crossorigin="anonymous" />-->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/plyr/3.7.3/plyr.min.css" integrity="sha512-6Ri9OxVS85G/DRlnwVIggHm8n738xZ5DuosGQywWa838o8TCojyxGl16C+JmhiHcWl3YjPnN6d6GwY0a0/S5jA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css" integrity="sha512-xh6O/CkQoPOWDdYTDqeRdPCVd1SpvCA9XXcUnZS2FmJNp1coAFzvtCN9BmamE+4aHK8yyUHUSCcJHgXloTyT2A==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<style>
/* scroll */
/* Hide the default scrollbar */
::-webkit-scrollbar {
position: absolute;
width: 5px; /* Width of the scrollbar */
}
/* Track (the area on which the scrollbar is rendered) */
::-webkit-scrollbar-track {
background: rgba(255,255,255,0); /* Track background color */
}
/* Handle (the draggable part of the scrollbar) */
::-webkit-scrollbar-thumb {
background: #888; /* Handle background color */
border-radius: 3px; /* Handle border radius */
}
/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
background: #555; /* Handle background color on hover */
}
pjsdiv:has(> #player_parent_settings) {
box-shadow: 0 -1px 10px black;
border-top-left-radius: 5px !important;
border-bottom-left-radius: 5px !important;
}
.hidden {
display:none !important;
}
#player_parent , #player {
width: 100%;
height: 100%;
}
html {
margin:0;
width:100%;
height:100%;
}
body {
margin:0;
width:100%;
height:100%;
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}
#pjs_player_parent_subtitle {
display: block !important;
}
:root {
--plyr-color-main: #e600e6;
--webkit-text-track-display: none;
}
.plyr__menu__container div[role="menu"] {
max-height: calc(100vh - 100px) !important;
overflow-y: auto !important;
}
.plyr {
height: 100%;
}
.plyr--full-ui ::-webkit-media-text-track-container {
display: var(--webkit-text-track-display);
}
.plyr__captions {
font-size: 21px !important;
font-family: Arial !important;
}
.plyr__controls{
z-index: 999999;
}
.plyr__progress {
z-index: 999999;
}
#player_parent_control_showSubtitles {
display: none;
}
#player_parent_control_unmute_button {
opacity: 0.8;
}
#player_parent_control_unmute_button pjsdiv:nth-child(3) {
width:95px !important;
}
#player_parent_control_unmute_button:hover {
opacity: 1;
}
#player_parent_control_unmute_button::after {
content: " UNMUTE";
background: #000;
padding: 6px 5px 4px 5px;
margin-left: 12px;
font-size: 12px;
margin-top: -12px;
position: absolute;
border-radius: 3px;
font-weight: bold;
pointer-events: none;
}
#subtitles_button img {
width: 100%;
height: 100%;
}
.reporting_window {
border-top-left-radius: 5px !important;
border-bottom-left-radius: 5px !important;
box-shadow: 0px -1px 7px black !important;
font-size:14px;
display: none;
color: white;
right: 0;
position: absolute;
width: 100%;
bottom: 60px;
z-index: 999;
overflow:hidden;
background: #333333;
max-width: 150px !important;
}
.reporting_window .header {
width: 100%;
height: 30px;
}
.reporting_window .header i {
font-size: 14px;
line-height: 30px;
padding: 0 10px;
}
.reporting_window .header i:hover {
cursor: pointer;
}
.reporting_window .header #close {
float: right;
}
.reporting_window .content {
width: 100%;
height: calc(100% - 30px);
overflow: hidden;
overflow-y: auto;
font-size: 0.8rem;
}
.reporting_window .content div {
color: white;
padding: 0px 5px;
overflow-wrap: anywhere;
}
.reporting_window .content div:hover {
cursor: pointer;
background-color: #222222;
}
.reporting_window .content * {
cursor: pointer;
}
.reporting_window #sentReport {
margin: 10px;
}
.subtitles_window {
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
border-top-left-radius: 5px !important;
border-bottom-left-radius: 5px !important;
box-shadow: 0px -1px 7px black !important;
font-size:14px;
display: none;
color: white;
right: 0;
position: absolute;
width: 100%;
height: calc(100% - 65px);
bottom: 60px;
z-index: 999;
overflow:hidden;
background: #333333;
max-width: 300px !important;
}
.subtitles_loader {
position: absolute;
width: 100%;
height: calc(100% - 30px);
margin-top: 30px;
background: rgba(0,0,0,0.7);
align-items: center;
justify-content: center;
font-size: 1.5em;
display: none;
}
.subtitles_loader::after {
content: 'Loading...';
}
.subtitles_window .header {
width: 100%;
height: 30px;
}
.subtitles_window .header i {
font-size: 14px;
line-height: 30px;
padding: 0 10px;
}
.subtitles_window .header i:hover {
cursor: pointer;
}
.subtitles_window .header #back {
float: left;
display: none;
}
.subtitles_window .header #close {
float: right;
}
.subtitles_window .header #title {
font-size: 14px;
line-height: 30px;
font-weight: bold;
}
.subtitles_window .content {
width: 100%;
height: calc(100% - 30px);
overflow: hidden;
overflow-y: auto;
font-size: 0.8rem;
}
.subtitles_window .content div {
color: white;
padding: 7px 10px;
overflow-wrap: anywhere;
}
.subtitles_window .content div:hover {
cursor: pointer;
background-color: #222222;
}
.subtitles_window .content .subtitle_active {
background-color: rgba(255, 255, 255, 0.2);
}
.subtitles_window .content .lang {
font-weight: bold;
}
#player_parent_control_player_logo svg {
width:56px !important;
height:22.75px !important;
}
@media (max-width: 400px) {
#player_parent_control_reportingButton {
display: none !important;
}
#player_parent_control_player_logo {
display: none !important;
}
}
.loader {
top: calc(50% - 24px);
left: calc(50% - 24px);
position: absolute;
width: 48px;
height: 48px;
border: 5px solid;
border-color: #e600e6 transparent;
border-radius: 50%;
display: none;
box-sizing: border-box;
animation: rotation 1s linear infinite;
}
@keyframes rotation {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
</style>
</head>
<body data-i="35628853" >
<div id="player_parent">
</div>
<div id="reporting_content" style="display: none;">
<div class='header'>
<i id="close" class="fa-solid fa-xmark"></i>
</div>
<div class='content'>
<div>
<input type="radio" id="reportError" name="problem" value="file_error" checked="checked">
<label for="reportError" >File Error</label><br>
</div>
<div>
<input type="radio" id="reportVideo" name="problem" value="wrong_video">
<label for="reportVideo">Wrong Video</label><br>
</div>
<div>
<input type="radio" id="reportAudio" name="problem" value="wrong_audio">
<label for="reportAudio">Wrong Audio</label><br>
</div>
<div>
<input id="math" type="hidden" name="math" value="9-5" />
<p>
9-5 = <input id="solution" type="number" name="solution" min="0" max="9"/>
</p>
</div>
<button id="sentReport" data-hash="YTRlNzg2MTNhNWI1YjA0NjdhMmFlNTEwMjFiMDc5YmU6VEVWQ2FWaEpSbFZOWldNd2RTOU5WbU5FYkZSaGQxVmhZVVV5U0dveVZFZEZORFo2WldocU4wdHBSWGREUTJsNE5YRnlTMUZHVUdRd1ZEUk9OSGhzWVdSSmNXaEJjMGc1UWtOQ1dWWjZZMkpRYlZOTE5EQkZSamwwYkZrM2RscFhUWE4wYWpCd05WUmtOMG8zZVRkbFNqZFZha1JwU1d0cVpsWnVaME0xUWxZMmQxSmFXVlUzVVdJNFNHUnNjVTFQWkV4U1VrUlNSMU5pYW1kNGFVWlZXVWcxVWtNMGJFNHdiamRGWkhoMFRteHdVa0p1UjA1T1MyNUNibXcwTDBSTFJUSlhNRVZvV1dGVU9YcDJLMUpLVTNseU5FaHNLM1pxUW5SRmRFZHFWME5LWjIxRVRXWkZXSEF3VGtvdmNEaGxZekk1ZVV3NVJ6QkRiaXR5UlZCQmJHOVZMM2t3VEVNclUzcG1NVlV6YVZkb056QkJPVk54UldaRWMzaHljakpzYlhWRVNHaFJVMHhNV21OM01HZEdkRlIzY2pORk9YWkNTV2szTlZBeVJuSkRWR3AzSzIxT1VWTmpka3gxYjBScVJucEhORkExZERkNmFUQm1aV2RHUlVWRU1uazRlbXB5WVRrME16QTBaVTlTV1V4WlVXUlplR0ZYUVVaTVlVUlNjekpNTTBzck55ODBSMjUxYmtoaVFrTlBlVlpaWW0xSFIwd3ZXbkpxYmxGWU56SXhiM2hKUVhRM1ZXdGlXalozWlZnNVUwUmplVmh0ZEdSaVdWWjBlVU40UjJWc2VFMDRZbmx0ZEdKWWRISXhUemxRYkdWeFJUaEtaVTU2Y1dSbmRqaHNaRFZ2WmxOUk16VkZkazlvUkV0c2VuQlljVnBOVEVJd2JuaDZZa3ROZVcwMlNWbDJXbGxSTjFNeGNFZDNWamd6UmtOMlYwUXllVlYxU1RaeldrcGlSbkpuUm1JMVUyNDFjR1p2TkU1dk1rNTBhM0JzYVZSRk5ISXpOV1ZDT1VkNFJpOW1WbUZOZG1zMWFpOVlTblpVWlZoUlRIZFJhakl5YVhneE1XVkRjRTl4U0ZnclJqQnpialF5YlhCcVFXWjFPRWwxU1dkSWMzcFJMM3AyZDBKcUsxSXZUVUoyY1ZSV1IxcDRUVTR6YlV4b2JHeFRhVlpGVDNZMFl6VTBSa1J0TDA1dFRGTXpTMHRVVkdwWGRERlZkV05VVm5aa1FYbEdOV1pVVDJoSVZuUlFUa3hPU213NFExQklXazg1VkNzMFpsVklXRE41UWpKUEwwWmFjR1ZZYjNNeGRFOW5lazQ1WkZOM1psQlBSbHB2TkZJMVJqZG9RVmswWlZWM2RsTnpOMWRxVmt4b1QwOHpSMnRVZGtsa09IUlZSazFwYjJSVlEyNXBSSFJyYzFGdWJ6Z3dURzB5ZEdwd2J6RmxXVGhWWVVOdVEycExjRmRGY1ZSVmFXVjJPR0ppUjJsaVJEWTVTVGR0Wm1ZNGFIVXdPQzkyVVVNM1pVSjNkbThyV0N0TWFHMXdSMFpZVjJ4NlZWcDZjRGw0UWxwRmJFcHZaekJKUkdOMlRub3hXV055TjA5cVdHRTJLMHR1V0ZoVWJYcHhjbHBwVFVoV09YQXlWRmQ0UVZCellrWnhTVW8wVWxsVWVrcEpjMFUwUnpOQldHRkRaVFV5U21kV1ZtRlNaamQyUm5obVJYUmtVM2xsWWxWV1VWUkNPWGg1YjIxQk5pOTRNbWQzVXpNeFEyeFBha3h6WnpaM1FYbHJTV1ZHVEc4M00wWk9RbkkwVFRSQk1GTnJjbGhZYmtaT09VaDBTVkF6UWxSb0wyeFZMMHAxWlVkRFNGaHpkRmt6Y25SQmRYRnZjMUZOTkdaR1ZXSlpObmg2ZUU1MU1YbHJSRTVrVFhKd2MwRTVZVWhKU1hSQ05YRndSMWx2YURkT2JHOTROVEpTTlRORVRVVldObTV2ZUVwS2FFOXpSVVJtUjFwTVRXdHJSekV5WmpCV2N6UjNiVkV3YjIweFdXSk9PVUZLVlRSMVJVeE1kbnBNVDBOeGRqbEhOa3MxVEVsRE9FdGxZWFpvU2tzclRsbHJlRkY1VWtkVmFYWnRMMDFVWW5VelVFdDBkSEZMSzFkNE9XcFlOMFI2Y1dkSmFtcFJkMU0xZGxGQ1RGZHFabkJKU0ZSdU1GSTJWM3BpTkVwd1JURjBPRzVRVjBjdmMyeE1OV1JMTWtoRU1Fa3hSMmhUV1ZJemRqZDZhMUJ4TVhJPQ--">Sent report</button>
</div>
</div>
<script src="https://cdn.vidsrc.stream/jquery@3.2.1/dist/jquery.min.js"></script>
<script src="https://cdn.vidsrc.stream/jquery.cookie@1.4.1/jquery.cookie.js"></script>
<script src="https://unpkg.com/hls.js@0.14.17/dist/hls.min.js"></script>
<script src="https://cdn.vidsrc.stream/p2p-media-loader-core@0.6.2/build/p2p-media-loader-core.min.js"></script>
<script src="https://cdn.vidsrc.stream/p2p-media-loader-hlsjs@0.6.2/build/p2p-media-loader-hlsjs.min.js"></script>
<script src="/pjs/pjs_main_p2p.js?_=1744906949"></script>
<script src="/srt2vtt.js?t=1744906949"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pako/2.0.3/pako.min.js"></script>
<srcipt src="https://cdn.vidsrc.stream/pako@2.1.0/dist/pako.min.js"></srcipt>
<script src="/subtitles_pjs_24.04.js?t=1744906949"></script>
<script src="/reporting.js?t=1744906950"></script>
<script src="/tprs/src/parser.js?_=1744906890"></script>
<script src="/tprs/src/handlers.js?_=1744906890"></script>
<script src="/tprs/index.js?_=1744906890"></script>
<script>
var ds_langs = [];
var ds_lang = false;
var sub_shown_lang = "";
var flnm = removeExtension(atob('VGl0YW4gVGhlIE9jZWFuR2F0ZSBEaXNhc3RlciAoMjAyNSkgWzEwODBwXSBbV0VCUmlwXSBbeDI2NV0gWzEwYml0XSBbNS4xXSBbWVRTLk1YXS9UaXRhbi5UaGUuT2NlYW5HYXRlLkRpc2FzdGVyLjIwMjUuMTA4MHAuV0VCUmlwLngyNjUuMTBiaXQuQUFDNS4xLVtZVFMuTVhdLm1wNA=='));
console.log(flnm);
flnm = flnm.split("/");
var flnm_data = [];
for (const key in flnm) {
flnm_data.push(tprs.parse(flnm[key]));
}
var pljs_sub_lang = localStorage.getItem("pljssubtitle");
if(typeof pljs_sub_lang === 'string' || pljs_sub_lang instanceof String){
for (let lang of sub_langs) {
var tmp_lang_regexp = new RegExp(lang.LanguageName, "i");
if(tmp_lang_regexp.test(pljs_sub_lang)){
ds_lang = lang;
break;
}
}
}
ds_lang = get_lang_from_iso639(JSON.parse('[]')[0]);
var watching = false;
var stats_path = "/stats.php?s=d";
var pass_path = "//app.putgate.org/set_pass.php?h=ODMxYjE1MTY4NzI5OGYzODM1NWQ2YjlkYjhmMDViOTU6YlVNM2NDOXpWV3RMWlM5aFNqSkNiVFppU1dsU1VFVnRiamt5VkdSM016TkdMMmszZG1jdlpXOXJjRUY0VVZOdFQyWjRNa05YT0U0M1dISXZaRzlOUkE9PQ--";
var pass_interval = 60000;
//$.get(pass_path);
setInterval(function(){
if(watching){
$.get(pass_path);
/*$.get(pass_path, function(data, status){
//console.log(data);
});
*/
}
}, pass_interval);
if (Hls.isSupported()) {
if(p2pml.core.HybridLoader.isSupported()){
const p2pconfig = {
segments: {
forwardSegmentCount: 50,
swarmId: "7e4a9ba5b0e53b873f3b5f103cd1c8fc"
},
loader: {
cachedSegmentExpiration: 86400000,
cachedSegmentsCount: 500,
requiredSegmentsPriority: 5,
p2pDownloadMaxPriority: 50,
simultaneousP2PDownloads: 20,
simultaneousHttpDownloads: 1,
httpUseRanges: false,
httpDownloadMaxPriority: 1,
httpDownloadProbability: 0.01,
httpDownloadProbabilityInterval: 1000,
httpDownloadProbabilitySkipIfNoPeers: true
}
};
var engine = new p2pml.hlsjs.Engine(p2pconfig);
var hlsconfig = {
liveSyncDurationCount: 3, // To have at least 7 segments in queue
loader: engine.createLoaderClass() ,
defaultAudioCodec: "mp4a.40.5"
};
}else{
console.log("player hlsjs");;
var hlsconfig = {
liveSyncDurationCount: 3
};
}
}
var subs_shown = false;
var the_subtitles = [];
var default_subtitles = "";
var db_subs = [];
var lc_on = IsLcOn();
var current_sub_name = "cs_"+$("body").data("i");
if($("body").data("s") && $("body").data("e")){
current_sub_name += "_"+$("body").data("s")+"x"+$("body").data("e");
}
if(default_subtitles.length > 0){
the_subtitles = default_subtitles.split(",");
//player.api("subtitle",default_subtitles);
}
var player = new Playerjs({id:"player_parent", cuid:"3e8a1fa80db200c46306dc2c84485d64",file:"#9aHR0cHM6Ly9hcHAucHV0Z2F0ZS5vcmcvY2Ruc3RyL0g0c0lBQUFBQUFB/@#@/Ol0mKjFAQDE9Jg==QUF3WEIzVzdDSUJnQTBGZUNq/@#@/PSg9OjE5NzA1Lw==Nl9WbXV4bUdkYVFVaWZsUjdncmJVMHRxTk5Ncy4zcGQwNXhZbXlLcHhWQ3RSNGdsdVZxd2drcFdaZFlqYkduRzgyM3BhWUozSkdUdnNaQ3N5QVZpT2ZvQkE2TC5Hd/@#@/Kiw0KS4oXykoKQ==GczQ3Z5UlNUa3U4dFdHajBfUEd6Qkx4NWtQZDhucl/@#@/MzMtKi40LzlbNg==pyZ1dtOFRKeDBFZnJnYU5yamkyekw3R1owcUR1Ykg5U2s4UWpiVXVQQ1N2R3IxVG9TRzJ0Lk9qNDI5M3JEN3lHZkxKSn/@#@/JT82NDk3Lls6NA==FMVUZybjU5NjBLSmZjMmpUWEpsVS43dDVmQTZTM2YySVVYMVBOQUFBQS9saXN0Lm0zdTg=", hlsconfig:hlsconfig, poster:"//image.tmdb.org/t/p/w780/dUCGp7TlntRm6WZyflAUsg6zSw7.jpg" , ready:"PlayerReady" , autoplay:1 , subtitle: default_subtitles});
if(player.api("subtitles").length > 1 && ds_lang){
setStartSubtitle();
}else if(player.api("subtitles").length === 1){
player.api("subtitle" , player.api("subtitles").length-1);
}
if(lc_on){
current_sub = localStorage.getItem(current_sub_name);
if(typeof current_sub === 'string' && isJson(current_sub)){
current_sub = JSON.parse(current_sub)
if(current_sub.lang_short != sub_shown_lang){
addSubtitle(current_sub);
}
}
}
var video = $("#player_parent").find("video")[0];
var watched = {
value: 0,
report: 0,
interval: false ,
duration: 0,
set: function (value) {
this.value = value;
this.onChange();
},
onChange: function(){
if(this.duration > 0){
if(this.report < 5){
var limit = this.duration*0.05;
if(limit < 30){
limit = 30
}
if(this.value > limit){
this.report = 5;
$.get("/fsdV/YTRlNzg2MTNhNWI1YjA0NjdhMmFlNTEwMjFiMDc5YmU6VEVWQ2FWaEpSbFZOWldNd2RTOU5WbU5FYkZSaGQxVmhZVVV5U0dveVZFZEZORFo2WldocU4wdHBSWGREUTJsNE5YRnlTMUZHVUdRd1ZEUk9OSGhzWVdSSmNXaEJjMGc1UWtOQ1dWWjZZMkpRYlZOTE5EQkZSamwwYkZrM2RscFhUWE4wYWpCd05WUmtOMG8zZVRkbFNqZFZha1JwU1d0cVpsWnVaME0xUWxZMmQxSmFXVlUzVVdJNFNHUnNjVTFQWkV4U1VrUlNSMU5pYW1kNGFVWlZXVWcxVWtNMGJFNHdiamRGWkhoMFRteHdVa0p1UjA1T1MyNUNibXcwTDBSTFJUSlhNRVZvV1dGVU9YcDJLMUpLVTNseU5FaHNLM1pxUW5SRmRFZHFWME5LWjIxRVRXWkZXSEF3VGtvdmNEaGxZekk1ZVV3NVJ6QkRiaXR5UlZCQmJHOVZMM2t3VEVNclUzcG1NVlV6YVZkb056QkJPVk54UldaRWMzaHljakpzYlhWRVNHaFJVMHhNV21OM01HZEdkRlIzY2pORk9YWkNTV2szTlZBeVJuSkRWR3AzSzIxT1VWTmpka3gxYjBScVJucEhORkExZERkNmFUQm1aV2RHUlVWRU1uazRlbXB5WVRrME16QTBaVTlTV1V4WlVXUlplR0ZYUVVaTVlVUlNjekpNTTBzck55ODBSMjUxYmtoaVFrTlBlVlpaWW0xSFIwd3ZXbkpxYmxGWU56SXhiM2hKUVhRM1ZXdGlXalozWlZnNVUwUmplVmh0ZEdSaVdWWjBlVU40UjJWc2VFMDRZbmx0ZEdKWWRISXhUemxRYkdWeFJUaEtaVTU2Y1dSbmRqaHNaRFZ2WmxOUk16VkZkazlvUkV0c2VuQlljVnBOVEVJd2JuaDZZa3ROZVcwMlNWbDJXbGxSTjFNeGNFZDNWamd6UmtOMlYwUXllVlYxU1RaeldrcGlSbkpuUm1JMVUyNDFjR1p2TkU1dk1rNTBhM0JzYVZSRk5ISXpOV1ZDT1VkNFJpOW1WbUZOZG1zMWFpOVlTblpVWlZoUlRIZFJhakl5YVhneE1XVkRjRTl4U0ZnclJqQnpialF5YlhCcVFXWjFPRWwxU1dkSWMzcFJMM3AyZDBKcUsxSXZUVUoyY1ZSV1IxcDRUVTR6YlV4b2JHeFRhVlpGVDNZMFl6VTBSa1J0TDA1dFRGTXpTMHRVVkdwWGRERlZkV05VVm5aa1FYbEdOV1pVVDJoSVZuUlFUa3hPU213NFExQklXazg1VkNzMFpsVklXRE41UWpKUEwwWmFjR1ZZYjNNeGRFOW5lazQ1WkZOM1psQlBSbHB2TkZJMVJqZG9RVmswWlZWM2RsTnpOMWRxVmt4b1QwOHpSMnRVZGtsa09IUlZSazFwYjJSVlEyNXBSSFJyYzFGdWJ6Z3dURzB5ZEdwd2J6RmxXVGhWWVVOdVEycExjRmRGY1ZSVmFXVjJPR0ppUjJsaVJEWTVTVGR0Wm1ZNGFIVXdPQzkyVVVNM1pVSjNkbThyV0N0TWFHMXdSMFpZVjJ4NlZWcDZjRGw0UWxwRmJFcHZaekJKUkdOMlRub3hXV055TjA5cVdHRTJLMHR1V0ZoVWJYcHhjbHBwVFVoV09YQXlWRmQ0UVZCellrWnhTVW8wVWxsVWVrcEpjMFUwUnpOQldHRkRaVFV5U21kV1ZtRlNaamQyUm5obVJYUmtVM2xsWWxWV1VWUkNPWGg1YjIxQk5pOTRNbWQzVXpNeFEyeFBha3h6WnpaM1FYbHJTV1ZHVEc4M00wWk9RbkkwVFRSQk1GTnJjbGhZYmtaT09VaDBTVkF6UWxSb0wyeFZMMHAxWlVkRFNGaHpkRmt6Y25SQmRYRnZjMUZOTkdaR1ZXSlpObmg2ZUU1MU1YbHJSRTVrVFhKd2MwRTVZVWhKU1hSQ05YRndSMWx2YURkT2JHOTROVEpTTlRORVRVVldObTV2ZUVwS2FFOXpSVVJtUjFwTVRXdHJSekV5WmpCV2N6UjNiVkV3YjIweFdXSk9PVUZLVlRSMVJVeE1kbnBNVDBOeGRqbEhOa3MxVEVsRE9FdGxZWFpvU2tzclRsbHJlRkY1VWtkVmFYWnRMMDFVWW5VelVFdDBkSEZMSzFkNE9XcFlOMFI2Y1dkSmFtcFJkMU0xZGxGQ1RGZHFabkJKU0ZSdU1GSTJWM3BpTkVwd1JURjBPRzVRVjBjdmMyeE1OV1JMTWtoRU1Fa3hSMmhUV1ZJemRqZDZhMUJ4TVhJPQ--");
}
}
}
},
setDur: function(dur){
this.duration = dur;
}
}
function PlayerReady(){
player.api("preload");
p2pml.hlsjs.initHlsJsPlayer(player.api('hls'));
if(player.api("subtitles").length === 1)
player.api("subtitle" , player.api("subtitles").length-1);
gen_subs_el();
gen_reporting_el();
//console.log(player.api("subtitles"));
}
var pm_player_data = {type:"PLAYER_EVENT"};
var pm_time_last_update = 0;
var pm_time_last_update_use = false;
pm_player_data.data = {
imdbId: "tt35628853",
tmdbId: 1426306,
type: "movie",
season: false,
episode: false,
currentTime: 0,
duration: 0
};
function PlayerjsEvents(event,id,data){
if(event=="play"){
watching = true;
if(!watched.interval){
watched.interval = setInterval(function(){
if(player.api("playing")){
watched.set(watched.value+1);
if(watched.value % 60 == 0){
//$.get("/watched");
}
}
},1000);
}
}
var not_playing = [
"stop" ,
"pause" ,
"end"
];
if(not_playing.includes(event)){
watching = false;
}
if(event=="loaderror"){
}
if(event == "pause"){
pm_player_data.data.event = "pause";
window.parent.postMessage(pm_player_data , '*');
//console.log(pm_player_data);
}
if(event == "time"){
if((Date.now() - pm_time_last_update) > 5000){
pm_time_last_update = Date.now();
pm_player_data.data.event = "timeupdate";
pm_player_data.data.currentTime = parseInt(player.api("time"));
window.parent.postMessage(pm_player_data , '*');
}
}
if(event == "end"){
pm_player_data.data.event = "ended";
pm_player_data.data.currentTime = parseInt(player.api("duration"));
window.parent.postMessage(pm_player_data , '*');
player.api("pause");
//console.log(pm_player_data);
}
if(event == "seek"){
pm_player_data.data.event = "seeked";
pm_player_data.data.currentTime = parseInt(player.api("time"));
window.parent.postMessage(pm_player_data , '*');
//console.log(pm_player_data);
}
if(event=="duration"){
if(watched.duration == 0){
watched.setDur(parseInt(player.api("duration")));
pm_player_data.data.duration = parseInt(player.api("duration"));
pm_player_data.data.event = "timeupdate";
window.parent.postMessage(pm_player_data , '*');
}
}
if(event=="duration"){
if(watched.duration == 0)
watched.setDur(parseInt(player.api("duration")));
}
if(event == "subtitles" || event == "subtitle"){
var sub_lang = get_lang_from_name(data);
sub_shown_lang = sub_lang.ISO639;
}
if(event == "end"){
}
}
function openVidsrc(){
var win = window.open('https://vidsrc.me/', '_blank');
if (win) {
//Browser has allowed it to be opened
win.focus();
}
}
// auto hide subtitles
/*
function attributeChangeCallback(mutationsList, observer) {
for (let mutation of mutationsList) {
if (mutation.type === 'attributes' && mutation.attributeName === 'style') {
if ($("#player_parent_control_showSubtitles").is(":visible")) {
if(subs_shown)
$(".subtitles").show();
}else{
if(subs_shown)
$(".subtitles").hide();
}
}
}
}
// Create a Mutation Observer to watch for attribute changes
const observer = new MutationObserver(attributeChangeCallback);
// Configure the observer to watch for attribute changes on the button
const config = { attributes: true, attributeFilter: ['style'] };
observer.observe(document.getElementById('player_parent_control_showSubtitles'), config);
*/
window.addEventListener('message', message => {
if (message.source == window) {
return; // Skip message in this event listener
}
if(message.source == window.parent){
if(isJson(message.data)){
message_data = JSON.parse(message.data);
if(message_data.player === true){
if(message_data.action == "play"){
player.api("play");
}
if(message_data.action == "pause"){
player.api("pause");
}
if(message_data.action.includes("seek")){
var seek_match = message_data.action.match(/seek(\+|-)([0-9]+)/);
if(seek_match.length){
player.api("seek",seek_match[1]+seek_match[2])
}
}
}
}
}
});
function IsLcOn(){
var is_on = false;
try {
localStorage.setItem('test_lc' , "1");
if(localStorage.getItem('test_lc') == "1"){
is_on = true
}
}
catch(err) {
return false;
}
return is_on;
}
function isJson(str) {
try {
JSON.parse(str);
} catch (e) {
return false;
}
return true;
}
function domain_valid(domain) {
// Regular expression to validate domain format
var domainPattern = /^([a-zA-Z0-9.-]+)?[a-zA-Z0-9-]\.[a-zA-Z]{2,}(\.[a-zA-Z]{2,})?$/;
return domainPattern.test(domain);
}
</script>
<script data-ssr="1" data-cfasync="false" async type="text/javascript" src="//baccytorve.com/r684b3f5add462/108734"></script>
</body>
</html>

View file

@ -0,0 +1,268 @@
<!DOCTYPE html>
<html>
<head>
<title>Titan: The OceanGate Disaster (2025)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0-2/css/all.min.css" integrity="" crossorigin="anonymous"/>
<link rel="stylesheet" href="/style.css?t=1710289820"/>
<style>
.mctitle a {
font-size:1em !important;
}
#AdWidgetContainer {
position: fixed !important;
transition: transform 1s linear 0s !important;
opacity: 1 !important;
transform: translate(0px, 0px) !important;
}
#ad720 {
width: 100%;
position: absolute;
bottom: 0;
display: flex;
align-items: center;
justify-content: center;
color: white;
}
#ad720 .ad_container {
max-width: 720px;
position: relative;
}
#ad720 .ad_container img {
width: 100%;
height: auto;
}
#ad720 .ad_container #close {
position: absolute;
top: 3px;
right: 3px;
color: white;
opacity: 0.7;
}
#ad720 .ad_container #close:hover {
opacity: 1;
cursor: pointer;
}
#onexbet {
position: absolute;
top: calc(50% - 25px);
left: -30px;
transform: rotate(-90deg);
}
#onexbet img {
width: 100px;
height: 36.5px;
}
</style>
</head>
<body data-i="35628853" >
<div id="loading_overlay"></div>
<div id="the_frame">
<iframe id="player_iframe" src="//cloudnestra.com/rcp/YzZmNGYzOTQxM2JjYjZkZTdjOWVlYWNmOWQ3ZDVmMDc6UkdGQlZrMVNOMFIwVFRVeFpXbEhNbWN5Y2tnNWFpdDJkVWRTTlVwMWMzWklhMEpHVTBobVYxUlhPRk4xZEhRM1dFWTRjMjlUUnl0d2FITktZVEFyV21WeWRGVXpSbEU0VlVoeE9UQkJhRzVqUlRod1EyNVRTalJCSzBKb016YzNOV3hrY0ZSMlUwbE9Xak5EUTJOR2FIbDVaRlZJYTFvdlpsaHlOMGhDVmtaTFFVNUJkRm9yYkd0SmVUVldPVFJ3THpoUEwzcFpNV3RWWlZBeFRWWjNPVFpQVjFrd2VrcFhWV3hrZDFOb1VuVkJNVXB3YW1KemJWZzNTazV1T1djMFUwMUNNREJOZWxCRk5GazBkVkZaVkM5NFJVOUhVelJWTlhkcE1VRkpNR2hPVkZWMU5rRTVkVTlCU1dRck5ucDJSM0Y0TTNoWUwzTnVLM1paYUhSelExSklXR3RUTTJkSE9VWTVSVGxQVG05VVdEVkxVekJKVkVac1dGSkZWV3BoZEVJMVpuY3pZa3A2Tkhrd1oyVlBhV1p2SzA5a2IzTkxjRXRwT0ZNeFoxRXpObkZUZFc5bU5teFZWMnQxY2tkM2VtMDRhbEYxYlV4eVNrazFUWEV5Vm1RMldWcEZPR2RZWTBocWIxSm9kMU5vTmt0VlVuVXdRVFUyTW5saGJHTlZRMGMxVDNjcmIxbG1SVTFGU1RoMU5WbzFXRTlsTUc4clJqVXplbk5HZEVoTGJISlhlRGcwVVZKcVdFUjJXalpDZGtKaGRETjNjV2R3VjFjeVJ6VTVRU3RpU2t4d1FYUXdRVkpTUmt4QmRtMWhNRmdyVFhaUlNVOHhOVXhHTkhobGJXUktLMWhZY0VsSVltZFdNV1pVWmt4dmEwdE5WM3BVVERKc1dIbHFNa2wyVmxBd2VtRjZRbVpSWjJ4MlUxVldaakpNU0d0NFVtcFRjREptTlc1R05ERlljbll5VFRCU1R6aHFlV2xKUldWV2RHTjZSUzlMTTFFMlQwOHhRM1Z4Um5OaVVYRnlSRzVuVFU1NmFHcFFlWFZQZWpkMVZUQkVNSFJ6TkN0UlpHb3lVa0ZUVGxKalZrMHJTbUZzZGxKR2R6WjNOa00xY1ZsTmQzRmxjRTV4U2s5eUsxQjJUa3h4VjBNMVkyVmFXRGN2Ym1OTlJXNWxOVGx0VEd4V1dqbFRVVXBvZUZkd1UxZE9TR3Q0YUN0WGNuaHdNVTlKUlZOV1l6RjVZMVJCZDAxM056VnlTR1UxYkZNNGVrNDNlbk5hVFhoNGEyNTBNemhYTWxSRU9HVlNOREV6VEROcVRGZDRUVWcwVDBoNlEwcEhaV3g0VUZCdVdrMHdlRlJZUVdVNFRGQm5PVlZyVTJWclRFRjRWMlJ1UXk4NWJXeExSVXQyVTNoa1VtZGxPV2hVU25OVE5HVk9UMW96UVVkYVNGQkNTVVpETnpCT05FWkRNVzQyZGtkdlNWUndVVGxYUWpsdGEzbzVaMHNyZURsTloySnRSRUl4YTBwWGNtbFlUbkJWSzNONllWRXhRMU5vT0VWT2FtMXlha2hSTkRGcWFrZEJlVm80Y2tOQlVpdFVXRXB4TmtNd1VuRkhhemRNTVhkVmVXcFFTSFJrVERab00xRllMMmQzUjBSU1JqQTFjWEZYYlcwclUxSjBOR1JUU1ZCc1lYbEJZbEJLV25KSWVWaENWbFJKWmtaNGRYVmtRMWhxY21odFIyeE9ha3RFWVRjck9WSlBZa2d5UlRSUk9IZE9TV3RNYVZSeVVFeEhNMWQ1ZFRWSFRGbHdhbnBhZVRCNlJUbDRObU5CYzFOWlNuTkRSVGwwWTNoSU9WcDNZbmh1YVdSYVEwaGhNMFpWTDJOWlJUWTVaMnRaU2tKT2IxRk9TbmdyVDA5NVZsZ3dTR1J6TUVwVFZGSmhia2RJTlZGUlNXTk5SMHgyTTAxTlEydE1VRlZvVkRZMVlYSjRRa2hMZEVkbWNsUjJRWEJSWTJ0VWRrRlRVRXBrVERSSVVrbHJTR0ZDYlROa1dFNVNTM1JyTkdZeFZWY3hjbTFRZERnMFFrczBiMkZCYWt4b2RtYzJLMEZ6V0UxSllucElOMGxvU0dadVVUVlhaVmMyZGxKcFFVSkdlRTVUYWpNd2FsUTRVemgyYkRsUmRrNHZTamQ2T1ZWVE5sSlVSM3BJY1RsSVdXMUJXVmRMT0c5TVVHVnZkbXhTYWpJMWVXMXJLek14VmxWa2JqUnRLMDl5VjJkSWVIVTFTaTg1TlZrPQ--" frameborder="0" scrolling="no" allowfullscreen="yes" style="height: 100%; width: 100%;"></iframe>
</div>
<div class="servers" style="display: none;" >
<i class="serversToggle fas fa-cloud"></i>
<div class="serversList">
<div class="server" data-hash="YzZmNGYzOTQxM2JjYjZkZTdjOWVlYWNmOWQ3ZDVmMDc6UkdGQlZrMVNOMFIwVFRVeFpXbEhNbWN5Y2tnNWFpdDJkVWRTTlVwMWMzWklhMEpHVTBobVYxUlhPRk4xZEhRM1dFWTRjMjlUUnl0d2FITktZVEFyV21WeWRGVXpSbEU0VlVoeE9UQkJhRzVqUlRod1EyNVRTalJCSzBKb016YzNOV3hrY0ZSMlUwbE9Xak5EUTJOR2FIbDVaRlZJYTFvdlpsaHlOMGhDVmtaTFFVNUJkRm9yYkd0SmVUVldPVFJ3THpoUEwzcFpNV3RWWlZBeFRWWjNPVFpQVjFrd2VrcFhWV3hrZDFOb1VuVkJNVXB3YW1KemJWZzNTazV1T1djMFUwMUNNREJOZWxCRk5GazBkVkZaVkM5NFJVOUhVelJWTlhkcE1VRkpNR2hPVkZWMU5rRTVkVTlCU1dRck5ucDJSM0Y0TTNoWUwzTnVLM1paYUhSelExSklXR3RUTTJkSE9VWTVSVGxQVG05VVdEVkxVekJKVkVac1dGSkZWV3BoZEVJMVpuY3pZa3A2Tkhrd1oyVlBhV1p2SzA5a2IzTkxjRXRwT0ZNeFoxRXpObkZUZFc5bU5teFZWMnQxY2tkM2VtMDRhbEYxYlV4eVNrazFUWEV5Vm1RMldWcEZPR2RZWTBocWIxSm9kMU5vTmt0VlVuVXdRVFUyTW5saGJHTlZRMGMxVDNjcmIxbG1SVTFGU1RoMU5WbzFXRTlsTUc4clJqVXplbk5HZEVoTGJISlhlRGcwVVZKcVdFUjJXalpDZGtKaGRETjNjV2R3VjFjeVJ6VTVRU3RpU2t4d1FYUXdRVkpTUmt4QmRtMWhNRmdyVFhaUlNVOHhOVXhHTkhobGJXUktLMWhZY0VsSVltZFdNV1pVWmt4dmEwdE5WM3BVVERKc1dIbHFNa2wyVmxBd2VtRjZRbVpSWjJ4MlUxVldaakpNU0d0NFVtcFRjREptTlc1R05ERlljbll5VFRCU1R6aHFlV2xKUldWV2RHTjZSUzlMTTFFMlQwOHhRM1Z4Um5OaVVYRnlSRzVuVFU1NmFHcFFlWFZQZWpkMVZUQkVNSFJ6TkN0UlpHb3lVa0ZUVGxKalZrMHJTbUZzZGxKR2R6WjNOa00xY1ZsTmQzRmxjRTV4U2s5eUsxQjJUa3h4VjBNMVkyVmFXRGN2Ym1OTlJXNWxOVGx0VEd4V1dqbFRVVXBvZUZkd1UxZE9TR3Q0YUN0WGNuaHdNVTlKUlZOV1l6RjVZMVJCZDAxM056VnlTR1UxYkZNNGVrNDNlbk5hVFhoNGEyNTBNemhYTWxSRU9HVlNOREV6VEROcVRGZDRUVWcwVDBoNlEwcEhaV3g0VUZCdVdrMHdlRlJZUVdVNFRGQm5PVlZyVTJWclRFRjRWMlJ1UXk4NWJXeExSVXQyVTNoa1VtZGxPV2hVU25OVE5HVk9UMW96UVVkYVNGQkNTVVpETnpCT05FWkRNVzQyZGtkdlNWUndVVGxYUWpsdGEzbzVaMHNyZURsTloySnRSRUl4YTBwWGNtbFlUbkJWSzNONllWRXhRMU5vT0VWT2FtMXlha2hSTkRGcWFrZEJlVm80Y2tOQlVpdFVXRXB4TmtNd1VuRkhhemRNTVhkVmVXcFFTSFJrVERab00xRllMMmQzUjBSU1JqQTFjWEZYYlcwclUxSjBOR1JUU1ZCc1lYbEJZbEJLV25KSWVWaENWbFJKWmtaNGRYVmtRMWhxY21odFIyeE9ha3RFWVRjck9WSlBZa2d5UlRSUk9IZE9TV3RNYVZSeVVFeEhNMWQ1ZFRWSFRGbHdhbnBhZVRCNlJUbDRObU5CYzFOWlNuTkRSVGwwWTNoSU9WcDNZbmh1YVdSYVEwaGhNMFpWTDJOWlJUWTVaMnRaU2tKT2IxRk9TbmdyVDA5NVZsZ3dTR1J6TUVwVFZGSmhia2RJTlZGUlNXTk5SMHgyTTAxTlEydE1VRlZvVkRZMVlYSjRRa2hMZEVkbWNsUjJRWEJSWTJ0VWRrRlRVRXBrVERSSVVrbHJTR0ZDYlROa1dFNVNTM1JyTkdZeFZWY3hjbTFRZERnMFFrczBiMkZCYWt4b2RtYzJLMEZ6V0UxSllucElOMGxvU0dadVVUVlhaVmMyZGxKcFFVSkdlRTVUYWpNd2FsUTRVemgyYkRsUmRrNHZTamQ2T1ZWVE5sSlVSM3BJY1RsSVdXMUJXVmRMT0c5TVVHVnZkbXhTYWpJMWVXMXJLek14VmxWa2JqUnRLMDl5VjJkSWVIVTFTaTg1TlZrPQ--">CloudStream Pro</div>
<div class="server" data-hash="ZGIxOTQ4OTQ4MWY4ZDcwZTBhYjQwN2IwYTU0NTY2MjQ6T0ZkaFowRnpLMUZ4Y2xCQ2NURlBibXBOVDBOaE9XNVBZMmhZZGs5S2VtcDJURmxvUW5oclVrNHZjRmxDWlM5aWVrTlBLMWhpVmxCcUsxZHNlR041ZGk5UVZpOHZUSFJJTUV0YU56VTFOVmQzTUV4S1VuRnVPR2htTUV0b1dGTk9Ra3Q2ZVhrNVRHRTNiSEpKWkZSRE5tZHpkbEJtVjB4TmFXdFVWV1ZIT0ZGMk5EQlhjM1Y1VkZkNVZUWXpXRVpyVVU4dlNGWXpPWHBLZUV4VVJFTlZhR2xZUm5OUU5tODRhVGxzUTB4dVlqRk1lakE1VUdaMlVtZFZUVkZtWkZSQw--">2Embed</div>
<div class="server" data-hash="MzcwMmE1YTBhYjhmMWNkNjRkNDBiZmM2Njc5YWZhOTg6Y1hVdmJXVXpiM1pVVkhRd1puQjNZWFZxVG1zME5GbG5UeTloYVVSS1FqaDJla0ZKZG1wSlpXTTNSVXRVTjBKVmJ6bFpiRGxxTDBKT00xTkpOV3hxVFhJeVdXcEpiRmhNVEZwWVNGaHhkSEZtT0hwVFltYzlQUT09">Superembed</div>
</div>
</div>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/blueimp-md5/2.16.0/js/md5.min.js" integrity="" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/js-cookie/3.0.5/js.cookie.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js" integrity="sha512-3j3VU6WC5rPQB4Ld1jnLV7Kd5xr+cq9avvhwqzbH/taCRNURoeEpoPBK9pDyeukwSxwRPJ8fDgvYXd6SkaZ2TA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="/base64.js?t=1688387834"></script>
<script src="/sources.js?t=1745104089"></script>
<script src="/reporting.js?t=1688387834"></script>
<script src="/sbx.js?t=1688387834"></script>
<script>
var lc_on = IsLcOn();
var the_iframe = document.getElementById('player_iframe');
current_sub_name = "sub_"+$("body").data("i");
if ($("body").data("s") && $("body").data("e")){
current_sub_name += "_"+$("body").data("s")+"x"+$("body").data("e");
}
var lc_pro_cc = true;
var current_sub_data = 0;
if(lc_on){
var current_sub_data_tmp = JSON.parse(localStorage.getItem(current_sub_name));
}
var sub_hash = '3e8a1fa80db200c46306dc2c84485d64';
/*
if(current_sub_data_tmp != null){
if (typeof current_sub_data_tmp === 'object'){
//console.log(current_sub_data_tmp);
if(current_sub_data_tmp.sub_hash == sub_hash)
current_sub_data = current_sub_data_tmp;
}
}
*/
// pm redirector
window.addEventListener('message', message => {
if (message.source == window) {
return; // Skip message in this event listener
}
if(message.data.type == "PLAYER_EVENT"){
//console.log(message.data);
}
if(message.data == "reload_page"){
window.location.reload();
}
if(message.data == "tvfull"){
$(".servers")[0].css('left', '100px');
}
if(message.source == window.parent){
var the_iframe = document.getElementById('player_iframe');
the_iframe.contentWindow.postMessage(message.data,'*');
}else{
window.parent.postMessage(message.data , '*');
}
});
function IsLcOn(){
var is_on = false;
try {
localStorage.setItem('test_lc' , "1");
if(localStorage.getItem('test_lc') == "1"){
is_on = true
}
}
catch(err) {
return false;
}
return is_on;
}
$("#iFrameId").on("load", function () {
});
$("#ad720 #close").click(function(){
$(this).parent().parent().hide();
$.cookie("ad720", "1" ,
{
expires : 0.001,
path: "/;SameSite=None",
secure: true
}
);
});
$(document).ready(function(){
$(".servers").show();
if(window.frameElement === null){
$("#top_buttons_parent").show();
}else{
var ref = window.frameElement.getAttribute('data-ref');
if(ref != null){
$(".servers").css("left","100px")
if(ref.length > 3){
$.get("/is_vip_str.php?ref="+encodeURIComponent(ref), function(data, status){
if(data == "1"){
$("#top_buttons_parent").hide();
}else{
$("#top_buttons_parent").show();
}
});
}else{
$("#top_buttons_parent").show();
}
}else{
$("#top_buttons_parent").show();
}
}
});
</script>
<!-- Histats.com (div with counter) --><div id="histats_counter"></div>
<!-- Histats.com START (aync)-->
<script type="text/javascript">var _Hasync= _Hasync|| [];
_Hasync.push(['Histats.start', '1,4873540,4,511,95,18,00000000']);
_Hasync.push(['Histats.fasi', '1']);
_Hasync.push(['Histats.track_hits', '']);
_Hasync.push(['Histats.framed_page', '']);
(function() {
var hs = document.createElement('script'); hs.type = 'text/javascript'; hs.async = true;
hs.src = ('//s10.histats.com/js15_as.js');
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(hs);
})();</script>
<noscript><a href="/" target="_blank"><img src="//sstatic1.histats.com/0.gif?4873540&101" alt="free counter with statistics" border="0"></a></noscript>
<!-- Histats.com END -->
<script src='https://cdn.vidsrc.stream/disable-devtool@0.3.6/disable-devtool.min.js#/misdir.js'></script>
<script>
DisableDevtool({
clearLog: true ,// Whether to clear the log every time
disableSelect: true , // Whether to disable selection text Default is false
disableCopy: true , // Whether to disable copying, default is false
disableCut: true , // Whether to disable cutting, default is false
disablePaste: true ,
disableIframeParents: false // Whether all parent windows are disabled in the iframe
})
</script>
<script>
document.write("<script type='text/javascript' src='/f59d610a61063c7ef3ccdc1fd40d2ae6.js?_=1749759527'><\/script>");
</script>
</body>
</html>