|
|
|
|
@ -3574,7 +3574,7 @@
|
|
|
|
|
<option value="youtube">YouTube Only</option>
|
|
|
|
|
<option value="tidal">Tidal Only</option>
|
|
|
|
|
<option value="qobuz">Qobuz Only</option>
|
|
|
|
|
<option value="hybrid">Hybrid (Try both with fallback)</option>
|
|
|
|
|
<option value="hybrid">Hybrid (Primary + Fallback)</option>
|
|
|
|
|
</select>
|
|
|
|
|
<div class="setting-help-text">
|
|
|
|
|
Choose where to download music from. Hybrid mode tries primary source first,
|
|
|
|
|
@ -3756,143 +3756,6 @@
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- File Organization Settings -->
|
|
|
|
|
<div class="settings-group">
|
|
|
|
|
<h3>📁 File Organization</h3>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="checkbox-label">
|
|
|
|
|
<input type="checkbox" id="file-organization-enabled" checked>
|
|
|
|
|
Enable custom file organization templates
|
|
|
|
|
</label>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label>Album Path Template:</label>
|
|
|
|
|
<input type="text" id="template-album-path"
|
|
|
|
|
placeholder="$albumartist/$albumartist - $album/$track - $title">
|
|
|
|
|
<small style="color: #888;">Variables: $albumartist, $artist, $artistletter, $album, $title,
|
|
|
|
|
$track, $disc, $year, $quality (filename only)</small>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label>Single Path Template:</label>
|
|
|
|
|
<input type="text" id="template-single-path"
|
|
|
|
|
placeholder="$artist/$artist - $title/$title">
|
|
|
|
|
<small style="color: #888;">Variables: $artist, $artistletter, $title, $album, $year, $quality (filename only)</small>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label>Playlist Path Template:</label>
|
|
|
|
|
<input type="text" id="template-playlist-path"
|
|
|
|
|
placeholder="$playlist/$artist - $title">
|
|
|
|
|
<small style="color: #888;">Variables: $playlist, $artist, $artistletter, $title, $year, $quality (filename only)</small>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label>Multi-Disc Folder Label:</label>
|
|
|
|
|
<select id="disc-label">
|
|
|
|
|
<option value="Disc">Disc (e.g., Disc 1/)</option>
|
|
|
|
|
<option value="CD">CD (e.g., CD 1/)</option>
|
|
|
|
|
</select>
|
|
|
|
|
<small style="color: #888;">Label used for auto-created disc subfolders on multi-disc albums.</small>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<button class="test-button" onclick="resetFileOrganizationTemplates()"
|
|
|
|
|
style="background: #666;">
|
|
|
|
|
🔄 Reset to Defaults
|
|
|
|
|
</button>
|
|
|
|
|
<small style="color: #888; display: block; margin-top: 8px;">
|
|
|
|
|
Restores original path structure. Your downloads will be organized like before.
|
|
|
|
|
</small>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- Metadata Enhancement Settings -->
|
|
|
|
|
<div class="settings-group">
|
|
|
|
|
<h3>🎵 Metadata Enhancement</h3>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="checkbox-label">
|
|
|
|
|
<input type="checkbox" id="metadata-enabled" checked>
|
|
|
|
|
Enable metadata enhancement with Spotify data
|
|
|
|
|
</label>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="checkbox-label">
|
|
|
|
|
<input type="checkbox" id="embed-album-art" checked>
|
|
|
|
|
Embed high-quality album art from Spotify
|
|
|
|
|
</label>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label>Supported Formats:</label>
|
|
|
|
|
<div class="supported-formats">MP3, FLAC, MP4/M4A, OGG</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- Lossy Copy Settings -->
|
|
|
|
|
<div class="settings-group">
|
|
|
|
|
<h3>📀 Lossy Copy</h3>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="checkbox-label">
|
|
|
|
|
<input type="checkbox" id="lossy-copy-enabled"
|
|
|
|
|
onchange="document.getElementById('lossy-copy-options').style.display = this.checked ? 'block' : 'none'">
|
|
|
|
|
Create MP3 copy of downloaded FLAC files
|
|
|
|
|
</label>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div id="lossy-copy-options" style="display: none;">
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label>MP3 Bitrate:</label>
|
|
|
|
|
<select id="lossy-copy-bitrate">
|
|
|
|
|
<option value="320">320 kbps</option>
|
|
|
|
|
<option value="256">256 kbps</option>
|
|
|
|
|
<option value="192">192 kbps</option>
|
|
|
|
|
<option value="128">128 kbps</option>
|
|
|
|
|
</select>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="help-text">
|
|
|
|
|
After downloading a FLAC, an MP3 copy at the selected bitrate
|
|
|
|
|
will be created in the same folder. Requires ffmpeg.
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group" style="margin-top: 12px;">
|
|
|
|
|
<label class="checkbox-label">
|
|
|
|
|
<input type="checkbox" id="lossy-copy-delete-original">
|
|
|
|
|
Blasphemy Mode — Delete original FLAC after MP3 is created
|
|
|
|
|
</label>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="help-text" style="color: rgba(255, 100, 100, 0.8);">
|
|
|
|
|
Warning: The original high-quality file will be permanently deleted.
|
|
|
|
|
Only the MP3 copy will remain.
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- Discovery Settings -->
|
|
|
|
|
<div class="settings-group">
|
|
|
|
|
<h3>🔍 Discovery Pool Settings</h3>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label>Lookback Period:</label>
|
|
|
|
|
<select id="discovery-lookback-period" class="form-select">
|
|
|
|
|
<option value="7">Last 7 days</option>
|
|
|
|
|
<option value="30" selected>Last 30 days (Default)</option>
|
|
|
|
|
<option value="90">Last 90 days</option>
|
|
|
|
|
<option value="180">Last 6 months</option>
|
|
|
|
|
<option value="all">Entire discography</option>
|
|
|
|
|
</select>
|
|
|
|
|
<div class="setting-help-text">
|
|
|
|
|
Controls how far back to scan when adding new artists or refreshing discovery
|
|
|
|
|
pool.
|
|
|
|
|
Once scanned, artists are kept updated with new releases only.
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- Quality Profile Settings (Soulseek only) -->
|
|
|
|
|
<div class="settings-group" id="quality-profile-section">
|
|
|
|
|
<h3>🎵 Quality Profile</h3>
|
|
|
|
|
@ -4067,6 +3930,144 @@
|
|
|
|
|
When track duration is unavailable, a generous file-size safety net is used instead.
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- File Organization Settings -->
|
|
|
|
|
<div class="settings-group">
|
|
|
|
|
<h3>📁 File Organization</h3>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="checkbox-label">
|
|
|
|
|
<input type="checkbox" id="file-organization-enabled" checked>
|
|
|
|
|
Enable custom file organization templates
|
|
|
|
|
</label>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label>Album Path Template:</label>
|
|
|
|
|
<input type="text" id="template-album-path"
|
|
|
|
|
placeholder="$albumartist/$albumartist - $album/$track - $title">
|
|
|
|
|
<small style="color: #888;">Variables: $albumartist, $artist, $artistletter, $album, $title,
|
|
|
|
|
$track, $disc, $year, $quality (filename only)</small>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label>Single Path Template:</label>
|
|
|
|
|
<input type="text" id="template-single-path"
|
|
|
|
|
placeholder="$artist/$artist - $title/$title">
|
|
|
|
|
<small style="color: #888;">Variables: $artist, $artistletter, $title, $album, $year, $quality (filename only)</small>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label>Playlist Path Template:</label>
|
|
|
|
|
<input type="text" id="template-playlist-path"
|
|
|
|
|
placeholder="$playlist/$artist - $title">
|
|
|
|
|
<small style="color: #888;">Variables: $playlist, $artist, $artistletter, $title, $year, $quality (filename only)</small>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label>Multi-Disc Folder Label:</label>
|
|
|
|
|
<select id="disc-label">
|
|
|
|
|
<option value="Disc">Disc (e.g., Disc 1/)</option>
|
|
|
|
|
<option value="CD">CD (e.g., CD 1/)</option>
|
|
|
|
|
</select>
|
|
|
|
|
<small style="color: #888;">Label used for auto-created disc subfolders on multi-disc albums.</small>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<button class="test-button" onclick="resetFileOrganizationTemplates()"
|
|
|
|
|
style="background: #666;">
|
|
|
|
|
🔄 Reset to Defaults
|
|
|
|
|
</button>
|
|
|
|
|
<small style="color: #888; display: block; margin-top: 8px;">
|
|
|
|
|
Restores original path structure. Your downloads will be organized like before.
|
|
|
|
|
</small>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- Metadata Enhancement Settings -->
|
|
|
|
|
<div class="settings-group">
|
|
|
|
|
<h3>🎵 Metadata Enhancement</h3>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="checkbox-label">
|
|
|
|
|
<input type="checkbox" id="metadata-enabled" checked>
|
|
|
|
|
Enable metadata enhancement with Spotify data
|
|
|
|
|
</label>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="checkbox-label">
|
|
|
|
|
<input type="checkbox" id="embed-album-art" checked>
|
|
|
|
|
Embed high-quality album art from Spotify
|
|
|
|
|
</label>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label>Supported Formats:</label>
|
|
|
|
|
<div class="supported-formats">MP3, FLAC, MP4/M4A, OGG</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- Lossy Copy Settings -->
|
|
|
|
|
<div class="settings-group">
|
|
|
|
|
<h3>📀 Lossy Copy</h3>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="checkbox-label">
|
|
|
|
|
<input type="checkbox" id="lossy-copy-enabled"
|
|
|
|
|
onchange="document.getElementById('lossy-copy-options').style.display = this.checked ? 'block' : 'none'">
|
|
|
|
|
Create MP3 copy of downloaded FLAC files
|
|
|
|
|
</label>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div id="lossy-copy-options" style="display: none;">
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label>MP3 Bitrate:</label>
|
|
|
|
|
<select id="lossy-copy-bitrate">
|
|
|
|
|
<option value="320">320 kbps</option>
|
|
|
|
|
<option value="256">256 kbps</option>
|
|
|
|
|
<option value="192">192 kbps</option>
|
|
|
|
|
<option value="128">128 kbps</option>
|
|
|
|
|
</select>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="help-text">
|
|
|
|
|
After downloading a FLAC, an MP3 copy at the selected bitrate
|
|
|
|
|
will be created in the same folder. Requires ffmpeg.
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group" style="margin-top: 12px;">
|
|
|
|
|
<label class="checkbox-label">
|
|
|
|
|
<input type="checkbox" id="lossy-copy-delete-original">
|
|
|
|
|
Blasphemy Mode — Delete original FLAC after MP3 is created
|
|
|
|
|
</label>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="help-text" style="color: rgba(255, 100, 100, 0.8);">
|
|
|
|
|
Warning: The original high-quality file will be permanently deleted.
|
|
|
|
|
Only the MP3 copy will remain.
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- Discovery Settings -->
|
|
|
|
|
<div class="settings-group">
|
|
|
|
|
<h3>🔍 Discovery Pool Settings</h3>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label>Lookback Period:</label>
|
|
|
|
|
<select id="discovery-lookback-period" class="form-select">
|
|
|
|
|
<option value="7">Last 7 days</option>
|
|
|
|
|
<option value="30" selected>Last 30 days (Default)</option>
|
|
|
|
|
<option value="90">Last 90 days</option>
|
|
|
|
|
<option value="180">Last 6 months</option>
|
|
|
|
|
<option value="all">Entire discography</option>
|
|
|
|
|
</select>
|
|
|
|
|
<div class="setting-help-text">
|
|
|
|
|
Controls how far back to scan when adding new artists or refreshing discovery
|
|
|
|
|
pool.
|
|
|
|
|
Once scanned, artists are kept updated with new releases only.
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- Third Column - Database, Metadata, Playlist Sync, Logging -->
|
|
|
|
|
|