From 9003bf67887e4750e47a093db1a2b7a3ca8e4703 Mon Sep 17 00:00:00 2001 From: Jordaar <69628820+Jordaar@users.noreply.github.com> Date: Fri, 16 Jun 2023 16:12:07 +0530 Subject: [PATCH] feat(embed): add mp4upload embed scraper --- src/backend/embeds/mp4upload.ts | 32 ++++++++++++++++++++++++++++++++ src/backend/index.ts | 1 + 2 files changed, 33 insertions(+) create mode 100644 src/backend/embeds/mp4upload.ts diff --git a/src/backend/embeds/mp4upload.ts b/src/backend/embeds/mp4upload.ts new file mode 100644 index 00000000..3902e20b --- /dev/null +++ b/src/backend/embeds/mp4upload.ts @@ -0,0 +1,32 @@ +import { MWEmbedType } from "@/backend/helpers/embed"; +import { registerEmbedScraper } from "@/backend/helpers/register"; +import { MWStreamQuality, MWStreamType } from "@/backend/helpers/streams"; + +import { proxiedFetch } from "../helpers/fetch"; + +registerEmbedScraper({ + id: "mp4upload", + displayName: "mp4upload", + for: MWEmbedType.MP4UPLOAD, + rank: 170, + async getStream({ url }) { + const embed = await proxiedFetch(url); + + const playerSrcRegex = + /(?<=player\.src\()\s*{\s*type:\s*"[^"]+",\s*src:\s*"([^"]+)"\s*}\s*(?=\);)/s; + + const playerSrc = embed.match(playerSrcRegex); + + const streamUrl = playerSrc[1]; + + if (!streamUrl) throw new Error("Stream url not found"); + + return { + embedId: MWEmbedType.MP4UPLOAD, + streamUrl, + quality: MWStreamQuality.Q1080P, + captions: [], + type: MWStreamType.MP4, + }; + }, +}); diff --git a/src/backend/index.ts b/src/backend/index.ts index 065f1c62..a2beaa2a 100644 --- a/src/backend/index.ts +++ b/src/backend/index.ts @@ -17,5 +17,6 @@ import "./embeds/streamm4u"; import "./embeds/playm4u"; import "./embeds/upcloud"; import "./embeds/streamsb"; +import "./embeds/mp4upload"; initializeScraperStore();