From 9f5ac02ec60b66fd08cd37fa33b723939faae4e5 Mon Sep 17 00:00:00 2001 From: WebStreamr <210764791+webstreamr@users.noreply.github.com> Date: Mon, 22 Dec 2025 13:32:33 +0000 Subject: [PATCH] fix(extractor): deal better with cases where video ID URLs end with a slash --- src/extractor/DoodStream.ts | 2 +- src/extractor/LuluStream.ts | 2 +- src/extractor/Voe.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/extractor/DoodStream.ts b/src/extractor/DoodStream.ts index 2ebf407..f2962bb 100644 --- a/src/extractor/DoodStream.ts +++ b/src/extractor/DoodStream.ts @@ -18,7 +18,7 @@ export class DoodStream extends Extractor { }; public override normalize(url: URL): URL { - const videoId = url.pathname.split('/').at(-1) as string; + const videoId = url.pathname.replace(/\/+$/, '').split('/').at(-1) as string; return new URL(`http://dood.to/e/${videoId}`); }; diff --git a/src/extractor/LuluStream.ts b/src/extractor/LuluStream.ts index bab2424..e927a59 100644 --- a/src/extractor/LuluStream.ts +++ b/src/extractor/LuluStream.ts @@ -29,7 +29,7 @@ export class LuluStream extends Extractor { } public override normalize(url: URL): URL { - const videoId = url.pathname.split('/').at(-1) as string; + const videoId = url.pathname.replace(/\/+$/, '').split('/').at(-1) as string; return new URL(`/e/${videoId}`, url); } diff --git a/src/extractor/Voe.ts b/src/extractor/Voe.ts index b628bd3..2853389 100644 --- a/src/extractor/Voe.ts +++ b/src/extractor/Voe.ts @@ -119,7 +119,7 @@ export class Voe extends Extractor { } public override normalize(url: URL): URL { - return new URL(`/${url.pathname.split('/').at(-1)}`, url); + return new URL(`/${url.pathname.replace(/\/+$/, '').split('/').at(-1)}`, url); } protected async extractInternal(ctx: Context, url: URL, meta: Meta): Promise {