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);