mirror of
https://github.com/movie-web/providers.git
synced 2025-09-13 10:33:25 +00:00
Merge branch 'movie-web:dev' into goojara.to
This commit is contained in:
@@ -2,6 +2,9 @@
|
||||
title: 'Changelog'
|
||||
---
|
||||
|
||||
# Version 2.1.1
|
||||
- Fixed vidplay decryption keys being wrong and switched the domain to one that works
|
||||
|
||||
# Version 2.1.0
|
||||
- Add preferedHeaders to most sources
|
||||
- Add CF_BLOCKED flag to sources that have blocked cloudflare API's
|
||||
|
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@movie-web/providers",
|
||||
"version": "2.0.5",
|
||||
"version": "2.1.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@movie-web/providers",
|
||||
"version": "2.0.5",
|
||||
"version": "2.1.0",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"cheerio": "^1.0.0-rc.12",
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@movie-web/providers",
|
||||
"version": "2.1.0",
|
||||
"version": "2.1.1",
|
||||
"description": "Package that contains all the providers of movie-web",
|
||||
"main": "./lib/index.umd.js",
|
||||
"types": "./lib/index.d.ts",
|
||||
|
@@ -2,16 +2,14 @@ import { makeFullUrl } from '@/fetchers/common';
|
||||
import { decodeData } from '@/providers/sources/vidsrcto/common';
|
||||
import { EmbedScrapeContext } from '@/utils/context';
|
||||
|
||||
export const vidplayBase = 'https://vidplay.site';
|
||||
export const referer = 'https://vidplay.online/';
|
||||
export const vidplayBase = 'https://vidplay.online';
|
||||
export const referer = `${vidplayBase}/`;
|
||||
|
||||
// This file is based on https://github.com/Ciarands/vidsrc-to-resolver/blob/dffa45e726a4b944cb9af0c9e7630476c93c0213/vidsrc.py#L16
|
||||
// Full credits to @Ciarands!
|
||||
|
||||
export const getDecryptionKeys = async (ctx: EmbedScrapeContext): Promise<string[]> => {
|
||||
const res = await ctx.fetcher<string>(
|
||||
'https://raw.githubusercontent.com/Claudemirovsky/worstsource-keys/keys/keys.json',
|
||||
);
|
||||
const res = await ctx.fetcher<string>('https://raw.githubusercontent.com/Ciarands/vidsrc-keys/main/keys.json');
|
||||
return JSON.parse(res);
|
||||
};
|
||||
|
||||
|
@@ -4,6 +4,14 @@ import { makeEmbed } from '@/providers/base';
|
||||
const hlsURLRegex = /file:"(.*?)"/;
|
||||
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({
|
||||
id: 'vidsrcembed', // VidSrc is both a source and an embed host
|
||||
name: 'VidSrc',
|
||||
@@ -15,10 +23,12 @@ export const vidsrcembedScraper = makeEmbed({
|
||||
},
|
||||
});
|
||||
|
||||
const match = html.match(hlsURLRegex)?.[1]?.replace(/(\/\/\S+?=)|#2|=/g, '');
|
||||
if (!match) throw new Error('Unable to find HLS playlist');
|
||||
const finalUrl = atob(match);
|
||||
|
||||
// When this eventually breaks see the player js @ pjs_main.js
|
||||
// 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
|
||||
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');
|
||||
|
||||
let setPassLink = html.match(setPassRegex)?.[1];
|
||||
|
Reference in New Issue
Block a user