Every setting is in config.toml, which the recorder validates. Change them in the app’s Settings, where the advanced ones are folded under each section, or with spytify-cli set key=value; spytify-cli get lists them.
App
| Setting |
Key |
Values |
Default |
| Theme |
app.theme |
system, light, dark |
system |
| Minimize to tray |
app.minimize_to_tray |
on, off |
off |
| Start recording on launch |
app.autostart_recording |
on, off |
off |
| Check for updates |
app.check_updates |
on, off |
on |
Output
| Setting |
Key |
Values |
Default |
| Output folder |
output.dir |
a folder: absolute, or starting with ~/ |
~/Music/Spytify |
| Group by folders |
output.group_by |
none, artist, artist/album |
artist/album |
Advanced:
| Setting |
Key |
Values |
Default |
| File name template |
output.template |
placeholders {artist}, {title}, {album}, {track}, {year} |
{artist} - {title} |
| Underscores instead of spaces |
output.underscores |
on, off |
off |
| Remove diacritics from file names |
output.ascii_filenames |
on, off |
off |
| File name prefix |
output.prefix |
none, counter, album_track |
none |
| Next counter number |
output.counter_next |
0 to 999999999 |
1 |
| Counter digits |
output.counter_width |
1 to 9 |
3 |
Encoding
| Setting |
Key |
Values |
Default |
| Output format |
encode.format |
mp3, aac, flac, wav |
flac |
| Bitrate |
encode.bitrate_kbps |
128, 160, 256, 320 |
160 |
Advanced:
| Setting |
Key |
Values |
Default |
| Embed album cover |
tags.cover |
on, off |
on |
| Cover size |
tags.cover_size |
small, medium, large |
medium |
| Move parenthesised extra title to subtitle |
tags.extra_to_subtitle |
on, off |
off |
| Multiple artists separator |
tags.artist_separator |
text |
, |
Recording
| Setting |
Key |
Values |
Default |
| Already recorded tracks |
recorder.duplicates |
skip, suffix, overwrite |
skip |
| Skip to the next track when already recorded |
recorder.skip_duplicates_forward |
on, off |
off |
| Record a single track then stop |
recorder.single_track |
on, off |
off |
| Normalize volume |
recorder.normalize |
on, off |
on |
Advanced:
| Setting |
Key |
Values |
Default |
| Trim leading/trailing silence |
recorder.trim_silence |
on, off |
on |
| Silence threshold (dBFS) |
recorder.silence_db |
-90 to -20 |
-50 |
| Boundary search window (ms) |
recorder.boundary_window_ms |
20 to 2000 |
300 |
| Stop the session after (0s = never) |
recorder.session_timer |
a duration such as 90m or 2h |
0s |
| Target loudness (LUFS) |
recorder.target_lufs |
-30 to -5 |
-14 |
| Pause player when disk is full |
recorder.pause_on_disk_full |
on, off |
on |
| Mute the player on this computer while recording (macOS, Linux) |
player.mute_output |
on, off |
off |
Ads
| Setting |
Key |
Values |
Default |
| Mute ads |
recorder.mute_ads |
on, off |
off |
Advanced:
| Setting |
Key |
Values |
Default |
| Treat items shorter than N seconds with no album as ads (0 = off) |
recorder.skip_short_untitled |
0 to 600 |
60 |
Privacy
| Setting |
Key |
Values |
Default |
| Sentry bug tracker: send crashes, errors, traces and recording counts |
privacy.bug_tracker |
on, off |
on |
The recorded application is chosen with environment variables, not in config.toml: see Configuration.