diff --git a/frontend/src/components/SettingsPage.tsx b/frontend/src/components/SettingsPage.tsx
index 4eca157..7105263 100644
--- a/frontend/src/components/SettingsPage.tsx
+++ b/frontend/src/components/SettingsPage.tsx
@@ -339,7 +339,14 @@ export function SettingsPage() {
)}
-
+
+
+ setTempSettings(prev => ({ ...prev, useAlbumArtist: checked }))}
+ />
+
{/* Filename Format */}
diff --git a/frontend/src/hooks/useDownload.ts b/frontend/src/hooks/useDownload.ts
index b37c4bb..c05b9a5 100644
--- a/frontend/src/hooks/useDownload.ts
+++ b/frontend/src/hooks/useDownload.ts
@@ -50,8 +50,13 @@ export function useDownload() {
// Replace forward slashes in template data values to prevent them from being interpreted as path separators
const placeholder = "__SLASH_PLACEHOLDER__";
// Build template data for folder path
+ let artistFolderName = artistName;
+ if(settings.useAlbumArtist) {
+ artistFolderName = albumArtist || artistName;
+ }
+ logger.info("Using artist folder name: " + artistFolderName);
const templateData: TemplateData = {
- artist: artistName?.replace(/\//g, placeholder),
+ artist: artistFolderName?.replace(/\//g, placeholder),
album: albumName?.replace(/\//g, placeholder),
title: trackName?.replace(/\//g, placeholder),
track: position,
@@ -296,11 +301,15 @@ export function useDownload() {
let outputDir = settings.downloadPath;
let useAlbumTrackNumber = false;
-
+ let artistFolderName = artistName;
+ if(settings.useAlbumArtist) {
+ artistFolderName = albumArtist || artistName;
+ }
+ logger.info("Using artist folder name: " + artistFolderName);
// Replace forward slashes in template data values to prevent them from being interpreted as path separators
const placeholder = "__SLASH_PLACEHOLDER__";
const templateData: TemplateData = {
- artist: artistName?.replace(/\//g, placeholder),
+ artist: artistFolderName?.replace(/\//g, placeholder),
album: albumName?.replace(/\//g, placeholder),
title: trackName?.replace(/\//g, placeholder),
track: position,
diff --git a/frontend/src/lib/settings.ts b/frontend/src/lib/settings.ts
index 02b3d5b..815b2c3 100644
--- a/frontend/src/lib/settings.ts
+++ b/frontend/src/lib/settings.ts
@@ -21,6 +21,7 @@ export interface Settings {
filenameTemplate: string;
// Legacy settings (kept for migration)
filenameFormat?: "title-artist" | "artist-title" | "title";
+ useAlbumArtist?: boolean;
artistSubfolder?: boolean;
albumSubfolder?: boolean;
trackNumber: boolean;