From a2e362a8f6772ee8511d5f5bec0c1684d30de49c Mon Sep 17 00:00:00 2001 From: Pas <74743263+Pasithea0@users.noreply.github.com> Date: Sat, 25 Oct 2025 17:44:15 -0600 Subject: [PATCH] add turbovid (source) Co-Authored-By: FifthWit <110744759+fifthwit@users.noreply.github.com> --- src/providers/all.ts | 2 ++ src/providers/sources/turbovid.ts | 30 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/providers/sources/turbovid.ts diff --git a/src/providers/all.ts b/src/providers/all.ts index 0bc9a39..79900d0 100644 --- a/src/providers/all.ts +++ b/src/providers/all.ts @@ -86,6 +86,7 @@ import { ridooMoviesScraper } from './sources/ridomovies'; import { slidemoviesScraper } from './sources/slidemovies'; import { soaperTvScraper } from './sources/soapertv'; import { streamboxScraper } from './sources/streambox'; +import { turbovidSourceScraper } from './sources/turbovid'; import { vidapiClickScraper } from './sources/vidapiclick'; import { vidifyScraper } from './sources/vidify'; import vidnestScraper from './sources/vidnest'; @@ -132,6 +133,7 @@ export function gatherAllSources(): Array { vidnestScraper, animetsuScraper, lookmovieScraper, + turbovidSourceScraper, ]; } diff --git a/src/providers/sources/turbovid.ts b/src/providers/sources/turbovid.ts new file mode 100644 index 0000000..87cb9c0 --- /dev/null +++ b/src/providers/sources/turbovid.ts @@ -0,0 +1,30 @@ +import { flags } from '@/entrypoint/utils/targets'; +import { SourcererOutput, makeSourcerer } from '@/providers/base'; +import { MovieScrapeContext, ShowScrapeContext } from '@/utils/context'; + +const baseUrl = 'https://turbovid.eu'; + +async function comboScraper(ctx: ShowScrapeContext | MovieScrapeContext): Promise { + const embedUrl = + ctx.media.type === 'movie' + ? `${baseUrl}/api/req/movie/${ctx.media.tmdbId}` + : `${baseUrl}/api/req/tv/${ctx.media.tmdbId}/${ctx.media.season.number}/${ctx.media.episode.number}`; + return { + embeds: [ + { + embedId: 'turbovid', + url: embedUrl, + }, + ], + }; +} + +export const turbovidSourceScraper = makeSourcerer({ + id: 'turbovidSource', + name: 'TurboVid', + rank: 120, + disabled: false, + flags: [flags.CORS_ALLOWED], + scrapeMovie: comboScraper, + scrapeShow: comboScraper, +});