Merge branch 'movie-web:dev' into goojara.to

This commit is contained in:
MemeCornucopia
2024-01-27 19:30:32 -05:00
committed by GitHub
5 changed files with 23 additions and 12 deletions

View File

@@ -2,6 +2,9 @@
title: 'Changelog' title: 'Changelog'
--- ---
# Version 2.1.1
- Fixed vidplay decryption keys being wrong and switched the domain to one that works
# Version 2.1.0 # Version 2.1.0
- Add preferedHeaders to most sources - Add preferedHeaders to most sources
- Add CF_BLOCKED flag to sources that have blocked cloudflare API's - Add CF_BLOCKED flag to sources that have blocked cloudflare API's

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "@movie-web/providers", "name": "@movie-web/providers",
"version": "2.0.5", "version": "2.1.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@movie-web/providers", "name": "@movie-web/providers",
"version": "2.0.5", "version": "2.1.0",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"cheerio": "^1.0.0-rc.12", "cheerio": "^1.0.0-rc.12",

View File

@@ -1,6 +1,6 @@
{ {
"name": "@movie-web/providers", "name": "@movie-web/providers",
"version": "2.1.0", "version": "2.1.1",
"description": "Package that contains all the providers of movie-web", "description": "Package that contains all the providers of movie-web",
"main": "./lib/index.umd.js", "main": "./lib/index.umd.js",
"types": "./lib/index.d.ts", "types": "./lib/index.d.ts",

View File

@@ -2,16 +2,14 @@ import { makeFullUrl } from '@/fetchers/common';
import { decodeData } from '@/providers/sources/vidsrcto/common'; import { decodeData } from '@/providers/sources/vidsrcto/common';
import { EmbedScrapeContext } from '@/utils/context'; import { EmbedScrapeContext } from '@/utils/context';
export const vidplayBase = 'https://vidplay.site'; export const vidplayBase = 'https://vidplay.online';
export const referer = 'https://vidplay.online/'; export const referer = `${vidplayBase}/`;
// This file is based on https://github.com/Ciarands/vidsrc-to-resolver/blob/dffa45e726a4b944cb9af0c9e7630476c93c0213/vidsrc.py#L16 // This file is based on https://github.com/Ciarands/vidsrc-to-resolver/blob/dffa45e726a4b944cb9af0c9e7630476c93c0213/vidsrc.py#L16
// Full credits to @Ciarands! // Full credits to @Ciarands!
export const getDecryptionKeys = async (ctx: EmbedScrapeContext): Promise<string[]> => { export const getDecryptionKeys = async (ctx: EmbedScrapeContext): Promise<string[]> => {
const res = await ctx.fetcher<string>( const res = await ctx.fetcher<string>('https://raw.githubusercontent.com/Ciarands/vidsrc-keys/main/keys.json');
'https://raw.githubusercontent.com/Claudemirovsky/worstsource-keys/keys/keys.json',
);
return JSON.parse(res); return JSON.parse(res);
}; };

View File

@@ -4,6 +4,14 @@ import { makeEmbed } from '@/providers/base';
const hlsURLRegex = /file:"(.*?)"/; const hlsURLRegex = /file:"(.*?)"/;
const setPassRegex = /var pass_path = "(.*set_pass\.php.*)";/; const setPassRegex = /var pass_path = "(.*set_pass\.php.*)";/;
function formatHlsB64(data: string): string {
const encodedB64 = data.replace(/\/@#@\/[^=/]+==/g, '');
if (encodedB64.match(/\/@#@\/[^=/]+==/)) {
return formatHlsB64(encodedB64);
}
return encodedB64;
}
export const vidsrcembedScraper = makeEmbed({ export const vidsrcembedScraper = makeEmbed({
id: 'vidsrcembed', // VidSrc is both a source and an embed host id: 'vidsrcembed', // VidSrc is both a source and an embed host
name: 'VidSrc', name: 'VidSrc',
@@ -15,10 +23,12 @@ export const vidsrcembedScraper = makeEmbed({
}, },
}); });
const match = html.match(hlsURLRegex)?.[1]?.replace(/(\/\/\S+?=)|#2|=/g, ''); // When this eventually breaks see the player js @ pjs_main.js
if (!match) throw new Error('Unable to find HLS playlist'); // If you know what youre doing and are slightly confused about how to reverse this feel free to reach out to ciaran_ds on discord with any queries
const finalUrl = atob(match); let hlsMatch = html.match(hlsURLRegex)?.[1]?.slice(2);
if (!hlsMatch) throw new Error('Unable to find HLS playlist');
hlsMatch = formatHlsB64(hlsMatch);
const finalUrl = atob(hlsMatch);
if (!finalUrl.includes('.m3u8')) throw new Error('Unable to find HLS playlist'); if (!finalUrl.includes('.m3u8')) throw new Error('Unable to find HLS playlist');
let setPassLink = html.match(setPassRegex)?.[1]; let setPassLink = html.match(setPassRegex)?.[1];