diff --git a/src/backend/src/shared/utils.service.ts b/src/backend/src/shared/utils.service.ts index a4556b6..e7d1421 100644 --- a/src/backend/src/shared/utils.service.ts +++ b/src/backend/src/shared/utils.service.ts @@ -12,7 +12,11 @@ export class UtilsService { __dirname, '..', this.configService.get(EnvironmentEnum.DOWNLOADS_PATH), - name, + this.stripFileIllegalChars(name), ); } + + stripFileIllegalChars(text: string): string { + return text.replace(/[/\\?%*:|"<>]/g, '-'); + } } diff --git a/src/backend/src/track/track.service.ts b/src/backend/src/track/track.service.ts index b8c7260..443054a 100644 --- a/src/backend/src/track/track.service.ts +++ b/src/backend/src/track/track.service.ts @@ -131,7 +131,8 @@ export class TrackService { } getTrackFileName(track: TrackEntity): string { - return `${track.artist} - ${track.name.replace('/', '')}.${this.configService.get(EnvironmentEnum.FORMAT)}`; + const fileName = `${track.artist} - ${track.name.replace('/', '')}`; + return `${this.utilsService.stripFileIllegalChars(fileName)}.${this.configService.get(EnvironmentEnum.FORMAT)}`; } getFolderName(track: TrackEntity, playlist: PlaylistEntity): string {