diff --git a/src/providers/embeds/mp4hydra.ts b/src/providers/embeds/mp4hydra.ts index 39ed6d5..3c2c57f 100644 --- a/src/providers/embeds/mp4hydra.ts +++ b/src/providers/embeds/mp4hydra.ts @@ -1,5 +1,6 @@ import { flags } from '@/entrypoint/utils/targets'; import { makeEmbed } from '@/providers/base'; +import { getValidQualityFromString } from '@/utils/quality'; const providers = [ { @@ -21,13 +22,14 @@ function embed(provider: { id: string; name: string; rank: number; disabled?: bo disabled: provider.disabled, rank: provider.rank, async scrape(ctx) { + const [url, quality] = ctx.url.split('|'); return { stream: [ { id: 'primary', type: 'file', qualities: { - unknown: { url: ctx.url, type: 'mp4' }, + [getValidQualityFromString(quality || '')]: { url, type: 'mp4' }, }, flags: [flags.CORS_ALLOWED], captions: [], diff --git a/src/providers/sources/mp4hydra.ts b/src/providers/sources/mp4hydra.ts index cf38684..0f002e5 100644 --- a/src/providers/sources/mp4hydra.ts +++ b/src/providers/sources/mp4hydra.ts @@ -41,7 +41,7 @@ async function comboScraper(ctx: ShowScrapeContext | MovieScrapeContext): Promis ctx.progress(60); - const data: { playlist: { src: string }[]; servers: { [key: string]: string; auto: string } } = + const data: { playlist: { src: string; label: string }[]; servers: { [key: string]: string; auto: string } } = await ctx.proxiedFetcher('/info2?v=8', { method: 'POST', body: new URLSearchParams({ z: JSON.stringify([{ s, t: 'movie' }]) }), @@ -56,7 +56,9 @@ async function comboScraper(ctx: ShowScrapeContext | MovieScrapeContext): Promis [ data.servers[data.servers.auto], ...Object.values(data.servers).filter((x) => x !== data.servers[data.servers.auto] && x !== data.servers.auto), - ].forEach((server, _) => embeds.push({ embedId: `mp4hydra-${_ + 1}`, url: server + data.playlist[0].src })); + ].forEach((server, _) => + embeds.push({ embedId: `mp4hydra-${_ + 1}`, url: `${server}${data.playlist[0].src}|${data.playlist[0].label}` }), + ); ctx.progress(90);