add xprime marant

This commit is contained in:
Pas 2025-04-22 15:52:02 -06:00
parent f64582f5b6
commit 5a5c3e1bcf
4 changed files with 46 additions and 5 deletions

View file

@ -74,7 +74,7 @@ import { warezcdnembedHlsScraper } from './embeds/warezcdn/hls';
import { warezcdnembedMp4Scraper } from './embeds/warezcdn/mp4';
import { warezPlayerScraper } from './embeds/warezcdn/warezplayer';
import { webtor1080Scraper, webtor480Scraper, webtor4kScraper, webtor720Scraper } from './embeds/webtor';
import { xprimeApolloEmbed, xprimeFoxEmbed, xprimeStreamboxEmbed } from './embeds/xprime';
import { xprimeApolloEmbed, xprimeFoxEmbed, xprimeMarantEmbed, xprimeStreamboxEmbed } from './embeds/xprime';
import { EightStreamScraper } from './sources/8stream';
import { coitusScraper } from './sources/coitus';
import { ConsumetScraper } from './sources/consumet';
@ -185,6 +185,7 @@ export function gatherAllEmbeds(): Array<Embed> {
xprimeFoxEmbed,
xprimeApolloEmbed,
xprimeStreamboxEmbed,
xprimeMarantEmbed,
ConsumetVidCloudScraper,
ConsumetStreamSBScraper,
ConsumetVidStreamingScraper,

View file

@ -6,6 +6,7 @@ import { NotFoundError } from '@/utils/errors';
const foxBaseUrl = 'https://xprime.tv/foxtemp';
const apolloBaseUrl = 'https://kendrickl-3amar.site';
const showboxBaseUrl = 'https://xprime.tv/primebox';
const marantBaseUrl = 'https://backend.xprime.tv/marant';
const languageMap: Record<string, string> = {
'chinese - hong kong': 'zh',
@ -41,7 +42,7 @@ const languageMap: Record<string, string> = {
export const xprimeFoxEmbed = makeEmbed({
id: 'xprime-fox',
name: 'Fox',
rank: 240,
rank: 241,
async scrape(ctx): Promise<EmbedOutput> {
const query = JSON.parse(ctx.url);
const params = new URLSearchParams({
@ -85,7 +86,7 @@ export const xprimeFoxEmbed = makeEmbed({
export const xprimeApolloEmbed = makeEmbed({
id: 'xprime-apollo',
name: 'Appolo',
rank: 242,
rank: 243,
async scrape(ctx): Promise<EmbedOutput> {
const query = JSON.parse(ctx.url);
let url = `${apolloBaseUrl}/${query.tmdbId}`;
@ -134,7 +135,7 @@ export const xprimeApolloEmbed = makeEmbed({
export const xprimeStreamboxEmbed = makeEmbed({
id: 'xprime-streambox',
name: 'Streambox',
rank: 241,
rank: 242,
async scrape(ctx): Promise<EmbedOutput> {
const query = JSON.parse(ctx.url);
let url = showboxBaseUrl;
@ -197,3 +198,37 @@ export const xprimeStreamboxEmbed = makeEmbed({
};
},
});
export const xprimeMarantEmbed = makeEmbed({
id: 'xprime-marant',
name: 'Marant',
rank: 240,
async scrape(ctx): Promise<EmbedOutput> {
const query = JSON.parse(ctx.url);
let url = `${marantBaseUrl}?id=${query.tmdbId}`;
if (query.type === 'show') {
url += `&season=${query.season}&episode=${query.episode}`;
}
const data = await await ctx.fetcher(url);
if (!data) throw new NotFoundError('No response received');
if (data.error) throw new NotFoundError(data.error);
if (!data.url) throw new NotFoundError('No stream URL found in response');
ctx.progress(90);
return {
stream: [
{
type: 'hls',
id: 'primary',
playlist: data.url,
flags: [flags.CORS_ALLOWED],
captions: [],
},
],
};
},
});

View file

@ -26,6 +26,10 @@ async function comboScraper(ctx: ShowScrapeContext | MovieScrapeContext): Promis
embedId: 'xprime-streambox',
url: JSON.stringify(query),
},
{
embedId: 'xprime-marant',
url: JSON.stringify(query),
},
];
return { embeds };

View file

@ -14,7 +14,7 @@ import {
hianimeHd2SubEmbed,
} from '@/providers/embeds/hianime';
import { warezcdnembedMp4Scraper } from '@/providers/embeds/warezcdn/mp4';
import { xprimeApolloEmbed, xprimeFoxEmbed, xprimeStreamboxEmbed } from '@/providers/embeds/xprime';
import { xprimeApolloEmbed, xprimeFoxEmbed, xprimeMarantEmbed, xprimeStreamboxEmbed } from '@/providers/embeds/xprime';
import { embedsuScraper } from '@/providers/sources/embedsu';
import { uiraliveScraper } from '@/providers/sources/uiralive';
import { Stream } from '@/providers/streams';
@ -35,6 +35,7 @@ const SKIP_VALIDATION_CHECK_IDS = [
xprimeFoxEmbed.id,
xprimeApolloEmbed.id,
xprimeStreamboxEmbed.id,
xprimeMarantEmbed.id,
ConsumetVidCloudScraper.id,
ConsumetStreamSBScraper.id,
ConsumetVidStreamingScraper.id,