From 69d24f287655f5f9bbbdd9176a2bf014ba4d268c Mon Sep 17 00:00:00 2001 From: Viren070 Date: Tue, 14 Oct 2025 12:45:26 +0100 Subject: [PATCH] fix(debrid): use toUrlSafeBase64 for encoding fileInfo in playback URL closes #433 --- packages/core/src/debrid/utils.ts | 3 ++- packages/server/src/routes/api/debrid.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/core/src/debrid/utils.ts b/packages/core/src/debrid/utils.ts index ad111625..7b735c50 100644 --- a/packages/core/src/debrid/utils.ts +++ b/packages/core/src/debrid/utils.ts @@ -7,6 +7,7 @@ import { Cache, getSimpleTextHash, encryptString, + toUrlSafeBase64, } from '../utils/index.js'; import { DebridFile, @@ -363,5 +364,5 @@ export function generatePlaybackUrl( title?: string, filename?: string ): string { - return `${Env.BASE_URL}/api/v1/debrid/playback/${encryptedStoreAuth}/${Buffer.from(JSON.stringify(fileInfo)).toString('base64')}/${metadataId}/${encodeURIComponent(filename ?? title ?? 'unknown')}`; + return `${Env.BASE_URL}/api/v1/debrid/playback/${encryptedStoreAuth}/${toUrlSafeBase64(JSON.stringify(fileInfo))}/${metadataId}/${encodeURIComponent(filename ?? title ?? 'unknown')}`; } diff --git a/packages/server/src/routes/api/debrid.ts b/packages/server/src/routes/api/debrid.ts index 964421ea..b87f8658 100644 --- a/packages/server/src/routes/api/debrid.ts +++ b/packages/server/src/routes/api/debrid.ts @@ -51,7 +51,7 @@ router.get( } const fileInfo = FileInfoSchema.parse( - JSON.parse(Buffer.from(encodedFileInfo, 'base64').toString('utf-8')) + JSON.parse(fromUrlSafeBase64(encodedFileInfo)) ); const decryptedStoreAuth = decryptString(encryptedStoreAuth);