feat(handler): add VidSrc with CloudStream Pro support

This commit is contained in:
WebStreamr 2025-06-11 20:46:08 +00:00
parent d0efc0783f
commit dd6d485340
No known key found for this signature in database
18 changed files with 2525 additions and 8 deletions

View file

@ -9,6 +9,7 @@ import { Fsst } from './Fsst';
import { SuperVideo } from './SuperVideo';
import { KinoGer } from './KinoGer';
import { Soaper } from './Soaper';
import { VidSrc } from './VidSrc';
import { ExternalUrl } from './ExternalUrl';
import { NotFoundError } from '../error';
@ -26,6 +27,7 @@ export class ExtractorRegistry {
new SuperVideo(fetcher),
new KinoGer(fetcher),
new Soaper(fetcher),
new VidSrc(fetcher),
new ExternalUrl(fetcher), // fallback extractor which must come last
];
this.urlResultCache = new TTLCache({ max: 1024 });

61
src/extractor/VidSrc.ts Normal file
View file

@ -0,0 +1,61 @@
import * as cheerio from 'cheerio';
import slugify from 'slugify';
import { Extractor } from './types';
import { Fetcher, guessFromPlaylist } from '../utils';
import { Context, Meta, UrlResult } from '../types';
export class VidSrc implements Extractor {
readonly id = 'vidsrc';
readonly label = 'VidSrc';
readonly ttl = 900000; // 15m
private readonly fetcher: Fetcher;
constructor(fetcher: Fetcher) {
this.fetcher = fetcher;
}
readonly supports = (_ctx: Context, url: URL): boolean => null !== url.host.match(/vidsrc/);
readonly normalize = (url: URL): URL => url;
readonly extract = async (ctx: Context, url: URL, meta: Meta): Promise<UrlResult[]> => {
const html = await this.fetcher.text(ctx, url);
const $ = cheerio.load(html);
const iframeUrl = new URL(($('#player_iframe').attr('src') as string).replace(/^\/\//, 'https://'));
const title = $('title').text().trim();
return Promise.all(
$('.server')
.map((_i, el) => ({ serverName: $(el).text(), dataHash: $(el).data('hash') }))
.toArray()
.filter(({ serverName }) => serverName === 'CloudStream Pro')
.map(async ({ serverName, dataHash }) => {
const iframeHtml = await this.fetcher.text(ctx, new URL(`/rcp/${dataHash}`, iframeUrl.origin));
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 m3u8Url = new URL(fileMatch[1] as string);
const height = await guessFromPlaylist(ctx, this.fetcher, m3u8Url, { noReferer: true });
return {
url: m3u8Url,
label: `${this.label} (${serverName})`,
sourceId: `${this.id}_${slugify(serverName)}_${meta.countryCode.toLowerCase()}`,
ttl: this.ttl,
meta: {
...meta,
title,
...(height && { height }),
},
};
}),
);
};
}

View file

@ -0,0 +1,29 @@
import winston from 'winston';
import { VidSrc } from './VidSrc';
import { Fetcher, ImdbId } from '../utils';
import { ExtractorRegistry } from '../extractor';
import { Context } from '../types';
jest.mock('../utils/Fetcher');
const logger = winston.createLogger({ transports: [new winston.transports.Console({ level: 'nope' })] });
// @ts-expect-error No constructor args needed
const fetcher = new Fetcher();
const ctx: Context = { id: 'id', ip: '127.0.0.1', config: { en: 'on' } };
describe('VidSrc', () => {
let handler: VidSrc;
beforeEach(() => {
handler = new VidSrc(fetcher, new ExtractorRegistry(logger, fetcher));
});
test('handle imdb black mirror s4e2', async () => {
const streams = await handler.handle(ctx, 'series', new ImdbId('tt2085059', 4, 2));
expect(streams).toMatchSnapshot();
});
test('handle imdb full metal jacket', async () => {
const streams = await handler.handle(ctx, 'series', new ImdbId('tt0093058', undefined, undefined));
expect(streams).toMatchSnapshot();
});
});

37
src/handler/VidSrc.ts Normal file
View file

@ -0,0 +1,37 @@
import { ContentType } from 'stremio-addon-sdk';
import { Handler } from './types';
import { Fetcher, getImdbId, Id } from '../utils';
import { ExtractorRegistry } from '../extractor';
import { Context, CountryCode } from '../types';
export class VidSrc implements Handler {
readonly id = 'vidsrc';
readonly label = 'VidSrc';
readonly contentTypes: ContentType[] = ['movie', 'series'];
readonly countryCodes: CountryCode[] = ['en'];
private readonly baseUrl = 'https://vidsrc.xyz';
private readonly fetcher: Fetcher;
private readonly extractorRegistry: ExtractorRegistry;
constructor(fetcher: Fetcher, extractorRegistry: ExtractorRegistry) {
this.fetcher = fetcher;
this.extractorRegistry = extractorRegistry;
}
readonly handle = async (ctx: Context, _type: string, id: Id) => {
const imdbId = await getImdbId(ctx, this.fetcher, id);
const embedUrl = imdbId.season
? new URL(`/embed/tv/${imdbId.id}/${imdbId.season}/${imdbId.episode}`, this.baseUrl)
: new URL(`/embed/movie/${imdbId.id}`, this.baseUrl);
return [
await this.extractorRegistry.handle(ctx, embedUrl, { countryCode: 'en' }),
];
};
}

View file

@ -0,0 +1,37 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`VidSrc handle imdb black mirror s4e2 1`] = `
[
[
{
"label": "VidSrc (CloudStream Pro)",
"meta": {
"countryCode": "en",
"height": 1040,
"title": "Black Mirror (2011) S04E02",
},
"sourceId": "vidsrc_CloudStream-Pro_en",
"ttl": 900000,
"url": "https://tmstr5.shadowlandschronicles.com/pl/H4sIAAAAAAAAAxXK226DIAAA0F8CrGvd27oCq1UcyP1NQdtUaozptsyvX3aez9DBQxgjgBmAPeqK_Yh2eTeG4tAPMCDwysHNaeDbevKVMM.XgMWps2XtTWGkLR8M.feQ2KroeeXG_db4vCq82.T8lkerZ0OTlLLsWuA2lnwT1FK7e6r0B5nEHL_4pNAgme2sJj28_kT0f0kuya0Sj6W6wONRnkrpAHP9vZwEzRE3T8JOohmwtwMlTimNeiw2BQWRsM4CKZ3PFuUyT1usLy6LWb3F1s3p0hPRSpqqxibcPpaG3.Mq5qS4vn4bqm.NTp8KFzOfmBykWP4AirgCPSEBAAA-/master.m3u8",
},
],
]
`;
exports[`VidSrc handle imdb full metal jacket 1`] = `
[
[
{
"label": "VidSrc (CloudStream Pro)",
"meta": {
"countryCode": "en",
"height": 714,
"title": "Full Metal Jacket (1987)",
},
"sourceId": "vidsrc_CloudStream-Pro_en",
"ttl": 900000,
"url": "https://tmstr4.shadowlandschronicles.com/pl/H4sIAAAAAAAAAwXB7XqCIBgA0FtCsa_97IMcFSa.gPBPwc1H0Fm5Wl79zllVS4eRdZv10uJkuarrJF7Yr8at1lWyRvZDC7cFP3IT2YU4PHAmiGKB59C1Z41bbUQ7czDQ.AgpMv6csHtqNTFGzMMGessV_bOSvRkadab4riBhWx0nxuPxDtFnXMSjqAOdM5AtK3lyjjxiyD.LYAaRbqvC8_MF_L0Bsq8GeuGHxUlLU9rSZapvkSTyUfsNkcEJi8eb9jRpRPJkMTO6H4mV33cnaCqP_LeIpw46iVlHrxDp2c6G5ILtbeoC9I42itxy_3plqev50N5FLDHfTS94T1AQKXUZrmwOA1dtVIFFOaDNP7JZ1PhBAQAA/master.m3u8",
},
],
]
`;

View file

@ -8,4 +8,5 @@ export * from './MostraGuarda';
export * from './Soaper';
export * from './StreamKiste';
export * from './VerHdLink';
export * from './VidSrc';
export * from './types';

View file

@ -15,6 +15,7 @@ import {
import { ExtractorRegistry } from './extractor';
import { ConfigureController, ManifestController, StreamController } from './controller';
import { envGet, envIsProd, Fetcher, StreamResolver, tmdbFetch, TmdbId } from './utils';
import { VidSrc } from './handler/VidSrc';
const logger = winston.createLogger({
transports: [
@ -34,6 +35,7 @@ const extractorRegistry = new ExtractorRegistry(logger, fetcher);
const handlers: Handler[] = [
// EN
new Soaper(fetcher, extractorRegistry),
new VidSrc(fetcher, extractorRegistry),
// ES / MX
new CineHDPlus(fetcher, extractorRegistry),
new VerHdLink(fetcher, extractorRegistry),

View file

@ -40,8 +40,9 @@ interface FlareSolverrResult {
version: string;
}
type CustomRequestInit = RequestInit & {
export type CustomRequestInit = RequestInit & {
noFlareSolverr?: boolean;
noReferer?: boolean;
queueLimit?: number;
queueErrorLimit?: number;
timeout?: number;
@ -78,6 +79,8 @@ export class Fetcher {
public readonly getInit = (ctx: Context, url: URL, init?: CustomRequestInit): CustomRequestInit => {
const cookieString = this.cookieJar.getCookieStringSync(url.href);
const noReferer = init?.noReferer ?? false;
return {
...init,
headers: {
@ -86,7 +89,7 @@ export class Fetcher {
...(cookieString && { Cookie: cookieString }),
'Forwarded': `for=${ctx.ip}`,
'Priority': 'u=0',
'Referer': `${ctx.referer?.href ?? url.origin}`,
...(!noReferer && { Referer: `${ctx.referer?.href ?? url.origin}` }),
'User-Agent': this.hostUserAgentMap.get(url.host) ?? 'node',
'X-Forwarded-For': ctx.ip,
'X-Forwarded-Proto': url.protocol.slice(0, -1),

View file

@ -0,0 +1,748 @@
<!DOCTYPE html>
<html>
<head>
<title>Full Metal Jacket (1987)</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://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;
}
#pjs_player_parent_subtitle {
display: block !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";
}
: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="0093058" >
<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="10-9" />
<p>
10-9 = <input id="solution" type="number" name="solution" min="0" max="9"/>
</p>
</div>
<button id="sentReport" data-hash="MzcwMDNhOWIzZTA0MGQyYWE5MmI2ZjQ1NTFmMjEzMDQ6TUdkdGNsUmtVVk51VDFOdVVHRTVRMGh0YjBsV04xcFpWRTE2UkZWbFVsSjRNMWwzV0ZSTWNtSlpiV2MzTkZoR1VrbExSSFpJUm5jNFQzTTRUelZFYkdNd09VeG5Ra2xOTm1sSlZIWldTelJoVVZoRFlWbHhMMUphU0RKdll6WjZSR05uVml0RldEbEtOMjl6Um1OYVJGSkNUREprZFZGSFMwczROVEZuYURKSlpWSmtTMkZ5WjAwMFlVVklaVmQxVFcxcGMxaFlialF3U1VWV2JFMXBSVmd4VG5od2NXUXZWMGxJYUUxdGJqSnpVRVpYY0hSUVJIRklNVlIwZEVSNFNtaHVOak53V2tsdFRucG5hbWRXYmtWU05YQjBjREJNTm5veVptMXhTbkpMZFRkM1RtVjRUa3d2VWpkdmFHaHlVVVoySzB4WGFXZ3JhMmQ2WTBkMGNITk9Na3hwYnpGYWRHZzFTRFFyYkhFMFpHbEhhbXBHVWxGRWFWcHpUMkZyYTJsd0wyUk5UamxCTDJ0cWQyVk9UbFJNU1dveGMzaHRUMGx4WVNzeU1FcGtSM1JTZGpOemJFMDVUMUJ2VURnclQybDRNRnBFVTJ4T01reGFURnAzV1RaellqQmlZbVp0WTFFeVJ6WktPV05KVW5WSFZHdEhSa3B2TDBSTlRrSnhNa3hCUzFkMVZFOXNVbnBQYkcxSFEyeE1WVzlFVVVRelRFVmhTM0F3UVdGd2JXeHdkVUUwWWpCc2VpOUtlV05ZT1RKRWRYQlVOalZtU0ZaTGJtNDFLek5KV1hKTlltSnBibFZDZWpKdGMwVnBLMXB4Wm5sTWExWktRazV0WkdSTVFreHRibXhLYzB4YVJYaFhlbkpPUlRaNk5sbFBiMUpxY1ROaGNtUnFXVzAwVDFGYVZuUkdTVFZuZVRWVVRYazNaR2QxVm13MGNpc3haREpxWkc5RVRWRnJURlJyTlhGdWFYTk1hM0ZGWkhSTWJVUTBUQ3N2WnpKdmRYSm1aVkpZT0VFNVJXOWpSRlIyVFhrcldWTm9ia05XVVdsTU16ZGhSekozWVRjdk5sbDBORTAyVlRoM2VqbE5jV3hFZFRZdlExRnRiM0ZzVVhKdmEyOUZVRko1V0RSNlVGbEVaa2RFVFd4ck1sWnJlWEl2TVcxeFJsbzNaV29yV2s4dmRtcGFTblpITlRCNWJEaG1OVTEzZHpacFVYRTNhMFppVkdoTmIxVTVTWFJxY0ZnMlNrWkdVbGs0WXpaR1R6WXhXVXRFVW5oTFQxTmpNRTlvWW1oSk1VY3lkbXhYVVZSS1luUTFRazU0YlhjeE1WRjRZbE5LTVROcFZWSnllVEpTYjFwTE0wNHhabWxhYzJKWk9Xb3pZblpzVERCMWRqaFVVbTlyU1NzMFNFTXpZMlE0YW1od1IxWkVVR0p2V1UxWmNVTXJVMmxpZW5OSWJrSTFRV3REVEZwSGNFdEJjR3g1V0cxSlJVNTFaWFl2YTFjdmRHNWtaV1p3VGtVM0x6QTNTa0lyTm5veEwwRTRSazFUVWpoVGJVdFJjVmhuYVhGdmMzUktSME1yUjJ4NVoyUXhOa2xSV0V0NWJXbHFWV1k1TVRJdlZHNTJkVlZpVTNsMFYwaFJjVWRIUm5KSVdUaGFhVEIyVWxGNVEwWlFNR0pLVTFkNmFVSjZaRzR4VDNoVWFYTkpSRVp5VWpWWmJ6SlBNazVLVjFwdWMwUnBkVU53VmtKTllXcGlZblJ6Y0V4SGNXbEZjSEFyU1RWa2NFVmtXbkl4UlV4T1NFUlJUemRYYlhFMlEyOVRkWHB0YTIweFdqZGFNRm8yVTAxc01tSlFUMmROVEc5WmFtWTBWVU5MY2xKdGVIazVabVZWWjJwVWJqUTRUekptTWtKclRuZFFjRkZwYUhwS2FYaERkbThyUVVGek9WSjBSRUYwV0VrMGNHNVRkbFpaWlZsWlRFdGFVMk5XY1dJM01EUXJSRzF6YlVneGFtOXphV1JxUjFKbU5EWlBZV1JoYkRGc05IcGtUVTE0WVhsVlpuaEtWazU1VVdnMWVYWlJlVkJ3UTBZMVFUMDk-">Sent report</button>
</div>
</div>
<script src="https://unpkg.com/jquery@3.2.1/dist/jquery.min.js"></script>
<script src="https://unpkg.com/jquery.cookie@1.4.1/jquery.cookie.js"></script>
<script src="/pjs/pjs_main_drv_cast.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://unpkg.com/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('RnVsbCBNZXRhbCBKYWNrZXQgKDE5ODcpIFtCbHVSYXldIFsxMDgwcF0gW1lUUy5BTV0vRnVsbC5NZXRhbC5KYWNrZXQuMTk4Ny4xMDgwcC5CbHVSYXkueDI2NC1bWVRTLkFNXS5tcDQ='));
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 pass_path = "//tmstr4.shadowlandschronicles.com/rt_ping.php";
$.get(pass_path);
setInterval(function(){
$.get(pass_path, function(data, status){
//console.log(data);
});
}, 60000);
var subs_shown = false;
var the_subtitles = [];
var default_subtitles = "";
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:"32f0d7378eeb70a91b5b40a52a62133a",file:"", poster:"//image.tmdb.org/t/p/w780/3k2TRmqMjgt7tcwkYwZQdctnty3.jpg" , ready:"PlayerReady" , autoplay:1 , subtitle: default_subtitles});
var player = new Playerjs({id:"player_parent", file: 'https://tmstr4.shadowlandschronicles.com/pl/H4sIAAAAAAAAAwXB7XqCIBgA0FtCsa_97IMcFSa.gPBPwc1H0Fm5Wl79zllVS4eRdZv10uJkuarrJF7Yr8at1lWyRvZDC7cFP3IT2YU4PHAmiGKB59C1Z41bbUQ7czDQ.AgpMv6csHtqNTFGzMMGessV_bOSvRkadab4riBhWx0nxuPxDtFnXMSjqAOdM5AtK3lyjjxiyD.LYAaRbqvC8_MF_L0Bsq8GeuGHxUlLU9rSZapvkSTyUfsNkcEJi8eb9jRpRPJkMTO6H4mV33cnaCqP_LeIpw46iVlHrxDp2c6G5ILtbeoC9I42itxy_3plqev50N5FLDHfTS94T1AQKXUZrmwOA1dtVIFFOaDNP7JZ1PhBAQAA/master.m3u8' , cuid:"32f0d7378eeb70a91b5b40a52a62133a",poster:"//image.tmdb.org/t/p/w780/3k2TRmqMjgt7tcwkYwZQdctnty3.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(){
//console.log(this.value);
//console.log(this.duration);
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("/fsdD/MzcwMDNhOWIzZTA0MGQyYWE5MmI2ZjQ1NTFmMjEzMDQ6TUdkdGNsUmtVVk51VDFOdVVHRTVRMGh0YjBsV04xcFpWRTE2UkZWbFVsSjRNMWwzV0ZSTWNtSlpiV2MzTkZoR1VrbExSSFpJUm5jNFQzTTRUelZFYkdNd09VeG5Ra2xOTm1sSlZIWldTelJoVVZoRFlWbHhMMUphU0RKdll6WjZSR05uVml0RldEbEtOMjl6Um1OYVJGSkNUREprZFZGSFMwczROVEZuYURKSlpWSmtTMkZ5WjAwMFlVVklaVmQxVFcxcGMxaFlialF3U1VWV2JFMXBSVmd4VG5od2NXUXZWMGxJYUUxdGJqSnpVRVpYY0hSUVJIRklNVlIwZEVSNFNtaHVOak53V2tsdFRucG5hbWRXYmtWU05YQjBjREJNTm5veVptMXhTbkpMZFRkM1RtVjRUa3d2VWpkdmFHaHlVVVoySzB4WGFXZ3JhMmQ2WTBkMGNITk9Na3hwYnpGYWRHZzFTRFFyYkhFMFpHbEhhbXBHVWxGRWFWcHpUMkZyYTJsd0wyUk5UamxCTDJ0cWQyVk9UbFJNU1dveGMzaHRUMGx4WVNzeU1FcGtSM1JTZGpOemJFMDVUMUJ2VURnclQybDRNRnBFVTJ4T01reGFURnAzV1RaellqQmlZbVp0WTFFeVJ6WktPV05KVW5WSFZHdEhSa3B2TDBSTlRrSnhNa3hCUzFkMVZFOXNVbnBQYkcxSFEyeE1WVzlFVVVRelRFVmhTM0F3UVdGd2JXeHdkVUUwWWpCc2VpOUtlV05ZT1RKRWRYQlVOalZtU0ZaTGJtNDFLek5KV1hKTlltSnBibFZDZWpKdGMwVnBLMXB4Wm5sTWExWktRazV0WkdSTVFreHRibXhLYzB4YVJYaFhlbkpPUlRaNk5sbFBiMUpxY1ROaGNtUnFXVzAwVDFGYVZuUkdTVFZuZVRWVVRYazNaR2QxVm13MGNpc3haREpxWkc5RVRWRnJURlJyTlhGdWFYTk1hM0ZGWkhSTWJVUTBUQ3N2WnpKdmRYSm1aVkpZT0VFNVJXOWpSRlIyVFhrcldWTm9ia05XVVdsTU16ZGhSekozWVRjdk5sbDBORTAyVlRoM2VqbE5jV3hFZFRZdlExRnRiM0ZzVVhKdmEyOUZVRko1V0RSNlVGbEVaa2RFVFd4ck1sWnJlWEl2TVcxeFJsbzNaV29yV2s4dmRtcGFTblpITlRCNWJEaG1OVTEzZHpacFVYRTNhMFppVkdoTmIxVTVTWFJxY0ZnMlNrWkdVbGs0WXpaR1R6WXhXVXRFVW5oTFQxTmpNRTlvWW1oSk1VY3lkbXhYVVZSS1luUTFRazU0YlhjeE1WRjRZbE5LTVROcFZWSnllVEpTYjFwTE0wNHhabWxhYzJKWk9Xb3pZblpzVERCMWRqaFVVbTlyU1NzMFNFTXpZMlE0YW1od1IxWkVVR0p2V1UxWmNVTXJVMmxpZW5OSWJrSTFRV3REVEZwSGNFdEJjR3g1V0cxSlJVNTFaWFl2YTFjdmRHNWtaV1p3VGtVM0x6QTNTa0lyTm5veEwwRTRSazFUVWpoVGJVdFJjVmhuYVhGdmMzUktSME1yUjJ4NVoyUXhOa2xSV0V0NWJXbHFWV1k1TVRJdlZHNTJkVlZpVTNsMFYwaFJjVWRIUm5KSVdUaGFhVEIyVWxGNVEwWlFNR0pLVTFkNmFVSjZaRzR4VDNoVWFYTkpSRVp5VWpWWmJ6SlBNazVLVjFwdWMwUnBkVU53VmtKTllXcGlZblJ6Y0V4SGNXbEZjSEFyU1RWa2NFVmtXbkl4UlV4T1NFUlJUemRYYlhFMlEyOVRkWHB0YTIweFdqZGFNRm8yVTAxc01tSlFUMmROVEc5WmFtWTBWVU5MY2xKdGVIazVabVZWWjJwVWJqUTRUekptTWtKclRuZFFjRkZwYUhwS2FYaERkbThyUVVGek9WSjBSRUYwV0VrMGNHNVRkbFpaWlZsWlRFdGFVMk5XY1dJM01EUXJSRzF6YlVneGFtOXphV1JxUjFKbU5EWlBZV1JoYkRGc05IcGtUVTE0WVhsVlpuaEtWazU1VVdnMWVYWlJlVkJ3UTBZMVFUMDk-");
}
/*
if(this.value > (this.duration*0.05)){
this.report = 5;
$.get("/vsdV/MzcwMDNhOWIzZTA0MGQyYWE5MmI2ZjQ1NTFmMjEzMDQ6TUdkdGNsUmtVVk51VDFOdVVHRTVRMGh0YjBsV04xcFpWRTE2UkZWbFVsSjRNMWwzV0ZSTWNtSlpiV2MzTkZoR1VrbExSSFpJUm5jNFQzTTRUelZFYkdNd09VeG5Ra2xOTm1sSlZIWldTelJoVVZoRFlWbHhMMUphU0RKdll6WjZSR05uVml0RldEbEtOMjl6Um1OYVJGSkNUREprZFZGSFMwczROVEZuYURKSlpWSmtTMkZ5WjAwMFlVVklaVmQxVFcxcGMxaFlialF3U1VWV2JFMXBSVmd4VG5od2NXUXZWMGxJYUUxdGJqSnpVRVpYY0hSUVJIRklNVlIwZEVSNFNtaHVOak53V2tsdFRucG5hbWRXYmtWU05YQjBjREJNTm5veVptMXhTbkpMZFRkM1RtVjRUa3d2VWpkdmFHaHlVVVoySzB4WGFXZ3JhMmQ2WTBkMGNITk9Na3hwYnpGYWRHZzFTRFFyYkhFMFpHbEhhbXBHVWxGRWFWcHpUMkZyYTJsd0wyUk5UamxCTDJ0cWQyVk9UbFJNU1dveGMzaHRUMGx4WVNzeU1FcGtSM1JTZGpOemJFMDVUMUJ2VURnclQybDRNRnBFVTJ4T01reGFURnAzV1RaellqQmlZbVp0WTFFeVJ6WktPV05KVW5WSFZHdEhSa3B2TDBSTlRrSnhNa3hCUzFkMVZFOXNVbnBQYkcxSFEyeE1WVzlFVVVRelRFVmhTM0F3UVdGd2JXeHdkVUUwWWpCc2VpOUtlV05ZT1RKRWRYQlVOalZtU0ZaTGJtNDFLek5KV1hKTlltSnBibFZDZWpKdGMwVnBLMXB4Wm5sTWExWktRazV0WkdSTVFreHRibXhLYzB4YVJYaFhlbkpPUlRaNk5sbFBiMUpxY1ROaGNtUnFXVzAwVDFGYVZuUkdTVFZuZVRWVVRYazNaR2QxVm13MGNpc3haREpxWkc5RVRWRnJURlJyTlhGdWFYTk1hM0ZGWkhSTWJVUTBUQ3N2WnpKdmRYSm1aVkpZT0VFNVJXOWpSRlIyVFhrcldWTm9ia05XVVdsTU16ZGhSekozWVRjdk5sbDBORTAyVlRoM2VqbE5jV3hFZFRZdlExRnRiM0ZzVVhKdmEyOUZVRko1V0RSNlVGbEVaa2RFVFd4ck1sWnJlWEl2TVcxeFJsbzNaV29yV2s4dmRtcGFTblpITlRCNWJEaG1OVTEzZHpacFVYRTNhMFppVkdoTmIxVTVTWFJxY0ZnMlNrWkdVbGs0WXpaR1R6WXhXVXRFVW5oTFQxTmpNRTlvWW1oSk1VY3lkbXhYVVZSS1luUTFRazU0YlhjeE1WRjRZbE5LTVROcFZWSnllVEpTYjFwTE0wNHhabWxhYzJKWk9Xb3pZblpzVERCMWRqaFVVbTlyU1NzMFNFTXpZMlE0YW1od1IxWkVVR0p2V1UxWmNVTXJVMmxpZW5OSWJrSTFRV3REVEZwSGNFdEJjR3g1V0cxSlJVNTFaWFl2YTFjdmRHNWtaV1p3VGtVM0x6QTNTa0lyTm5veEwwRTRSazFUVWpoVGJVdFJjVmhuYVhGdmMzUktSME1yUjJ4NVoyUXhOa2xSV0V0NWJXbHFWV1k1TVRJdlZHNTJkVlZpVTNsMFYwaFJjVWRIUm5KSVdUaGFhVEIyVWxGNVEwWlFNR0pLVTFkNmFVSjZaRzR4VDNoVWFYTkpSRVp5VWpWWmJ6SlBNazVLVjFwdWMwUnBkVU53VmtKTllXcGlZblJ6Y0V4SGNXbEZjSEFyU1RWa2NFVmtXbkl4UlV4T1NFUlJUemRYYlhFMlEyOVRkWHB0YTIweFdqZGFNRm8yVTAxc01tSlFUMmROVEc5WmFtWTBWVU5MY2xKdGVIazVabVZWWjJwVWJqUTRUekptTWtKclRuZFFjRkZwYUhwS2FYaERkbThyUVVGek9WSjBSRUYwV0VrMGNHNVRkbFpaWlZsWlRFdGFVMk5XY1dJM01EUXJSRzF6YlVneGFtOXphV1JxUjFKbU5EWlBZV1JoYkRGc05IcGtUVTE0WVhsVlpuaEtWazU1VVdnMWVYWlJlVkJ3UTBZMVFUMDk-");
}
*/
}
}
},
setDur: function(dur){
this.duration = dur;
}
}
function PlayerReady(){
gen_subs_el();
gen_reporting_el();
}
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: "tt0093058",
tmdbId: 600,
type: "movie",
season: false,
episode: false,
currentTime: 0,
duration: 0
};
function PlayerjsEvents(event,id,data){
if(event=="play"){
pm_player_data.data.event = "play";
window.parent.postMessage(pm_player_data , '*');
//console.log(pm_player_data);
if(!watched.interval){
watched.interval = setInterval(function(){
if(player.api("playing")){
watched.set(watched.value+1);
if(watched.value % 60 == 0){
//$.get("/watched");
}
}
},1000);
}
}
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=="networkErrorHls"){
data_parsed = JSON.parse(data);
if(data_parsed.details == "fragLoadError" && data_parsed.fatal && watched.value < 60){
window.location.replace("https://cloudnestra.com/prorcps2/MzcwMDNhOWIzZTA0MGQyYWE5MmI2ZjQ1NTFmMjEzMDQ6TUdkdGNsUmtVVk51VDFOdVVHRTVRMGh0YjBsV04xcFpWRTE2UkZWbFVsSjRNMWwzV0ZSTWNtSlpiV2MzTkZoR1VrbExSSFpJUm5jNFQzTTRUelZFYkdNd09VeG5Ra2xOTm1sSlZIWldTelJoVVZoRFlWbHhMMUphU0RKdll6WjZSR05uVml0RldEbEtOMjl6Um1OYVJGSkNUREprZFZGSFMwczROVEZuYURKSlpWSmtTMkZ5WjAwMFlVVklaVmQxVFcxcGMxaFlialF3U1VWV2JFMXBSVmd4VG5od2NXUXZWMGxJYUUxdGJqSnpVRVpYY0hSUVJIRklNVlIwZEVSNFNtaHVOak53V2tsdFRucG5hbWRXYmtWU05YQjBjREJNTm5veVptMXhTbkpMZFRkM1RtVjRUa3d2VWpkdmFHaHlVVVoySzB4WGFXZ3JhMmQ2WTBkMGNITk9Na3hwYnpGYWRHZzFTRFFyYkhFMFpHbEhhbXBHVWxGRWFWcHpUMkZyYTJsd0wyUk5UamxCTDJ0cWQyVk9UbFJNU1dveGMzaHRUMGx4WVNzeU1FcGtSM1JTZGpOemJFMDVUMUJ2VURnclQybDRNRnBFVTJ4T01reGFURnAzV1RaellqQmlZbVp0WTFFeVJ6WktPV05KVW5WSFZHdEhSa3B2TDBSTlRrSnhNa3hCUzFkMVZFOXNVbnBQYkcxSFEyeE1WVzlFVVVRelRFVmhTM0F3UVdGd2JXeHdkVUUwWWpCc2VpOUtlV05ZT1RKRWRYQlVOalZtU0ZaTGJtNDFLek5KV1hKTlltSnBibFZDZWpKdGMwVnBLMXB4Wm5sTWExWktRazV0WkdSTVFreHRibXhLYzB4YVJYaFhlbkpPUlRaNk5sbFBiMUpxY1ROaGNtUnFXVzAwVDFGYVZuUkdTVFZuZVRWVVRYazNaR2QxVm13MGNpc3haREpxWkc5RVRWRnJURlJyTlhGdWFYTk1hM0ZGWkhSTWJVUTBUQ3N2WnpKdmRYSm1aVkpZT0VFNVJXOWpSRlIyVFhrcldWTm9ia05XVVdsTU16ZGhSekozWVRjdk5sbDBORTAyVlRoM2VqbE5jV3hFZFRZdlExRnRiM0ZzVVhKdmEyOUZVRko1V0RSNlVGbEVaa2RFVFd4ck1sWnJlWEl2TVcxeFJsbzNaV29yV2s4dmRtcGFTblpITlRCNWJEaG1OVTEzZHpacFVYRTNhMFppVkdoTmIxVTVTWFJxY0ZnMlNrWkdVbGs0WXpaR1R6WXhXVXRFVW5oTFQxTmpNRTlvWW1oSk1VY3lkbXhYVVZSS1luUTFRazU0YlhjeE1WRjRZbE5LTVROcFZWSnllVEpTYjFwTE0wNHhabWxhYzJKWk9Xb3pZblpzVERCMWRqaFVVbTlyU1NzMFNFTXpZMlE0YW1od1IxWkVVR0p2V1UxWmNVTXJVMmxpZW5OSWJrSTFRV3REVEZwSGNFdEJjR3g1V0cxSlJVNTFaWFl2YTFjdmRHNWtaV1p3VGtVM0x6QTNTa0lyTm5veEwwRTRSazFUVWpoVGJVdFJjVmhuYVhGdmMzUktSME1yUjJ4NVoyUXhOa2xSV0V0NWJXbHFWV1k1TVRJdlZHNTJkVlZpVTNsMFYwaFJjVWRIUm5KSVdUaGFhVEIyVWxGNVEwWlFNR0pLVTFkNmFVSjZaRzR4VDNoVWFYTkpSRVp5VWpWWmJ6SlBNazVLVjFwdWMwUnBkVU53VmtKTllXcGlZblJ6Y0V4SGNXbEZjSEFyU1RWa2NFVmtXbkl4UlV4T1NFUlJUemRYYlhFMlEyOVRkWHB0YTIweFdqZGFNRm8yVTAxc01tSlFUMmROVEc5WmFtWTBWVU5MY2xKdGVIazVabVZWWjJwVWJqUTRUekptTWtKclRuZFFjRkZwYUhwS2FYaERkbThyUVVGek9WSjBSRUYwV0VrMGNHNVRkbFpaWlZsWlRFdGFVMk5XY1dJM01EUXJSRzF6YlVneGFtOXphV1JxUjFKbU5EWlBZV1JoYkRGc05IcGtUVTE0WVhsVlpuaEtWazU1VVdnMWVYWlJlVkJ3UTBZMVFUMDk-");
}
}
//if(event=="loaderror"){
if(data == "manifestLoadError (networkError)" || data == "not found" || data == "Media failed to decode"){
//reloadWithPost({ fallback_url_path: '/prorcps2/'});
window.location.replace("https://cloudnestra.com/prorcps2/MzcwMDNhOWIzZTA0MGQyYWE5MmI2ZjQ1NTFmMjEzMDQ6TUdkdGNsUmtVVk51VDFOdVVHRTVRMGh0YjBsV04xcFpWRTE2UkZWbFVsSjRNMWwzV0ZSTWNtSlpiV2MzTkZoR1VrbExSSFpJUm5jNFQzTTRUelZFYkdNd09VeG5Ra2xOTm1sSlZIWldTelJoVVZoRFlWbHhMMUphU0RKdll6WjZSR05uVml0RldEbEtOMjl6Um1OYVJGSkNUREprZFZGSFMwczROVEZuYURKSlpWSmtTMkZ5WjAwMFlVVklaVmQxVFcxcGMxaFlialF3U1VWV2JFMXBSVmd4VG5od2NXUXZWMGxJYUUxdGJqSnpVRVpYY0hSUVJIRklNVlIwZEVSNFNtaHVOak53V2tsdFRucG5hbWRXYmtWU05YQjBjREJNTm5veVptMXhTbkpMZFRkM1RtVjRUa3d2VWpkdmFHaHlVVVoySzB4WGFXZ3JhMmQ2WTBkMGNITk9Na3hwYnpGYWRHZzFTRFFyYkhFMFpHbEhhbXBHVWxGRWFWcHpUMkZyYTJsd0wyUk5UamxCTDJ0cWQyVk9UbFJNU1dveGMzaHRUMGx4WVNzeU1FcGtSM1JTZGpOemJFMDVUMUJ2VURnclQybDRNRnBFVTJ4T01reGFURnAzV1RaellqQmlZbVp0WTFFeVJ6WktPV05KVW5WSFZHdEhSa3B2TDBSTlRrSnhNa3hCUzFkMVZFOXNVbnBQYkcxSFEyeE1WVzlFVVVRelRFVmhTM0F3UVdGd2JXeHdkVUUwWWpCc2VpOUtlV05ZT1RKRWRYQlVOalZtU0ZaTGJtNDFLek5KV1hKTlltSnBibFZDZWpKdGMwVnBLMXB4Wm5sTWExWktRazV0WkdSTVFreHRibXhLYzB4YVJYaFhlbkpPUlRaNk5sbFBiMUpxY1ROaGNtUnFXVzAwVDFGYVZuUkdTVFZuZVRWVVRYazNaR2QxVm13MGNpc3haREpxWkc5RVRWRnJURlJyTlhGdWFYTk1hM0ZGWkhSTWJVUTBUQ3N2WnpKdmRYSm1aVkpZT0VFNVJXOWpSRlIyVFhrcldWTm9ia05XVVdsTU16ZGhSekozWVRjdk5sbDBORTAyVlRoM2VqbE5jV3hFZFRZdlExRnRiM0ZzVVhKdmEyOUZVRko1V0RSNlVGbEVaa2RFVFd4ck1sWnJlWEl2TVcxeFJsbzNaV29yV2s4dmRtcGFTblpITlRCNWJEaG1OVTEzZHpacFVYRTNhMFppVkdoTmIxVTVTWFJxY0ZnMlNrWkdVbGs0WXpaR1R6WXhXVXRFVW5oTFQxTmpNRTlvWW1oSk1VY3lkbXhYVVZSS1luUTFRazU0YlhjeE1WRjRZbE5LTVROcFZWSnllVEpTYjFwTE0wNHhabWxhYzJKWk9Xb3pZblpzVERCMWRqaFVVbTlyU1NzMFNFTXpZMlE0YW1od1IxWkVVR0p2V1UxWmNVTXJVMmxpZW5OSWJrSTFRV3REVEZwSGNFdEJjR3g1V0cxSlJVNTFaWFl2YTFjdmRHNWtaV1p3VGtVM0x6QTNTa0lyTm5veEwwRTRSazFUVWpoVGJVdFJjVmhuYVhGdmMzUktSME1yUjJ4NVoyUXhOa2xSV0V0NWJXbHFWV1k1TVRJdlZHNTJkVlZpVTNsMFYwaFJjVWRIUm5KSVdUaGFhVEIyVWxGNVEwWlFNR0pLVTFkNmFVSjZaRzR4VDNoVWFYTkpSRVp5VWpWWmJ6SlBNazVLVjFwdWMwUnBkVU53VmtKTllXcGlZblJ6Y0V4SGNXbEZjSEFyU1RWa2NFVmtXbkl4UlV4T1NFUlJUemRYYlhFMlEyOVRkWHB0YTIweFdqZGFNRm8yVTAxc01tSlFUMmROVEc5WmFtWTBWVU5MY2xKdGVIazVabVZWWjJwVWJqUTRUekptTWtKclRuZFFjRkZwYUhwS2FYaERkbThyUVVGek9WSjBSRUYwV0VrMGNHNVRkbFpaWlZsWlRFdGFVMk5XY1dJM01EUXJSRzF6YlVneGFtOXphV1JxUjFKbU5EWlBZV1JoYkRGc05IcGtUVTE0WVhsVlpuaEtWazU1VVdnMWVYWlJlVkJ3UTBZMVFUMDk-");
}
//}
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 == "subtitle"){
var sub_lang = get_lang_from_name(data);
sub_shown_lang = sub_lang.ISO639;
}
}
function openVidsrc(){
var win = window.open('https://vidsrc.me/', '_blank');
if (win) {
//Browser has allowed it to be opened
win.focus();
}
}
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 == "mute"){
player.api("mute");
}
if(message_data.action == "unmute"){
player.api("unmute");
}
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);
}
function reloadWithPost(data) {
const form = document.createElement('form');
form.method = 'POST';
form.action = window.location.href.split('?')[0];
for (const key in data) {
const input = document.createElement('input');
input.type = 'hidden';
input.name = key;
input.value = data[key];
form.appendChild(input);
}
document.body.appendChild(form);
form.submit();
}
</script>
<script data-ssr="1" data-cfasync="false" async type="text/javascript" src="//seattleunderly.top/r6849ea359a30f/108734"></script>
</body>
</html>

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="93058" >
<!--<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/3k2TRmqMjgt7tcwkYwZQdctnty3.jpg');">
<div id="iframe_title">
Full Metal Jacket (1987) </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/MzcwMDNhOWIzZTA0MGQyYWE5MmI2ZjQ1NTFmMjEzMDQ6TUdkdGNsUmtVVk51VDFOdVVHRTVRMGh0YjBsV04xcFpWRTE2UkZWbFVsSjRNMWwzV0ZSTWNtSlpiV2MzTkZoR1VrbExSSFpJUm5jNFQzTTRUelZFYkdNd09VeG5Ra2xOTm1sSlZIWldTelJoVVZoRFlWbHhMMUphU0RKdll6WjZSR05uVml0RldEbEtOMjl6Um1OYVJGSkNUREprZFZGSFMwczROVEZuYURKSlpWSmtTMkZ5WjAwMFlVVklaVmQxVFcxcGMxaFlialF3U1VWV2JFMXBSVmd4VG5od2NXUXZWMGxJYUUxdGJqSnpVRVpYY0hSUVJIRklNVlIwZEVSNFNtaHVOak53V2tsdFRucG5hbWRXYmtWU05YQjBjREJNTm5veVptMXhTbkpMZFRkM1RtVjRUa3d2VWpkdmFHaHlVVVoySzB4WGFXZ3JhMmQ2WTBkMGNITk9Na3hwYnpGYWRHZzFTRFFyYkhFMFpHbEhhbXBHVWxGRWFWcHpUMkZyYTJsd0wyUk5UamxCTDJ0cWQyVk9UbFJNU1dveGMzaHRUMGx4WVNzeU1FcGtSM1JTZGpOemJFMDVUMUJ2VURnclQybDRNRnBFVTJ4T01reGFURnAzV1RaellqQmlZbVp0WTFFeVJ6WktPV05KVW5WSFZHdEhSa3B2TDBSTlRrSnhNa3hCUzFkMVZFOXNVbnBQYkcxSFEyeE1WVzlFVVVRelRFVmhTM0F3UVdGd2JXeHdkVUUwWWpCc2VpOUtlV05ZT1RKRWRYQlVOalZtU0ZaTGJtNDFLek5KV1hKTlltSnBibFZDZWpKdGMwVnBLMXB4Wm5sTWExWktRazV0WkdSTVFreHRibXhLYzB4YVJYaFhlbkpPUlRaNk5sbFBiMUpxY1ROaGNtUnFXVzAwVDFGYVZuUkdTVFZuZVRWVVRYazNaR2QxVm13MGNpc3haREpxWkc5RVRWRnJURlJyTlhGdWFYTk1hM0ZGWkhSTWJVUTBUQ3N2WnpKdmRYSm1aVkpZT0VFNVJXOWpSRlIyVFhrcldWTm9ia05XVVdsTU16ZGhSekozWVRjdk5sbDBORTAyVlRoM2VqbE5jV3hFZFRZdlExRnRiM0ZzVVhKdmEyOUZVRko1V0RSNlVGbEVaa2RFVFd4ck1sWnJlWEl2TVcxeFJsbzNaV29yV2s4dmRtcGFTblpITlRCNWJEaG1OVTEzZHpacFVYRTNhMFppVkdoTmIxVTVTWFJxY0ZnMlNrWkdVbGs0WXpaR1R6WXhXVXRFVW5oTFQxTmpNRTlvWW1oSk1VY3lkbXhYVVZSS1luUTFRazU0YlhjeE1WRjRZbE5LTVROcFZWSnllVEpTYjFwTE0wNHhabWxhYzJKWk9Xb3pZblpzVERCMWRqaFVVbTlyU1NzMFNFTXpZMlE0YW1od1IxWkVVR0p2V1UxWmNVTXJVMmxpZW5OSWJrSTFRV3REVEZwSGNFdEJjR3g1V0cxSlJVNTFaWFl2YTFjdmRHNWtaV1p3VGtVM0x6QTNTa0lyTm5veEwwRTRSazFUVWpoVGJVdFJjVmhuYVhGdmMzUktSME1yUjJ4NVoyUXhOa2xSV0V0NWJXbHFWV1k1TVRJdlZHNTJkVlZpVTNsMFYwaFJjVWRIUm5KSVdUaGFhVEIyVWxGNVEwWlFNR0pLVTFkNmFVSjZaRzR4VDNoVWFYTkpSRVp5VWpWWmJ6SlBNazVLVjFwdWMwUnBkVU53VmtKTllXcGlZblJ6Y0V4SGNXbEZjSEFyU1RWa2NFVmtXbkl4UlV4T1NFUlJUemRYYlhFMlEyOVRkWHB0YTIweFdqZGFNRm8yVTAxc01tSlFUMmROVEc5WmFtWTBWVU5MY2xKdGVIazVabVZWWjJwVWJqUTRUekptTWtKclRuZFFjRkZwYUhwS2FYaERkbThyUVVGek9WSjBSRUYwV0VrMGNHNVRkbFpaWlZsWlRFdGFVMk5XY1dJM01EUXJSRzF6YlVneGFtOXphV1JxUjFKbU5EWlBZV1JoYkRGc05IcGtUVTE0WVhsVlpuaEtWazU1VVdnMWVYWlJlVkJ3UTBZMVFUMDk-',
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,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="2085059_4x2" >
<!--<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/dg3OindVAGZBjlT3xYKqIAdukPL.jpg');">
<div id="iframe_title">
Black Mirror (2011) S04E02 </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/YmM0MDFlYzljMzQ5ODllYzliZTNiMjljYjcyMThkNDk6V0Vaek9GWk9USFF3UjFZemNITnNOM2d5SzJ0bVdXWnhXbGx2UW13MFp6SjZOMUUyVFhFMFZraDBZMDAzUjJnMlVIRldXa3hRVkRSaWMxYzBNVVUzYW1oT2JrUm9RUzlMTjI1UmFFRmFTR3RJZGxaM2MwSk1kVlJCUzI5T2NFd3JNaTloTmpaRk1FbHZlbkJZV0dkTlozSkZjM1ZRY1VFM1N6aHVaRUZ6VFRkc2VFbDBaVlpPYjJWdWFISXlMMFppY2tGQ2JISjBlVzFETm1kc1MzWnpOeXRXYzNSUWVITkZla1pzVVhoQ1VVWkhjWGxKU0UxT05YUTVVak4xUlhGbk1YVjRZMjV6ZFVnNFVXRXlOMlJOV1RBM1FscE9UbkZCTldkWlRtNWhlR2RpWjB0T1MwaE1WMWxaTVVWeVltSnpTR2hwYUVJcmVuUlpZbGhPUzBGUmNVNUViMjVpUVZsRGJYUklUSE5NZEdWcU9XOUlLMVZTTlVzdlkwVnNhMk5oYm5kc2J6SnBlbTFVVlVOeU9YQTNlbU0xTnk5RWVuVnNUMUZ5WjAxTlZtTmxZMEp3ZWtVd01uVlRZMWhqV2pSNVdVTjFlR3h5ZFRsRVdHSXdkR2hHVEdnMGNWaFFWekpZUTJndmQwUnFPRVI0Y1VsNmIyOHlVR0ZRUTB0U1NHMUxlRGhXYzJ0T2VrZGhibXBMUml0NFltVkRZWEIxTDJaVFNsazJTa2wyY20xU1JFMUViQ3RtVW5FMVJtd3lTbXhVZVVSSVpuTjBielJHTWtKRWNYZEZkM05aV20xaFMyaERkWE00VDJKdlYzb3pOMDVUUkdGdVRYSnJhbmw2TVVOMlJsZFRMMDAyYW1WcmFtVlVhakpMVGxrcmFFZE5WVVptV0ZvM05YWXdZMk5hWkRSc2VFcEVlVFpEUldKMEsybE9VbVJrVG1GWlIxTk1iMU5JY0hnelJFdGxibFEwWkhOcVJFMWtOakZWUnpkbWVYaDVaamR0UjFkQ1NGTlNWbXd3U0RrMWJ6SjFXa2RvZWtONU5FaDJhRUZMZUVkRlVGY3plVE5aT1ZKUE9TdG5ZMDVXUTI5eU5HMXpWMUYzVURKWWJuVkdiemN2U1d4aFVYSjNTRVF4U1hWbFFYZ3JjMGg2V1Zndk0wMTJhazFOWm1GR2FuVlVkMmxCVEVFcmJrODJLM0ZSU21zeVNHOVhNVFpJU1hSREx6ZGFTRWx6YzNVd1JUZGlUMXAyWVc4MFFTOHlhRmRoYUcxRk9XOUdkRlZYV0ZneksxRktOSE53Vnl0TFZWbDBLME40UjBaVVUzaDBhRFpNT0ZKMlpVNVZTMk40UzJOVEwzcEZRbXhIWjBoa2VHVkRXbWd2Y2xVNVUybG9PR2t2WW5sTFYwOHZNekpZZVhFNVRsRlhTVkp3VkZkRWFFMWlUekZMTVc5cWQyWXZlRUpZWW1KVlJWTllNRUV2YUV0TVUxSndhV2xQTDFCV2RHeHVNMFZ4UjFsTVJrbFdZVXhIY0haVWFXb3pOemxXU1ZOVGFGbFZSMHRuYlRoVmVtTk5WMU5DWmtocFZtUXJiamhrWlU5emVWaFZaak0wZDBkelZtdFllVnB3ZDNCT1Iwc3hlRE5zVFhjcmFWZHdOSEpDYldWNWJHd3ZLMmR6VUd0NlYxa3ZSR2hhVjNkWlRreHNUak41TkZWV2MzWXhLMU5FSzFsS1RWTnZPVEZQZW1oU0swMDJUVUZOYlhCMVdVUmxjMWhEYVZGcmFta3pkVlJ2VXpGNFdXSm1VRWxQVFRBNGRGVTRabGxFZEVOUVVGSTBUelF6U0hZeVRGcFhVbTlFV0VoNmRYVnBRVFJ6TWxGRU5VWkthR3d3ZUc1UldIVjVOSGhEYW5SbFRFbFZaRFJHUVdsR1RpODRTVmxQYkcxeVp6QTNOelpJWWxaTGFWa3diVzF1YlVwMWNraGljR3RPUjNoRk5taFNZalU0VDJWMWFrNXFZbWhaTDJ0d1pGZ3ljaXRZU2tKNllrSjRMM2RXZDBwaE9HTlNhek4wZDBGbGFuWkNOMmw2TUdaRlJUSktRbk41Y0c5UE5WZFpWbnBhY0c5eWFIRnZSamxzVUdoWVdDOURUVDA9',
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,748 @@
<!DOCTYPE html>
<html>
<head>
<title>Black Mirror (2011) S04E02</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://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;
}
#pjs_player_parent_subtitle {
display: block !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";
}
: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="2085059" data-s="4" data-e="2">
<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="5-5" />
<p>
5-5 = <input id="solution" type="number" name="solution" min="0" max="9"/>
</p>
</div>
<button id="sentReport" data-hash="YmM0MDFlYzljMzQ5ODllYzliZTNiMjljYjcyMThkNDk6V0Vaek9GWk9USFF3UjFZemNITnNOM2d5SzJ0bVdXWnhXbGx2UW13MFp6SjZOMUUyVFhFMFZraDBZMDAzUjJnMlVIRldXa3hRVkRSaWMxYzBNVVUzYW1oT2JrUm9RUzlMTjI1UmFFRmFTR3RJZGxaM2MwSk1kVlJCUzI5T2NFd3JNaTloTmpaRk1FbHZlbkJZV0dkTlozSkZjM1ZRY1VFM1N6aHVaRUZ6VFRkc2VFbDBaVlpPYjJWdWFISXlMMFppY2tGQ2JISjBlVzFETm1kc1MzWnpOeXRXYzNSUWVITkZla1pzVVhoQ1VVWkhjWGxKU0UxT05YUTVVak4xUlhGbk1YVjRZMjV6ZFVnNFVXRXlOMlJOV1RBM1FscE9UbkZCTldkWlRtNWhlR2RpWjB0T1MwaE1WMWxaTVVWeVltSnpTR2hwYUVJcmVuUlpZbGhPUzBGUmNVNUViMjVpUVZsRGJYUklUSE5NZEdWcU9XOUlLMVZTTlVzdlkwVnNhMk5oYm5kc2J6SnBlbTFVVlVOeU9YQTNlbU0xTnk5RWVuVnNUMUZ5WjAxTlZtTmxZMEp3ZWtVd01uVlRZMWhqV2pSNVdVTjFlR3h5ZFRsRVdHSXdkR2hHVEdnMGNWaFFWekpZUTJndmQwUnFPRVI0Y1VsNmIyOHlVR0ZRUTB0U1NHMUxlRGhXYzJ0T2VrZGhibXBMUml0NFltVkRZWEIxTDJaVFNsazJTa2wyY20xU1JFMUViQ3RtVW5FMVJtd3lTbXhVZVVSSVpuTjBielJHTWtKRWNYZEZkM05aV20xaFMyaERkWE00VDJKdlYzb3pOMDVUUkdGdVRYSnJhbmw2TVVOMlJsZFRMMDAyYW1WcmFtVlVhakpMVGxrcmFFZE5WVVptV0ZvM05YWXdZMk5hWkRSc2VFcEVlVFpEUldKMEsybE9VbVJrVG1GWlIxTk1iMU5JY0hnelJFdGxibFEwWkhOcVJFMWtOakZWUnpkbWVYaDVaamR0UjFkQ1NGTlNWbXd3U0RrMWJ6SjFXa2RvZWtONU5FaDJhRUZMZUVkRlVGY3plVE5aT1ZKUE9TdG5ZMDVXUTI5eU5HMXpWMUYzVURKWWJuVkdiemN2U1d4aFVYSjNTRVF4U1hWbFFYZ3JjMGg2V1Zndk0wMTJhazFOWm1GR2FuVlVkMmxCVEVFcmJrODJLM0ZSU21zeVNHOVhNVFpJU1hSREx6ZGFTRWx6YzNVd1JUZGlUMXAyWVc4MFFTOHlhRmRoYUcxRk9XOUdkRlZYV0ZneksxRktOSE53Vnl0TFZWbDBLME40UjBaVVUzaDBhRFpNT0ZKMlpVNVZTMk40UzJOVEwzcEZRbXhIWjBoa2VHVkRXbWd2Y2xVNVUybG9PR2t2WW5sTFYwOHZNekpZZVhFNVRsRlhTVkp3VkZkRWFFMWlUekZMTVc5cWQyWXZlRUpZWW1KVlJWTllNRUV2YUV0TVUxSndhV2xQTDFCV2RHeHVNMFZ4UjFsTVJrbFdZVXhIY0haVWFXb3pOemxXU1ZOVGFGbFZSMHRuYlRoVmVtTk5WMU5DWmtocFZtUXJiamhrWlU5emVWaFZaak0wZDBkelZtdFllVnB3ZDNCT1Iwc3hlRE5zVFhjcmFWZHdOSEpDYldWNWJHd3ZLMmR6VUd0NlYxa3ZSR2hhVjNkWlRreHNUak41TkZWV2MzWXhLMU5FSzFsS1RWTnZPVEZQZW1oU0swMDJUVUZOYlhCMVdVUmxjMWhEYVZGcmFta3pkVlJ2VXpGNFdXSm1VRWxQVFRBNGRGVTRabGxFZEVOUVVGSTBUelF6U0hZeVRGcFhVbTlFV0VoNmRYVnBRVFJ6TWxGRU5VWkthR3d3ZUc1UldIVjVOSGhEYW5SbFRFbFZaRFJHUVdsR1RpODRTVmxQYkcxeVp6QTNOelpJWWxaTGFWa3diVzF1YlVwMWNraGljR3RPUjNoRk5taFNZalU0VDJWMWFrNXFZbWhaTDJ0d1pGZ3ljaXRZU2tKNllrSjRMM2RXZDBwaE9HTlNhek4wZDBGbGFuWkNOMmw2TUdaRlJUSktRbk41Y0c5UE5WZFpWbnBhY0c5eWFIRnZSamxzVUdoWVdDOURUVDA9">Sent report</button>
</div>
</div>
<script src="https://unpkg.com/jquery@3.2.1/dist/jquery.min.js"></script>
<script src="https://unpkg.com/jquery.cookie@1.4.1/jquery.cookie.js"></script>
<script src="/pjs/pjs_main_drv_cast.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://unpkg.com/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('QmxhY2suTWlycm9yLlMwNC4xMDgwcC5CbHVSYXkueDI2NC1TSE9SVEJSRUhEL0JsYWNrLk1pcnJvci5TMDRFMDIuMTA4MHAuQmx1UmF5LngyNjQtU0hPUlRCUkVIRC5ta3Y='));
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 pass_path = "//tmstr5.shadowlandschronicles.com/rt_ping.php";
$.get(pass_path);
setInterval(function(){
$.get(pass_path, function(data, status){
//console.log(data);
});
}, 60000);
var subs_shown = false;
var the_subtitles = [];
var default_subtitles = "";
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:"71ec1cf7bbf3d784501b7a7cc8dcf34f",file:"", poster:"//image.tmdb.org/t/p/w780/dg3OindVAGZBjlT3xYKqIAdukPL.jpg" , ready:"PlayerReady" , autoplay:1 , subtitle: default_subtitles});
var player = new Playerjs({id:"player_parent", file: 'https://tmstr5.shadowlandschronicles.com/pl/H4sIAAAAAAAAAxXK226DIAAA0F8CrGvd27oCq1UcyP1NQdtUaozptsyvX3aez9DBQxgjgBmAPeqK_Yh2eTeG4tAPMCDwysHNaeDbevKVMM.XgMWps2XtTWGkLR8M.feQ2KroeeXG_db4vCq82.T8lkerZ0OTlLLsWuA2lnwT1FK7e6r0B5nEHL_4pNAgme2sJj28_kT0f0kuya0Sj6W6wONRnkrpAHP9vZwEzRE3T8JOohmwtwMlTimNeiw2BQWRsM4CKZ3PFuUyT1usLy6LWb3F1s3p0hPRSpqqxibcPpaG3.Mq5qS4vn4bqm.NTp8KFzOfmBykWP4AirgCPSEBAAA-/master.m3u8' , cuid:"71ec1cf7bbf3d784501b7a7cc8dcf34f",poster:"//image.tmdb.org/t/p/w780/dg3OindVAGZBjlT3xYKqIAdukPL.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(){
//console.log(this.value);
//console.log(this.duration);
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("/fsdD/YmM0MDFlYzljMzQ5ODllYzliZTNiMjljYjcyMThkNDk6V0Vaek9GWk9USFF3UjFZemNITnNOM2d5SzJ0bVdXWnhXbGx2UW13MFp6SjZOMUUyVFhFMFZraDBZMDAzUjJnMlVIRldXa3hRVkRSaWMxYzBNVVUzYW1oT2JrUm9RUzlMTjI1UmFFRmFTR3RJZGxaM2MwSk1kVlJCUzI5T2NFd3JNaTloTmpaRk1FbHZlbkJZV0dkTlozSkZjM1ZRY1VFM1N6aHVaRUZ6VFRkc2VFbDBaVlpPYjJWdWFISXlMMFppY2tGQ2JISjBlVzFETm1kc1MzWnpOeXRXYzNSUWVITkZla1pzVVhoQ1VVWkhjWGxKU0UxT05YUTVVak4xUlhGbk1YVjRZMjV6ZFVnNFVXRXlOMlJOV1RBM1FscE9UbkZCTldkWlRtNWhlR2RpWjB0T1MwaE1WMWxaTVVWeVltSnpTR2hwYUVJcmVuUlpZbGhPUzBGUmNVNUViMjVpUVZsRGJYUklUSE5NZEdWcU9XOUlLMVZTTlVzdlkwVnNhMk5oYm5kc2J6SnBlbTFVVlVOeU9YQTNlbU0xTnk5RWVuVnNUMUZ5WjAxTlZtTmxZMEp3ZWtVd01uVlRZMWhqV2pSNVdVTjFlR3h5ZFRsRVdHSXdkR2hHVEdnMGNWaFFWekpZUTJndmQwUnFPRVI0Y1VsNmIyOHlVR0ZRUTB0U1NHMUxlRGhXYzJ0T2VrZGhibXBMUml0NFltVkRZWEIxTDJaVFNsazJTa2wyY20xU1JFMUViQ3RtVW5FMVJtd3lTbXhVZVVSSVpuTjBielJHTWtKRWNYZEZkM05aV20xaFMyaERkWE00VDJKdlYzb3pOMDVUUkdGdVRYSnJhbmw2TVVOMlJsZFRMMDAyYW1WcmFtVlVhakpMVGxrcmFFZE5WVVptV0ZvM05YWXdZMk5hWkRSc2VFcEVlVFpEUldKMEsybE9VbVJrVG1GWlIxTk1iMU5JY0hnelJFdGxibFEwWkhOcVJFMWtOakZWUnpkbWVYaDVaamR0UjFkQ1NGTlNWbXd3U0RrMWJ6SjFXa2RvZWtONU5FaDJhRUZMZUVkRlVGY3plVE5aT1ZKUE9TdG5ZMDVXUTI5eU5HMXpWMUYzVURKWWJuVkdiemN2U1d4aFVYSjNTRVF4U1hWbFFYZ3JjMGg2V1Zndk0wMTJhazFOWm1GR2FuVlVkMmxCVEVFcmJrODJLM0ZSU21zeVNHOVhNVFpJU1hSREx6ZGFTRWx6YzNVd1JUZGlUMXAyWVc4MFFTOHlhRmRoYUcxRk9XOUdkRlZYV0ZneksxRktOSE53Vnl0TFZWbDBLME40UjBaVVUzaDBhRFpNT0ZKMlpVNVZTMk40UzJOVEwzcEZRbXhIWjBoa2VHVkRXbWd2Y2xVNVUybG9PR2t2WW5sTFYwOHZNekpZZVhFNVRsRlhTVkp3VkZkRWFFMWlUekZMTVc5cWQyWXZlRUpZWW1KVlJWTllNRUV2YUV0TVUxSndhV2xQTDFCV2RHeHVNMFZ4UjFsTVJrbFdZVXhIY0haVWFXb3pOemxXU1ZOVGFGbFZSMHRuYlRoVmVtTk5WMU5DWmtocFZtUXJiamhrWlU5emVWaFZaak0wZDBkelZtdFllVnB3ZDNCT1Iwc3hlRE5zVFhjcmFWZHdOSEpDYldWNWJHd3ZLMmR6VUd0NlYxa3ZSR2hhVjNkWlRreHNUak41TkZWV2MzWXhLMU5FSzFsS1RWTnZPVEZQZW1oU0swMDJUVUZOYlhCMVdVUmxjMWhEYVZGcmFta3pkVlJ2VXpGNFdXSm1VRWxQVFRBNGRGVTRabGxFZEVOUVVGSTBUelF6U0hZeVRGcFhVbTlFV0VoNmRYVnBRVFJ6TWxGRU5VWkthR3d3ZUc1UldIVjVOSGhEYW5SbFRFbFZaRFJHUVdsR1RpODRTVmxQYkcxeVp6QTNOelpJWWxaTGFWa3diVzF1YlVwMWNraGljR3RPUjNoRk5taFNZalU0VDJWMWFrNXFZbWhaTDJ0d1pGZ3ljaXRZU2tKNllrSjRMM2RXZDBwaE9HTlNhek4wZDBGbGFuWkNOMmw2TUdaRlJUSktRbk41Y0c5UE5WZFpWbnBhY0c5eWFIRnZSamxzVUdoWVdDOURUVDA9");
}
/*
if(this.value > (this.duration*0.05)){
this.report = 5;
$.get("/vsdV/YmM0MDFlYzljMzQ5ODllYzliZTNiMjljYjcyMThkNDk6V0Vaek9GWk9USFF3UjFZemNITnNOM2d5SzJ0bVdXWnhXbGx2UW13MFp6SjZOMUUyVFhFMFZraDBZMDAzUjJnMlVIRldXa3hRVkRSaWMxYzBNVVUzYW1oT2JrUm9RUzlMTjI1UmFFRmFTR3RJZGxaM2MwSk1kVlJCUzI5T2NFd3JNaTloTmpaRk1FbHZlbkJZV0dkTlozSkZjM1ZRY1VFM1N6aHVaRUZ6VFRkc2VFbDBaVlpPYjJWdWFISXlMMFppY2tGQ2JISjBlVzFETm1kc1MzWnpOeXRXYzNSUWVITkZla1pzVVhoQ1VVWkhjWGxKU0UxT05YUTVVak4xUlhGbk1YVjRZMjV6ZFVnNFVXRXlOMlJOV1RBM1FscE9UbkZCTldkWlRtNWhlR2RpWjB0T1MwaE1WMWxaTVVWeVltSnpTR2hwYUVJcmVuUlpZbGhPUzBGUmNVNUViMjVpUVZsRGJYUklUSE5NZEdWcU9XOUlLMVZTTlVzdlkwVnNhMk5oYm5kc2J6SnBlbTFVVlVOeU9YQTNlbU0xTnk5RWVuVnNUMUZ5WjAxTlZtTmxZMEp3ZWtVd01uVlRZMWhqV2pSNVdVTjFlR3h5ZFRsRVdHSXdkR2hHVEdnMGNWaFFWekpZUTJndmQwUnFPRVI0Y1VsNmIyOHlVR0ZRUTB0U1NHMUxlRGhXYzJ0T2VrZGhibXBMUml0NFltVkRZWEIxTDJaVFNsazJTa2wyY20xU1JFMUViQ3RtVW5FMVJtd3lTbXhVZVVSSVpuTjBielJHTWtKRWNYZEZkM05aV20xaFMyaERkWE00VDJKdlYzb3pOMDVUUkdGdVRYSnJhbmw2TVVOMlJsZFRMMDAyYW1WcmFtVlVhakpMVGxrcmFFZE5WVVptV0ZvM05YWXdZMk5hWkRSc2VFcEVlVFpEUldKMEsybE9VbVJrVG1GWlIxTk1iMU5JY0hnelJFdGxibFEwWkhOcVJFMWtOakZWUnpkbWVYaDVaamR0UjFkQ1NGTlNWbXd3U0RrMWJ6SjFXa2RvZWtONU5FaDJhRUZMZUVkRlVGY3plVE5aT1ZKUE9TdG5ZMDVXUTI5eU5HMXpWMUYzVURKWWJuVkdiemN2U1d4aFVYSjNTRVF4U1hWbFFYZ3JjMGg2V1Zndk0wMTJhazFOWm1GR2FuVlVkMmxCVEVFcmJrODJLM0ZSU21zeVNHOVhNVFpJU1hSREx6ZGFTRWx6YzNVd1JUZGlUMXAyWVc4MFFTOHlhRmRoYUcxRk9XOUdkRlZYV0ZneksxRktOSE53Vnl0TFZWbDBLME40UjBaVVUzaDBhRFpNT0ZKMlpVNVZTMk40UzJOVEwzcEZRbXhIWjBoa2VHVkRXbWd2Y2xVNVUybG9PR2t2WW5sTFYwOHZNekpZZVhFNVRsRlhTVkp3VkZkRWFFMWlUekZMTVc5cWQyWXZlRUpZWW1KVlJWTllNRUV2YUV0TVUxSndhV2xQTDFCV2RHeHVNMFZ4UjFsTVJrbFdZVXhIY0haVWFXb3pOemxXU1ZOVGFGbFZSMHRuYlRoVmVtTk5WMU5DWmtocFZtUXJiamhrWlU5emVWaFZaak0wZDBkelZtdFllVnB3ZDNCT1Iwc3hlRE5zVFhjcmFWZHdOSEpDYldWNWJHd3ZLMmR6VUd0NlYxa3ZSR2hhVjNkWlRreHNUak41TkZWV2MzWXhLMU5FSzFsS1RWTnZPVEZQZW1oU0swMDJUVUZOYlhCMVdVUmxjMWhEYVZGcmFta3pkVlJ2VXpGNFdXSm1VRWxQVFRBNGRGVTRabGxFZEVOUVVGSTBUelF6U0hZeVRGcFhVbTlFV0VoNmRYVnBRVFJ6TWxGRU5VWkthR3d3ZUc1UldIVjVOSGhEYW5SbFRFbFZaRFJHUVdsR1RpODRTVmxQYkcxeVp6QTNOelpJWWxaTGFWa3diVzF1YlVwMWNraGljR3RPUjNoRk5taFNZalU0VDJWMWFrNXFZbWhaTDJ0d1pGZ3ljaXRZU2tKNllrSjRMM2RXZDBwaE9HTlNhek4wZDBGbGFuWkNOMmw2TUdaRlJUSktRbk41Y0c5UE5WZFpWbnBhY0c5eWFIRnZSamxzVUdoWVdDOURUVDA9");
}
*/
}
}
},
setDur: function(dur){
this.duration = dur;
}
}
function PlayerReady(){
gen_subs_el();
gen_reporting_el();
}
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: "tt2085059",
tmdbId: 42009,
type: "tv",
season: 4,
episode: 2,
currentTime: 0,
duration: 0
};
function PlayerjsEvents(event,id,data){
if(event=="play"){
pm_player_data.data.event = "play";
window.parent.postMessage(pm_player_data , '*');
//console.log(pm_player_data);
if(!watched.interval){
watched.interval = setInterval(function(){
if(player.api("playing")){
watched.set(watched.value+1);
if(watched.value % 60 == 0){
//$.get("/watched");
}
}
},1000);
}
}
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=="networkErrorHls"){
data_parsed = JSON.parse(data);
if(data_parsed.details == "fragLoadError" && data_parsed.fatal && watched.value < 60){
window.location.replace("https://cloudnestra.com/prorcpsb/YmM0MDFlYzljMzQ5ODllYzliZTNiMjljYjcyMThkNDk6V0Vaek9GWk9USFF3UjFZemNITnNOM2d5SzJ0bVdXWnhXbGx2UW13MFp6SjZOMUUyVFhFMFZraDBZMDAzUjJnMlVIRldXa3hRVkRSaWMxYzBNVVUzYW1oT2JrUm9RUzlMTjI1UmFFRmFTR3RJZGxaM2MwSk1kVlJCUzI5T2NFd3JNaTloTmpaRk1FbHZlbkJZV0dkTlozSkZjM1ZRY1VFM1N6aHVaRUZ6VFRkc2VFbDBaVlpPYjJWdWFISXlMMFppY2tGQ2JISjBlVzFETm1kc1MzWnpOeXRXYzNSUWVITkZla1pzVVhoQ1VVWkhjWGxKU0UxT05YUTVVak4xUlhGbk1YVjRZMjV6ZFVnNFVXRXlOMlJOV1RBM1FscE9UbkZCTldkWlRtNWhlR2RpWjB0T1MwaE1WMWxaTVVWeVltSnpTR2hwYUVJcmVuUlpZbGhPUzBGUmNVNUViMjVpUVZsRGJYUklUSE5NZEdWcU9XOUlLMVZTTlVzdlkwVnNhMk5oYm5kc2J6SnBlbTFVVlVOeU9YQTNlbU0xTnk5RWVuVnNUMUZ5WjAxTlZtTmxZMEp3ZWtVd01uVlRZMWhqV2pSNVdVTjFlR3h5ZFRsRVdHSXdkR2hHVEdnMGNWaFFWekpZUTJndmQwUnFPRVI0Y1VsNmIyOHlVR0ZRUTB0U1NHMUxlRGhXYzJ0T2VrZGhibXBMUml0NFltVkRZWEIxTDJaVFNsazJTa2wyY20xU1JFMUViQ3RtVW5FMVJtd3lTbXhVZVVSSVpuTjBielJHTWtKRWNYZEZkM05aV20xaFMyaERkWE00VDJKdlYzb3pOMDVUUkdGdVRYSnJhbmw2TVVOMlJsZFRMMDAyYW1WcmFtVlVhakpMVGxrcmFFZE5WVVptV0ZvM05YWXdZMk5hWkRSc2VFcEVlVFpEUldKMEsybE9VbVJrVG1GWlIxTk1iMU5JY0hnelJFdGxibFEwWkhOcVJFMWtOakZWUnpkbWVYaDVaamR0UjFkQ1NGTlNWbXd3U0RrMWJ6SjFXa2RvZWtONU5FaDJhRUZMZUVkRlVGY3plVE5aT1ZKUE9TdG5ZMDVXUTI5eU5HMXpWMUYzVURKWWJuVkdiemN2U1d4aFVYSjNTRVF4U1hWbFFYZ3JjMGg2V1Zndk0wMTJhazFOWm1GR2FuVlVkMmxCVEVFcmJrODJLM0ZSU21zeVNHOVhNVFpJU1hSREx6ZGFTRWx6YzNVd1JUZGlUMXAyWVc4MFFTOHlhRmRoYUcxRk9XOUdkRlZYV0ZneksxRktOSE53Vnl0TFZWbDBLME40UjBaVVUzaDBhRFpNT0ZKMlpVNVZTMk40UzJOVEwzcEZRbXhIWjBoa2VHVkRXbWd2Y2xVNVUybG9PR2t2WW5sTFYwOHZNekpZZVhFNVRsRlhTVkp3VkZkRWFFMWlUekZMTVc5cWQyWXZlRUpZWW1KVlJWTllNRUV2YUV0TVUxSndhV2xQTDFCV2RHeHVNMFZ4UjFsTVJrbFdZVXhIY0haVWFXb3pOemxXU1ZOVGFGbFZSMHRuYlRoVmVtTk5WMU5DWmtocFZtUXJiamhrWlU5emVWaFZaak0wZDBkelZtdFllVnB3ZDNCT1Iwc3hlRE5zVFhjcmFWZHdOSEpDYldWNWJHd3ZLMmR6VUd0NlYxa3ZSR2hhVjNkWlRreHNUak41TkZWV2MzWXhLMU5FSzFsS1RWTnZPVEZQZW1oU0swMDJUVUZOYlhCMVdVUmxjMWhEYVZGcmFta3pkVlJ2VXpGNFdXSm1VRWxQVFRBNGRGVTRabGxFZEVOUVVGSTBUelF6U0hZeVRGcFhVbTlFV0VoNmRYVnBRVFJ6TWxGRU5VWkthR3d3ZUc1UldIVjVOSGhEYW5SbFRFbFZaRFJHUVdsR1RpODRTVmxQYkcxeVp6QTNOelpJWWxaTGFWa3diVzF1YlVwMWNraGljR3RPUjNoRk5taFNZalU0VDJWMWFrNXFZbWhaTDJ0d1pGZ3ljaXRZU2tKNllrSjRMM2RXZDBwaE9HTlNhek4wZDBGbGFuWkNOMmw2TUdaRlJUSktRbk41Y0c5UE5WZFpWbnBhY0c5eWFIRnZSamxzVUdoWVdDOURUVDA9");
}
}
//if(event=="loaderror"){
if(data == "manifestLoadError (networkError)" || data == "not found" || data == "Media failed to decode"){
//reloadWithPost({ fallback_url_path: '/prorcpsb/'});
window.location.replace("https://cloudnestra.com/prorcpsb/YmM0MDFlYzljMzQ5ODllYzliZTNiMjljYjcyMThkNDk6V0Vaek9GWk9USFF3UjFZemNITnNOM2d5SzJ0bVdXWnhXbGx2UW13MFp6SjZOMUUyVFhFMFZraDBZMDAzUjJnMlVIRldXa3hRVkRSaWMxYzBNVVUzYW1oT2JrUm9RUzlMTjI1UmFFRmFTR3RJZGxaM2MwSk1kVlJCUzI5T2NFd3JNaTloTmpaRk1FbHZlbkJZV0dkTlozSkZjM1ZRY1VFM1N6aHVaRUZ6VFRkc2VFbDBaVlpPYjJWdWFISXlMMFppY2tGQ2JISjBlVzFETm1kc1MzWnpOeXRXYzNSUWVITkZla1pzVVhoQ1VVWkhjWGxKU0UxT05YUTVVak4xUlhGbk1YVjRZMjV6ZFVnNFVXRXlOMlJOV1RBM1FscE9UbkZCTldkWlRtNWhlR2RpWjB0T1MwaE1WMWxaTVVWeVltSnpTR2hwYUVJcmVuUlpZbGhPUzBGUmNVNUViMjVpUVZsRGJYUklUSE5NZEdWcU9XOUlLMVZTTlVzdlkwVnNhMk5oYm5kc2J6SnBlbTFVVlVOeU9YQTNlbU0xTnk5RWVuVnNUMUZ5WjAxTlZtTmxZMEp3ZWtVd01uVlRZMWhqV2pSNVdVTjFlR3h5ZFRsRVdHSXdkR2hHVEdnMGNWaFFWekpZUTJndmQwUnFPRVI0Y1VsNmIyOHlVR0ZRUTB0U1NHMUxlRGhXYzJ0T2VrZGhibXBMUml0NFltVkRZWEIxTDJaVFNsazJTa2wyY20xU1JFMUViQ3RtVW5FMVJtd3lTbXhVZVVSSVpuTjBielJHTWtKRWNYZEZkM05aV20xaFMyaERkWE00VDJKdlYzb3pOMDVUUkdGdVRYSnJhbmw2TVVOMlJsZFRMMDAyYW1WcmFtVlVhakpMVGxrcmFFZE5WVVptV0ZvM05YWXdZMk5hWkRSc2VFcEVlVFpEUldKMEsybE9VbVJrVG1GWlIxTk1iMU5JY0hnelJFdGxibFEwWkhOcVJFMWtOakZWUnpkbWVYaDVaamR0UjFkQ1NGTlNWbXd3U0RrMWJ6SjFXa2RvZWtONU5FaDJhRUZMZUVkRlVGY3plVE5aT1ZKUE9TdG5ZMDVXUTI5eU5HMXpWMUYzVURKWWJuVkdiemN2U1d4aFVYSjNTRVF4U1hWbFFYZ3JjMGg2V1Zndk0wMTJhazFOWm1GR2FuVlVkMmxCVEVFcmJrODJLM0ZSU21zeVNHOVhNVFpJU1hSREx6ZGFTRWx6YzNVd1JUZGlUMXAyWVc4MFFTOHlhRmRoYUcxRk9XOUdkRlZYV0ZneksxRktOSE53Vnl0TFZWbDBLME40UjBaVVUzaDBhRFpNT0ZKMlpVNVZTMk40UzJOVEwzcEZRbXhIWjBoa2VHVkRXbWd2Y2xVNVUybG9PR2t2WW5sTFYwOHZNekpZZVhFNVRsRlhTVkp3VkZkRWFFMWlUekZMTVc5cWQyWXZlRUpZWW1KVlJWTllNRUV2YUV0TVUxSndhV2xQTDFCV2RHeHVNMFZ4UjFsTVJrbFdZVXhIY0haVWFXb3pOemxXU1ZOVGFGbFZSMHRuYlRoVmVtTk5WMU5DWmtocFZtUXJiamhrWlU5emVWaFZaak0wZDBkelZtdFllVnB3ZDNCT1Iwc3hlRE5zVFhjcmFWZHdOSEpDYldWNWJHd3ZLMmR6VUd0NlYxa3ZSR2hhVjNkWlRreHNUak41TkZWV2MzWXhLMU5FSzFsS1RWTnZPVEZQZW1oU0swMDJUVUZOYlhCMVdVUmxjMWhEYVZGcmFta3pkVlJ2VXpGNFdXSm1VRWxQVFRBNGRGVTRabGxFZEVOUVVGSTBUelF6U0hZeVRGcFhVbTlFV0VoNmRYVnBRVFJ6TWxGRU5VWkthR3d3ZUc1UldIVjVOSGhEYW5SbFRFbFZaRFJHUVdsR1RpODRTVmxQYkcxeVp6QTNOelpJWWxaTGFWa3diVzF1YlVwMWNraGljR3RPUjNoRk5taFNZalU0VDJWMWFrNXFZbWhaTDJ0d1pGZ3ljaXRZU2tKNllrSjRMM2RXZDBwaE9HTlNhek4wZDBGbGFuWkNOMmw2TUdaRlJUSktRbk41Y0c5UE5WZFpWbnBhY0c5eWFIRnZSamxzVUdoWVdDOURUVDA9");
}
//}
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 == "subtitle"){
var sub_lang = get_lang_from_name(data);
sub_shown_lang = sub_lang.ISO639;
}
}
function openVidsrc(){
var win = window.open('https://vidsrc.me/', '_blank');
if (win) {
//Browser has allowed it to be opened
win.focus();
}
}
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 == "mute"){
player.api("mute");
}
if(message_data.action == "unmute"){
player.api("unmute");
}
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);
}
function reloadWithPost(data) {
const form = document.createElement('form');
form.method = 'POST';
form.action = window.location.href.split('?')[0];
for (const key in data) {
const input = document.createElement('input');
input.type = 'hidden';
input.name = key;
input.value = data[key];
form.appendChild(input);
}
document.body.appendChild(form);
form.submit();
}
</script>
<script data-ssr="1" data-cfasync="false" async type="text/javascript" src="//seattleunderly.top/r6849ea3568d11/108734"></script>
</body>
</html>

View file

@ -0,0 +1,6 @@
#EXTM3U
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-STREAM-INF:BANDWIDTH=926804,CODECS="mp4a.40.2,avc1.42c01e",RESOLUTION=640x358,FRAME-RATE=24,VIDEO-RANGE=SDR,CLOSED-CAPTIONS=NONE
/pl/H4sIAAAAAAAAAwXB7XqCIBgA0FtCsa_97IMcFSa.gPBPwc1H0Fm5Wl79zllVS4eRdZv10uJkuarrJF7Yr8at1lWyRvZDC7cFP3IT2YU4PHAmiGKB59C1Z41bbUQ7czDQ.AgpMv6csHtqNTFGzMMGessV_bOSvRkadab4riBhWx0nxuPxDtFnXMSjqAOdM5AtK3lyjjxiyD.LYAaRbqvC8_MF_L0Bsq8GeuGHxUlLU9rSZapvkSTyUfsNkcEJi8eb9jRpRPJkMTO6H4mV33cnaCqP_LeIpw46iVlHrxDp2c6G5ILtbeoC9I42itxy_3plqev50N5FLDHfTS94T1AQKXUZrmwOA1dtVIFFOaDNP7JZ1PhBAQAA/f2a0a2e3ac935bed168e40c6c28105d7/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2987782,CODECS="mp4a.40.2,avc1.42c01f",RESOLUTION=1280x714,FRAME-RATE=24,VIDEO-RANGE=SDR,CLOSED-CAPTIONS=NONE
/pl/H4sIAAAAAAAAAwXB7XqCIBgA0FtCsa_97IMcFSa.gPBPwc1H0Fm5Wl79zllVS4eRdZv10uJkuarrJF7Yr8at1lWyRvZDC7cFP3IT2YU4PHAmiGKB59C1Z41bbUQ7czDQ.AgpMv6csHtqNTFGzMMGessV_bOSvRkadab4riBhWx0nxuPxDtFnXMSjqAOdM5AtK3lyjjxiyD.LYAaRbqvC8_MF_L0Bsq8GeuGHxUlLU9rSZapvkSTyUfsNkcEJi8eb9jRpRPJkMTO6H4mV33cnaCqP_LeIpw46iVlHrxDp2c6G5ILtbeoC9I42itxy_3plqev50N5FLDHfTS94T1AQKXUZrmwOA1dtVIFFOaDNP7JZ1PhBAQAA/ea18a1816b821e1ba4ee5d4a76b0b7cf/index.m3u8

View file

@ -0,0 +1,8 @@
#EXTM3U
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-STREAM-INF:BANDWIDTH=884887,CODECS="mp4a.40.2,avc1.42c01e",RESOLUTION=640x346,FRAME-RATE=25,VIDEO-RANGE=SDR,CLOSED-CAPTIONS=NONE
/pl/H4sIAAAAAAAAAxXK226DIAAA0F8CrGvd27oCq1UcyP1NQdtUaozptsyvX3aez9DBQxgjgBmAPeqK_Yh2eTeG4tAPMCDwysHNaeDbevKVMM.XgMWps2XtTWGkLR8M.feQ2KroeeXG_db4vCq82.T8lkerZ0OTlLLsWuA2lnwT1FK7e6r0B5nEHL_4pNAgme2sJj28_kT0f0kuya0Sj6W6wONRnkrpAHP9vZwEzRE3T8JOohmwtwMlTimNeiw2BQWRsM4CKZ3PFuUyT1usLy6LWb3F1s3p0hPRSpqqxibcPpaG3.Mq5qS4vn4bqm.NTp8KFzOfmBykWP4AirgCPSEBAAA-/e2f2579229bebcfbb0eafde12cbc1bf9/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2911865,CODECS="mp4a.40.2,avc1.42c01f",RESOLUTION=1280x694,FRAME-RATE=25,VIDEO-RANGE=SDR,CLOSED-CAPTIONS=NONE
/pl/H4sIAAAAAAAAAxXK226DIAAA0F8CrGvd27oCq1UcyP1NQdtUaozptsyvX3aez9DBQxgjgBmAPeqK_Yh2eTeG4tAPMCDwysHNaeDbevKVMM.XgMWps2XtTWGkLR8M.feQ2KroeeXG_db4vCq82.T8lkerZ0OTlLLsWuA2lnwT1FK7e6r0B5nEHL_4pNAgme2sJj28_kT0f0kuya0Sj6W6wONRnkrpAHP9vZwEzRE3T8JOohmwtwMlTimNeiw2BQWRsM4CKZ3PFuUyT1usLy6LWb3F1s3p0hPRSpqqxibcPpaG3.Mq5qS4vn4bqm.NTp8KFzOfmBykWP4AirgCPSEBAAA-/0e258eeccefba231686dc455bae2c1be/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=5301648,CODECS="mp4a.40.2,avc1.42c028",RESOLUTION=1920x1040,FRAME-RATE=25,VIDEO-RANGE=SDR,CLOSED-CAPTIONS=NONE
/pl/H4sIAAAAAAAAAxXK226DIAAA0F8CrGvd27oCq1UcyP1NQdtUaozptsyvX3aez9DBQxgjgBmAPeqK_Yh2eTeG4tAPMCDwysHNaeDbevKVMM.XgMWps2XtTWGkLR8M.feQ2KroeeXG_db4vCq82.T8lkerZ0OTlLLsWuA2lnwT1FK7e6r0B5nEHL_4pNAgme2sJj28_kT0f0kuya0Sj6W6wONRnkrpAHP9vZwEzRE3T8JOohmwtwMlTimNeiw2BQWRsM4CKZ3PFuUyT1usLy6LWb3F1s3p0hPRSpqqxibcPpaG3.Mq5qS4vn4bqm.NTp8KFzOfmBykWP4AirgCPSEBAAA-/f4afc016a800ba375016f4bc9771890f/index.m3u8

View file

@ -0,0 +1,268 @@
<!DOCTYPE html>
<html>
<head>
<title>Full Metal Jacket (1987)</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="93058" >
<div id="loading_overlay"></div>
<div id="the_frame">
<iframe id="player_iframe" src="//cloudnestra.com/rcp/NmRlYTUxMjk4MjNlOWE1NWRjYjU2MzhhN2U2ZWJiZTM6YzBwNVowa3hhVFpOZFUxRk9YTkpaRlZ1ZDBwU1IydFNjRll4VGpWb2J6WnJNVVJGU2xWNkwzUmpURWw0WW5KQk5FcFdPVzVsT1Vwb1FrRnlRbVpCY2pjNFUyRkVablJFUjJGelpFVmlaR0Y1VGtnMmREQmpXQ3M0T0VaQ2VrNVVaSHBqYTFwc2NFMTJhbll5VVZaTmNVZEZNVEZJVGpsalRWZGxkak5xZUU4dkwxQmtVMnByYWxCTVRVSjFhM1F4YmxaWmNrZDFja1pLUWpOV2VISkxiVTVXVEhCa1QyZHFTRVJSTmsxWWMyVjJhMUphVUhsQldESTJZbkl4U1ZwbmVXeFNOV1l3VjA1M2NqYzNia1JxVDI4d1puUm1WamhaUlVwclIzRjJTM2xPVWpJeU5sbDNiR1pZWm04MVlqbG1kV3QzTjB0NFVFczBWazB4Y0dGV2VtRjNTRkY1ZEVKVmNDOUhabUpKUkhWNVNXZHRjbUZ4UjA5U2VFZEhhR3R2YzAxMVpHRmhWR1ZEUzFaMVNVWjZTMFJNWTFsUWVGQkZhblF6Y21nclRIQlJObUZxTW5GV09VdzJNRVJNZW5OdFVEZFNVelZoVVdWdlJVUTJabVJXUWs0Mk9XazJURTByWkZCSWVGVjZjRFJaVW5GMVZFRlliM1pTWjI5QlpFcHZjMHBCU1RsVVlsUTBRVkZ5VDIxV2RXbzFRVU5ZT1VvdmFFUkdObUZFYW1GRWFGVkdiMko1Ynk5T1dWRnVjRmRwZGxSd1puZHZiMFJrY21weVMyOVRXa1JxTmtWT2VGbElhVlZFVkhZMFNVOTVjM0pLZVRCTlNqTnhPV3B2Ulc5NWFuUkRNV0pVYTFWMWVtNTVha2wxVFc1dmQxcENNbmxuV2tKdVJVdFdiV1JNWVdoUFF5OTRTR3RCV2tkSFNYaElSamgyUjNwSU5WY3pUbVpDUVZkVWQzQkZhRGRRVkhsVGRGSm5iVXRwWVU5cFIwcHRka0kzZWxOTk1WVlZWbTlRY1VScU0yVm1kVm9yY0VNME5rWm1iV28xZWxZMFZ6RjZTVlJtWlRCRFZrcDBjR3hoT0hoeVVtMTBVVzQ1YkRVNUsyeHFlQzlXV1RGR1kzSkZLM3BRTHk4eU5rMTJTQzl0WTBwVmNIQkVjQ3RNUkU1MGQwaEVZM1pvWldoMWVFaFhTbTl0WW5kbFZFb3dhM0ZQVGxCaU1VRjJOMVUxYTJKVFkyeFRWSGRCV0VGMVNWbzFWRzFVVWtKak1EaDZaRlF2SzJOblkzaE1OR0oxUzA1R2VtTXlLM1Z2VUVZNU0wSnFiMHMxVDBsWVNHVk5iekZpU2xsR2RHcDFNSGxIUjBZdldDdGpkelZLTVhSV05FTTBWRWd6ZWtVM05WQnBTR2hLTDNWMGRtNU5OazA1Y1c1cVl6bHdObnBrWkZRdldFVkNOaTlZY1M5Q2IwRnVkVkZ3V1cxMmFYSlZWRmxWVEc0ekszRlJhM1pZUlVKdU5saE9ZUzkzZDNCNVNpdG1NWGxqV1c5bFRGb3hXbTltUzNkUGVUQTRTVmg0UTJnMGRWUnZWbU54VjBoWGVsZGpOV053UnpKVWVqQnpSMVEwY25kbmFHSmtOVmsyWldoT1ZuaDZMMlJOYkU5a04xTXZXVGsyVlUxNmJWbDFSMVJtZW5KME1tbG5kVGR2WVc1MVlUUjBOa1JXZVZwRk16UnNjMDluZGtZMk1HeG9jVUoyYVRrNGVVWXJVVXRLU3pCUWJUY3pUbXBVZG1SUGMzTXJPRTFOV2xOT05tZ3lRV3B6UkdWSmVVczRRV1JzTVdSWlYzbFlUbVV4VWxsa2NqUXdialJ4YkRBdlNrUjZhM2RNYldJclJGaEJlR05HYkd0SVlXUkhWbVZMZFhaM09IZ3ZXWGh4Yld0T2VFbEtTR2xqTmpkTWFFZEJNVFZIUnpKTWRIZFJSMDFwVlRaSFp5dFFkRkpTUkZFMFpraDBXbkJTWVZKVFIzQlBkR3cxZUVsNGFFTkZTMjV2VUhaUFdpOVlUeTlUYkdONFl6aEpVRXBuVW5wUFVtZ3lOM0pXUkdobVVUMDk-" 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="NmRlYTUxMjk4MjNlOWE1NWRjYjU2MzhhN2U2ZWJiZTM6YzBwNVowa3hhVFpOZFUxRk9YTkpaRlZ1ZDBwU1IydFNjRll4VGpWb2J6WnJNVVJGU2xWNkwzUmpURWw0WW5KQk5FcFdPVzVsT1Vwb1FrRnlRbVpCY2pjNFUyRkVablJFUjJGelpFVmlaR0Y1VGtnMmREQmpXQ3M0T0VaQ2VrNVVaSHBqYTFwc2NFMTJhbll5VVZaTmNVZEZNVEZJVGpsalRWZGxkak5xZUU4dkwxQmtVMnByYWxCTVRVSjFhM1F4YmxaWmNrZDFja1pLUWpOV2VISkxiVTVXVEhCa1QyZHFTRVJSTmsxWWMyVjJhMUphVUhsQldESTJZbkl4U1ZwbmVXeFNOV1l3VjA1M2NqYzNia1JxVDI4d1puUm1WamhaUlVwclIzRjJTM2xPVWpJeU5sbDNiR1pZWm04MVlqbG1kV3QzTjB0NFVFczBWazB4Y0dGV2VtRjNTRkY1ZEVKVmNDOUhabUpKUkhWNVNXZHRjbUZ4UjA5U2VFZEhhR3R2YzAxMVpHRmhWR1ZEUzFaMVNVWjZTMFJNWTFsUWVGQkZhblF6Y21nclRIQlJObUZxTW5GV09VdzJNRVJNZW5OdFVEZFNVelZoVVdWdlJVUTJabVJXUWs0Mk9XazJURTByWkZCSWVGVjZjRFJaVW5GMVZFRlliM1pTWjI5QlpFcHZjMHBCU1RsVVlsUTBRVkZ5VDIxV2RXbzFRVU5ZT1VvdmFFUkdObUZFYW1GRWFGVkdiMko1Ynk5T1dWRnVjRmRwZGxSd1puZHZiMFJrY21weVMyOVRXa1JxTmtWT2VGbElhVlZFVkhZMFNVOTVjM0pLZVRCTlNqTnhPV3B2Ulc5NWFuUkRNV0pVYTFWMWVtNTVha2wxVFc1dmQxcENNbmxuV2tKdVJVdFdiV1JNWVdoUFF5OTRTR3RCV2tkSFNYaElSamgyUjNwSU5WY3pUbVpDUVZkVWQzQkZhRGRRVkhsVGRGSm5iVXRwWVU5cFIwcHRka0kzZWxOTk1WVlZWbTlRY1VScU0yVm1kVm9yY0VNME5rWm1iV28xZWxZMFZ6RjZTVlJtWlRCRFZrcDBjR3hoT0hoeVVtMTBVVzQ1YkRVNUsyeHFlQzlXV1RGR1kzSkZLM3BRTHk4eU5rMTJTQzl0WTBwVmNIQkVjQ3RNUkU1MGQwaEVZM1pvWldoMWVFaFhTbTl0WW5kbFZFb3dhM0ZQVGxCaU1VRjJOMVUxYTJKVFkyeFRWSGRCV0VGMVNWbzFWRzFVVWtKak1EaDZaRlF2SzJOblkzaE1OR0oxUzA1R2VtTXlLM1Z2VUVZNU0wSnFiMHMxVDBsWVNHVk5iekZpU2xsR2RHcDFNSGxIUjBZdldDdGpkelZLTVhSV05FTTBWRWd6ZWtVM05WQnBTR2hLTDNWMGRtNU5OazA1Y1c1cVl6bHdObnBrWkZRdldFVkNOaTlZY1M5Q2IwRnVkVkZ3V1cxMmFYSlZWRmxWVEc0ekszRlJhM1pZUlVKdU5saE9ZUzkzZDNCNVNpdG1NWGxqV1c5bFRGb3hXbTltUzNkUGVUQTRTVmg0UTJnMGRWUnZWbU54VjBoWGVsZGpOV053UnpKVWVqQnpSMVEwY25kbmFHSmtOVmsyWldoT1ZuaDZMMlJOYkU5a04xTXZXVGsyVlUxNmJWbDFSMVJtZW5KME1tbG5kVGR2WVc1MVlUUjBOa1JXZVZwRk16UnNjMDluZGtZMk1HeG9jVUoyYVRrNGVVWXJVVXRLU3pCUWJUY3pUbXBVZG1SUGMzTXJPRTFOV2xOT05tZ3lRV3B6UkdWSmVVczRRV1JzTVdSWlYzbFlUbVV4VWxsa2NqUXdialJ4YkRBdlNrUjZhM2RNYldJclJGaEJlR05HYkd0SVlXUkhWbVZMZFhaM09IZ3ZXWGh4Yld0T2VFbEtTR2xqTmpkTWFFZEJNVFZIUnpKTWRIZFJSMDFwVlRaSFp5dFFkRkpTUkZFMFpraDBXbkJTWVZKVFIzQlBkR3cxZUVsNGFFTkZTMjV2VUhaUFdpOVlUeTlUYkdONFl6aEpVRXBuVW5wUFVtZ3lOM0pXUkdobVVUMDk-">CloudStream Pro</div>
<div class="server" data-hash="NTQxYmZlODk0ZDZlYWMzY2VmMTkyZTM0NjRmMzU4MmY6WkVwdmVWRllNbGRyT1c5cU5FcDFPVTFXYWtoMlVGcHZja05qY3pGVGJFeEZVR2RNYzBNcldXc3dlbGhYZUVKNVQxYzBjVnBGVUdZNU5IRjNTVFpxZW5wUlJtWnpTak5DWlVkc09EWk1TRWhFYTAxdlZXdHFaMjhyZWxNNWVYZ3hVbEJMVkdGNVprRnZlRzV1WWxkSGEyMHlRMnBWV1c5S2QwWXdRVU5EU1hscFVrSm5WRUZJYUVSclNsRXlWVUphY1ZJeUwzRm5RV3RPV0ROa2ExUXJZWFJ2TldWVldsSTFaSFIyZWtaRGVtdEpjVlZQY0VGWFpqUTRlREZrWjBSNA--">2Embed</div>
<div class="server" data-hash="ZmU3MTgyZjAxMTNjMmI1YjliYzk0MjIxMWZhOGMxZDc6Y1d4VVFXRmFWa2Q2VlhKWU0wNVlZMGtyV0ZwRFRHOU9PVkJVUzJSVE56WmFOSFZVVVZKdmRXazVObUkyWkdwQ1ExaE9SMlJaTUhwRlEzTlpSM0F3YVZGamQyNTNNbkE0WW1aSFRVVm5VbE5XT1dkc1VtYzlQUT09">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 = '0c7e9a7d03c674706dd16dcf5debaf29';
/*
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?_=1749672944'><\/script>");
</script>
</body>
</html>

View file

@ -0,0 +1,268 @@
<!DOCTYPE html>
<html>
<head>
<title>Black Mirror (2011) S04E02</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="2085059" data-s="4" data-e="2" >
<div id="loading_overlay"></div>
<div id="the_frame">
<iframe id="player_iframe" src="//cloudnestra.com/rcp/ZGNmMmMwNjIwNGU3Nzg5ZDVkZDg5YTY1N2ZhY2QzNDg6UlRNemNUVk9jRk5LZW1obUswMTZVbTFLUkVWeU0zbFlla3hYUjNoblYzSlVla2RwVFhoWVlsWndXVE5qUVRoRVlqTldiV2w2Y2xoV1QxWnBLM053VW5Fd2QwRkNRVTUyTURKbFJHTmFjV2xYWW5aTFdqbG9kbkJPWW5sQ2N5ODRZMEZpZW1oMGJ6QlpRMkpVZFVkdU1WZHRaa3BIUzFFdmFHVXpVWGxxVHpaVVFXcFlSa3QzYVROMGRrRlRPSEZLU2pKNVNXaE1LMHR5YTNZeU1XeGpNR0psYnpkck1XVldWMHRKWTBsTmRsTXJNekEwTjJwbFdrdG5NRm8wYlZKdk56QXZNVTh3YzAxaGJEQXlUVGhYTVZGNFp5dFFjVWxWYkRReE5uQnZXalpGWms5bldGVlhUVWwzVjNGMVRUUkdTa3huZWl0RGFVOUNiMkZYZEN0b1pXZHdWMjRyVUhWemVFUmtVbTlvYUZScVFtVTFTRUZNUmxkSmNWUlJXVE5YWjJSa2NEVTBha1ZETkdGcFJISjFZMHczY3k5cVMxUllSMlJOTURnMWVWVjVZalZYTm1OWVJ5ODNkV2t6YWtjNVMxQTJTRkpHZVZOS00ySmhNMHBvYjBGWVVqSm9RVkk1VmxoQk1uWkdTbEZDZEdKVFZHTTVSRlYwU1hGM1NHdzVkV1poUzFaRFQzaFdSMUJEWlhod2MybEhRbmRCZUhSalpWTmpTRWRpVGpSaWNGUlVVa294YjNacU4xZEVVVGRhZG5GQlRuaFFOV3BMZWxoakwwbHBha0ZzT1U5UlpqZHhOaXRZWVVWeEt6UTVRVVZTU1RoNGJHZ3JiSE51U21SdlpEUXhkRVJZVWxWT2RqWXdZVGwwYzBkS1pXbFZiR2RwUVdKeUszSktabTlKZVdsalIyaHlVblY0TkdJeVJXUndTMk5xU0hCc2VVZHBUbEZUTjBsUU5VZzVWU3RRV1dSM1RWbG9VSGRzYkVkd1pFNHhhVFpTV2xrM2FtWklXRXBQUTNadWRrOW9VbW94T1VKQ1RWcFFRM2RDY3k5d1FTOUZRbHBRVUVsU2JuRXhTWEJ3WTA5UEwxSmhNRUZYZHpaWU1HODNWMnh0VUhSemFIcE5kMXBzYWt4Rk0waGtkblVyTjBOblpHZElOa0l3UkdwUk4wMU9LMEpMVFU1SWFrdzBjbGhrVGxaV1RqaEZOME5yZW5FM2RucGhNMmxrU1dsWlRGcDNNVGRvYlRsV1pHUmliVzFxVlcxU1UwSnhSWE5sZFdjMk9FRnBhVElyY0VGRGRURkVabU5LT0ROMlEwdFFlRzloZGxaM1NtMWtTVXQxTUdkS2FrdE5VMFIwYkU5UFZsUlBhV016YzI1dlVUQmphRWRtVWtoVWVYSllVVTlFZDBwTmNsaE9ZeTl0Y0RaU1duWkNOMVJzVGxSSGFsUjNhMnhNTlhsS09YSlZhVGRsVnpGdk5VRlFaakI0YVdKalVXWkNWbUozVkVsa1ZqUkNORTlFTlZKa1dWaFhkVXBhWVVKS1EySlRXVFptUVRoV1NIVTBja0pzUzNZM2JIcFFVamQ1U1V4cE1GZENiRTUzYkROcVZ6TmtRbUYyT0dkdVIwSnVZMVZGT0Zkb1ZHdDJSbVJYZGxka1FVNVJWMDFuV1U1Nk1qaEdVa3QyVjBFMFlUUjVkbTA1UlhKc1YxTkRiWGRxVVV0VFpWTlNjbFZvTlhkWE4zWTNRVEJ3VW5JMVZFbEdTa00yVVhKMFVUVkpWV0l4UjB0YU1IazJZbGhhZW1abFRFRnlRbmRSYURZNWRFTkhRVTFTTVdWT2RXRmxSREEyUkZBM09HdG9iMmxXZG5oM04wVmxaelpFTTNSblNXWkhkM0p4SzI5UFJrbEpUMHRpVDJwU1kyNHJNbmR4YVRWMU56SklWVTFzY0ZkRk1WaEpNMEpIT0RWS2QwVmlNbTlDT1VKSVVqUk1WaTlWYmtjemJscFNURVE1UjNCMVZFSldOakIzWXpkNU1USktRWGhaSzBoU1V5dG9SbEIzVmxBeFFWSktTMWh1U1hwNFMwZFpTbFV6ZEN0WVdXMXZVblUwV2psSVkxcG1ORWhXWjNReE5FcFdjejA9" 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="ZGNmMmMwNjIwNGU3Nzg5ZDVkZDg5YTY1N2ZhY2QzNDg6UlRNemNUVk9jRk5LZW1obUswMTZVbTFLUkVWeU0zbFlla3hYUjNoblYzSlVla2RwVFhoWVlsWndXVE5qUVRoRVlqTldiV2w2Y2xoV1QxWnBLM053VW5Fd2QwRkNRVTUyTURKbFJHTmFjV2xYWW5aTFdqbG9kbkJPWW5sQ2N5ODRZMEZpZW1oMGJ6QlpRMkpVZFVkdU1WZHRaa3BIUzFFdmFHVXpVWGxxVHpaVVFXcFlSa3QzYVROMGRrRlRPSEZLU2pKNVNXaE1LMHR5YTNZeU1XeGpNR0psYnpkck1XVldWMHRKWTBsTmRsTXJNekEwTjJwbFdrdG5NRm8wYlZKdk56QXZNVTh3YzAxaGJEQXlUVGhYTVZGNFp5dFFjVWxWYkRReE5uQnZXalpGWms5bldGVlhUVWwzVjNGMVRUUkdTa3huZWl0RGFVOUNiMkZYZEN0b1pXZHdWMjRyVUhWemVFUmtVbTlvYUZScVFtVTFTRUZNUmxkSmNWUlJXVE5YWjJSa2NEVTBha1ZETkdGcFJISjFZMHczY3k5cVMxUllSMlJOTURnMWVWVjVZalZYTm1OWVJ5ODNkV2t6YWtjNVMxQTJTRkpHZVZOS00ySmhNMHBvYjBGWVVqSm9RVkk1VmxoQk1uWkdTbEZDZEdKVFZHTTVSRlYwU1hGM1NHdzVkV1poUzFaRFQzaFdSMUJEWlhod2MybEhRbmRCZUhSalpWTmpTRWRpVGpSaWNGUlVVa294YjNacU4xZEVVVGRhZG5GQlRuaFFOV3BMZWxoakwwbHBha0ZzT1U5UlpqZHhOaXRZWVVWeEt6UTVRVVZTU1RoNGJHZ3JiSE51U21SdlpEUXhkRVJZVWxWT2RqWXdZVGwwYzBkS1pXbFZiR2RwUVdKeUszSktabTlKZVdsalIyaHlVblY0TkdJeVJXUndTMk5xU0hCc2VVZHBUbEZUTjBsUU5VZzVWU3RRV1dSM1RWbG9VSGRzYkVkd1pFNHhhVFpTV2xrM2FtWklXRXBQUTNadWRrOW9VbW94T1VKQ1RWcFFRM2RDY3k5d1FTOUZRbHBRVUVsU2JuRXhTWEJ3WTA5UEwxSmhNRUZYZHpaWU1HODNWMnh0VUhSemFIcE5kMXBzYWt4Rk0waGtkblVyTjBOblpHZElOa0l3UkdwUk4wMU9LMEpMVFU1SWFrdzBjbGhrVGxaV1RqaEZOME5yZW5FM2RucGhNMmxrU1dsWlRGcDNNVGRvYlRsV1pHUmliVzFxVlcxU1UwSnhSWE5sZFdjMk9FRnBhVElyY0VGRGRURkVabU5LT0ROMlEwdFFlRzloZGxaM1NtMWtTVXQxTUdkS2FrdE5VMFIwYkU5UFZsUlBhV016YzI1dlVUQmphRWRtVWtoVWVYSllVVTlFZDBwTmNsaE9ZeTl0Y0RaU1duWkNOMVJzVGxSSGFsUjNhMnhNTlhsS09YSlZhVGRsVnpGdk5VRlFaakI0YVdKalVXWkNWbUozVkVsa1ZqUkNORTlFTlZKa1dWaFhkVXBhWVVKS1EySlRXVFptUVRoV1NIVTBja0pzUzNZM2JIcFFVamQ1U1V4cE1GZENiRTUzYkROcVZ6TmtRbUYyT0dkdVIwSnVZMVZGT0Zkb1ZHdDJSbVJYZGxka1FVNVJWMDFuV1U1Nk1qaEdVa3QyVjBFMFlUUjVkbTA1UlhKc1YxTkRiWGRxVVV0VFpWTlNjbFZvTlhkWE4zWTNRVEJ3VW5JMVZFbEdTa00yVVhKMFVUVkpWV0l4UjB0YU1IazJZbGhhZW1abFRFRnlRbmRSYURZNWRFTkhRVTFTTVdWT2RXRmxSREEyUkZBM09HdG9iMmxXZG5oM04wVmxaelpFTTNSblNXWkhkM0p4SzI5UFJrbEpUMHRpVDJwU1kyNHJNbmR4YVRWMU56SklWVTFzY0ZkRk1WaEpNMEpIT0RWS2QwVmlNbTlDT1VKSVVqUk1WaTlWYmtjemJscFNURVE1UjNCMVZFSldOakIzWXpkNU1USktRWGhaSzBoU1V5dG9SbEIzVmxBeFFWSktTMWh1U1hwNFMwZFpTbFV6ZEN0WVdXMXZVblUwV2psSVkxcG1ORWhXWjNReE5FcFdjejA9">CloudStream Pro</div>
<div class="server" data-hash="ZWE3ZTA5NjRmYTdmZmRmNjVjMWFkZmNjMGRlNTFiNjQ6Yld0a1FrMXBSM2d2ZDI1NU0wMTZNVkpzYkdjeWNXc3paV0o1VURKUllVSXJVbEJLU2twbWNHTm9NbFpuV1ZwYWJGVnlha1ppU1RZeVVrTTVNV3BsUldFMlozaEVjbTFoYjA1dFdYZEZXSEV6WTJ0cE1FZENjbWhPVUd4Q1pUaFdORVZWWmtsNFRrOVRRMWhYV1VaSFpqUnZZbFJLVURCTFdHRnFXVVZhYkUxUWRDOTFRa1pLYWpJcllWTlhZMDVCTVZaRFVEVnVLMUJ5UlZwYWFXTktZblZPVW01TFowSm1XV2gwZVRCaE9FNHdabEV2ZVdVNWQySkljbFZzVkd4Rg--">2Embed</div>
<div class="server" data-hash="NWE2ZDY3Yzc2ZTA5YzRlMmYxZjZmZWQyYzMyNTM5NzI6YjJkeFZURXJhbkJGTDJnMFlrNTZWRzF3UmtwT1JXUnFRV016Y2taaGR5OXNWV3hsTkZWcGEwSnRUMkpCY2tkWGFtWXdNbU5sZUdsU2EyVk5URzk0UjJGM1kxbEtWRVZIUzFwNlYxWTNjMkp5U0hwUE5IYzlQUT09">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 = 'd95b3482760d7e331a0e4505fe338f2d';
/*
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?_=1749672944'><\/script>");
</script>
</body>
</html>

View file

@ -1,6 +1,7 @@
import fs from 'node:fs';
import slugify from 'slugify';
import winston from 'winston';
import crypto from 'crypto';
import { Context } from '../../types';
import { envGet } from '../env';
const { Fetcher } = jest.requireActual('../Fetcher');
@ -13,23 +14,31 @@ class MockedFetcher {
}
readonly text = async (ctx: Context, url: URL, init?: RequestInit): Promise<string> => {
const path = `${__dirname}/../__fixtures__/Fetcher/${slugify(url.href)}`;
const path = `${__dirname}/../__fixtures__/Fetcher/${this.slugifyUrl(url)}`;
return this.fetch(path, ctx, url, init);
};
readonly textPost = async (ctx: Context, url: URL, body: string, init?: RequestInit): Promise<string> => {
const path = `${__dirname}/../__fixtures__/Fetcher/post-${slugify(url.href)}-${slugify(body)}`;
const path = `${__dirname}/../__fixtures__/Fetcher/post-${this.slugifyUrl(url)}-${slugify(body)}`;
return this.fetch(path, ctx, url, { ...init, method: 'POST', body });
};
readonly head = async (ctx: Context, url: URL, init?: RequestInit): Promise<unknown> => {
const path = `${__dirname}/../__fixtures__/Fetcher/head-${slugify(url.href)}`;
const path = `${__dirname}/../__fixtures__/Fetcher/head-${this.slugifyUrl(url)}`;
return JSON.parse(await this.fetch(path, ctx, url, { ...init, method: 'HEAD' }));
};
private readonly slugifyUrl = (url: URL): string => {
if (url.href.length > 255) {
return slugify(`${url.origin}-${crypto.createHash('md5').update(url.href).digest('hex')}`);
}
return slugify(url.href);
};
private readonly fetch = async (path: string, ctx: Context, url: URL, init?: RequestInit): Promise<string> => {
const errorPath = `${path}.error`;

View file

@ -1,4 +1,4 @@
import { Fetcher } from './Fetcher';
import { CustomRequestInit, Fetcher } from './Fetcher';
import { Context } from '../types';
export const guessFromTitle = (title: string): number | undefined => {
@ -10,8 +10,8 @@ export const guessFromTitle = (title: string): number | undefined => {
return undefined;
};
export const guessFromPlaylist = async (ctx: Context, fetcher: Fetcher, url: URL): Promise<number | undefined> => {
const m3u8Data = await fetcher.text(ctx, url);
export const guessFromPlaylist = async (ctx: Context, fetcher: Fetcher, url: URL, init?: CustomRequestInit): Promise<number | undefined> => {
const m3u8Data = await fetcher.text(ctx, url, init);
const heights = Array.from(m3u8Data.matchAll(/\d+x(\d+)|(\d+)p/g))
.map(heightMatch => heightMatch[1] ?? heightMatch[2])