diff --git a/src/providers/all.ts b/src/providers/all.ts index af58f42..a81dfaf 100644 --- a/src/providers/all.ts +++ b/src/providers/all.ts @@ -53,7 +53,6 @@ import { VidsrcsuServer8Scraper, VidsrcsuServer9Scraper, } from './embeds/vidsrcsu'; -import { vidzeeServer1Embed, vidzeeServer2Embed } from './embeds/vidzee'; import { viperScraper } from './embeds/viper'; import { warezcdnembedHlsScraper } from './embeds/warezcdn/hls'; import { warezcdnembedMp4Scraper } from './embeds/warezcdn/mp4'; @@ -74,7 +73,6 @@ import { soaperTvScraper } from './sources/soapertv'; import { streamboxScraper } from './sources/streambox'; import { vidapiClickScraper } from './sources/vidapiclick'; import { vidsrccxScraper } from './sources/vidsrccx'; -import { vidzeeScraper } from './sources/vidzee'; import { warezcdnScraper } from './sources/warezcdn'; import { wecimaScraper } from './sources/wecima'; @@ -112,7 +110,6 @@ export function gatherAllSources(): Array { pirxcyScraper, vidsrcvipScraper, vidsrccxScraper, - vidzeeScraper, ]; } @@ -162,7 +159,5 @@ export function gatherAllEmbeds(): Array { vidsrcNovaEmbed, vidsrcCometEmbed, vidsrcPulsarEmbed, - vidzeeServer1Embed, - vidzeeServer2Embed, ]; } diff --git a/src/providers/embeds/vidzee.ts b/src/providers/embeds/vidzee.ts deleted file mode 100644 index 0b81cca..0000000 --- a/src/providers/embeds/vidzee.ts +++ /dev/null @@ -1,124 +0,0 @@ -import { flags } from '@/entrypoint/utils/targets'; -import { EmbedOutput, makeEmbed } from '@/providers/base'; -import { labelToLanguageCode } from '@/providers/captions'; -import { NotFoundError } from '@/utils/errors'; -import { createM3U8ProxyUrl } from '@/utils/proxy'; - -const BaseUrl = 'https://player.vidzee.wtf/api/server'; - -export const vidzeeServer1Embed = makeEmbed({ - id: 'vidzee-server1', - name: 'Server 1', - rank: 34, - async scrape(ctx): Promise { - const query = JSON.parse(ctx.url); - const params = new URLSearchParams({ - id: query.tmdbId, - sr: '1', - }); - - if (query.type === 'show') { - params.append('ss', query.season.toString()); - params.append('ep', query.episode.toString()); - } - - const data = await ctx.proxiedFetcher(`${BaseUrl}?${params.toString()}`); - if (!data) throw new NotFoundError('No response received'); - if (!data.url || !Array.isArray(data.url) || data.url.length === 0) { - throw new NotFoundError('No stream URL found in response'); - } - - const streamData = data.url[0]; - const streamUrl = streamData.link; - const headers = data.headers || {}; - - if (headers.Referer && headers.Referer.includes('vidzee')) { - headers.Origin = 'https://player.vidzee.wtf'; - } - - const captions = - data.tracks?.map((track: { lang: string; url: string }, i: number) => { - return { - id: i, - type: 'vtt', - url: track.url, - language: labelToLanguageCode(track.lang) || 'unknown', - }; - }) || []; - - ctx.progress(90); - - const finalUrl = Object.keys(headers).length > 0 ? createM3U8ProxyUrl(streamUrl, headers) : streamUrl; - - return { - stream: [ - { - type: 'hls', - id: 'primary', - playlist: finalUrl, - flags: [flags.CORS_ALLOWED], - captions, - }, - ], - }; - }, -}); - -export const vidzeeServer2Embed = makeEmbed({ - id: 'vidzee-server2', - name: 'Server 2', - rank: 33, - async scrape(ctx): Promise { - const query = JSON.parse(ctx.url); - const params = new URLSearchParams({ - id: query.tmdbId, - sr: '2', - }); - - if (query.type === 'show') { - params.append('ss', query.season.toString()); - params.append('ep', query.episode.toString()); - } - - const data = await ctx.proxiedFetcher(`${BaseUrl}?${params.toString()}`); - if (!data) throw new NotFoundError('No response received'); - if (!data.url || !Array.isArray(data.url) || data.url.length === 0) { - throw new NotFoundError('No stream URL found in response'); - } - - const streamData = data.url[0]; - const streamUrl = streamData.link; - const headers = data.headers || {}; - - // Add Origin header if Referer contains vidzee - if (headers.Referer && headers.Referer.includes('vidzee')) { - headers.Origin = 'https://player.vidzee.wtf/'; - } - - const captions = - data.tracks?.map((track: { lang: string; url: string }, i: number) => { - return { - id: i, - type: 'vtt', - url: track.url, - language: labelToLanguageCode(track.lang) || 'unknown', - }; - }) || []; - - ctx.progress(90); - - const finalUrl = Object.keys(headers).length > 0 ? createM3U8ProxyUrl(streamUrl, headers) : streamUrl; - - return { - stream: [ - { - type: 'hls', - id: 'primary', - playlist: finalUrl, - flags: [flags.CORS_ALLOWED], - captions, - }, - ], - }; - }, -}); diff --git a/src/providers/sources/vidzee.ts b/src/providers/sources/vidzee.ts deleted file mode 100644 index 2b8cdf2..0000000 --- a/src/providers/sources/vidzee.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { flags } from '@/entrypoint/utils/targets'; -import { SourcererOutput, makeSourcerer } from '@/providers/base'; -import { MovieScrapeContext, ShowScrapeContext } from '@/utils/context'; - -async function comboScraper(ctx: ShowScrapeContext | MovieScrapeContext): Promise { - const query = { - type: ctx.media.type, - title: ctx.media.title, - tmdbId: ctx.media.tmdbId, - imdbId: ctx.media.imdbId, - ...(ctx.media.type === 'show' && { - season: ctx.media.season.number, - episode: ctx.media.episode.number, - }), - releaseYear: ctx.media.releaseYear, - }; - - const embeds = [ - { - embedId: 'vidzee-server1', - url: JSON.stringify(query), - }, - { - embedId: 'vidzee-server2', - url: JSON.stringify(query), - }, - ]; - - return { embeds }; -} - -export const vidzeeScraper = makeSourcerer({ - id: 'vidzee', - name: 'Vidzee', - rank: 164, - disabled: false, - flags: [flags.CORS_ALLOWED], - scrapeMovie: comboScraper, - scrapeShow: comboScraper, -});