Lazily create session directories on first MP3 save

Session directories are now created only when the first MP3 file is saved, not at session creation. Added EnsureSessionDirectoryExists to ISessionService and SessionService to handle this logic. Updated VideoService to call this method before saving files. Cleanup now logs when no directory exists for expired sessions.
This commit is contained in:
Michal Vrba
2025-12-14 16:39:00 +01:00
parent dec69eb937
commit 879fbd4a53
3 changed files with 45 additions and 7 deletions
+4 -2
View File
@@ -104,9 +104,11 @@ public class VideoService : IVideoService
throw new FileNotFoundException($"yt-dlp.exe not found at {ytDlpPath}");
}
// Get session-specific download directory
// Ensure session directory exists only when we're about to save the first MP3 file
_sessionService.EnsureSessionDirectoryExists(sessionId);
// Get session-specific download directory (now guaranteed to exist)
var downloadDir = _sessionService.GetSessionDownloadsPath(sessionId);
Directory.CreateDirectory(downloadDir);
// Get video details first for better filename
var videoDetails = await GetVideoDetailsAsync(url);