From fbfd20c9653df82f7e459c9e1f8f327f03452860 Mon Sep 17 00:00:00 2001 From: James Magahern Date: Sat, 22 Feb 2025 02:04:05 -0800 Subject: [PATCH] invidiousAPI: handle slashes --- src/InvidiousAPI.ts | 2 +- src/server.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/InvidiousAPI.ts b/src/InvidiousAPI.ts index 074f3bb..70ea031 100644 --- a/src/InvidiousAPI.ts +++ b/src/InvidiousAPI.ts @@ -32,7 +32,7 @@ export const getInvidiousSearchURL = (query: string): string => `${INVIDIOUS_API_ENDPOINT}/search?q=${encodeURIComponent(query)}`; export const getInvidiousThumbnailURL = (url: string): string => - `${INVIDIOUS_BASE_URL}${url}`; + `${INVIDIOUS_BASE_URL}/${url}`; const preferredThumbnailAPIURL = (thumbnails: InvidiousVideoThumbnail[] | undefined): string => { if (!thumbnails || thumbnails.length === 0) { diff --git a/src/server.ts b/src/server.ts index 3e852ef..0163faa 100644 --- a/src/server.ts +++ b/src/server.ts @@ -118,7 +118,8 @@ apiRouter.get("/thumbnail", withErrorHandling(async (req, res) => { } try { - const response = await fetch(getInvidiousThumbnailURL(thumbnailUrl)); + const thumbnailUrlWithoutLeadingSlash = thumbnailUrl.startsWith('/') ? thumbnailUrl.slice(1) : thumbnailUrl; + const response = await fetch(getInvidiousThumbnailURL(thumbnailUrlWithoutLeadingSlash)); if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); }