| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| spytify-2.0.1-windows-amd64.zip | < 24 hours ago | 47.8 MB | |
| spytify_2.0.1_amd64.deb | < 24 hours ago | 18.2 MB | |
| spytify_2.0.1_arm64.deb | < 24 hours ago | 16.9 MB | |
| spytify-2.0.1-macos-cli.zip | < 24 hours ago | 9.9 MB | |
| SHA256SUMS | < 24 hours ago | 847 Bytes | |
| spytify-2.0.1-1.aarch64.rpm | < 24 hours ago | 16.8 MB | |
| spytify-2.0.1-1.x86_64.rpm | < 24 hours ago | 18.1 MB | |
| spytify-2.0.1-linux-amd64.tar.gz | < 24 hours ago | 17.9 MB | |
| spytify-2.0.1-linux-arm64.tar.gz | < 24 hours ago | 16.6 MB | |
| Spytify-2.0.1-macos.dmg | < 24 hours ago | 42.4 MB | |
| README.md | 2026-11-08 | 16.3 kB | |
| Spytify 2.0.1 source code.tar.gz | 2026-11-08 | 3.0 MB | |
| Spytify 2.0.1 source code.zip | 2026-11-08 | 3.5 MB | |
| Totals: 13 Items | 211.0 MB | 0 | |
[!NOTE] The macOS app is not notarised: the first time, allow it in System Settings > Privacy & Security > Open Anyway.
The Windows files are not signed, so SmartScreen warns before the first run. Click "More info", then select "Run anyway".
Downloads
| System | File | Size |
|---|---|---|
| Windows 10 (2004 or later) or 11 | spytify-2.0.1-windows-amd64.zip (github.com) | 46 MB |
| macOS 14.2 or later | Spytify-2.0.1-macos.dmg (github.com) | 40 MB |
| Debian 12, Ubuntu 22.04 or later (x64) | spytify_2.0.1_amd64.deb (github.com) | 17 MB |
| Debian 12, Ubuntu 22.04 or later (ARM) | spytify_2.0.1_arm64.deb (github.com) | 16 MB |
| Fedora, openSUSE (x64) | spytify-2.0.1-1.x86_64.rpm (github.com) | 17 MB |
| Fedora, openSUSE (ARM) | spytify-2.0.1-1.aarch64.rpm (github.com) | 16 MB |
| Another Linux (x64) | spytify-2.0.1-linux-amd64.tar.gz (github.com) | 17 MB |
| Another Linux (ARM) | spytify-2.0.1-linux-arm64.tar.gz (github.com) | 16 MB |
| macOS, the command line alone | spytify-2.0.1-macos-cli.zip (github.com) | 9.4 MB |
The Windows zip and the macOS app come with ffmpeg, and the .deb installs it. Elsewhere, install it first: brew install ffmpeg for the macOS command line, or from the system's packages on Linux. SHA256SUMS has every file's checksum, and the install page says more.
What's Changed
- The Windows zip's ffmpeg.exe has only what Spytify runs: 3.9 MB instead of 134 MB by @jwallet in https://github.com/spytify/spytify/pull/615
- Incomplete tracks are no longer reported as a problem, only as breadcrumbs by @jwallet in https://github.com/spytify/spytify/pull/619
- The Record screen says to open the player or press play, with tracks in the list too by @jwallet in https://github.com/spytify/spytify/pull/629
- A setting stops the session when the player stops or quits by @jwallet in https://github.com/spytify/spytify/pull/633
- tag.Track loses its Genres field, which nothing filled by @jwallet in https://github.com/spytify/spytify/pull/631
- The macOS app comes with ffmpeg, built like the Windows zip's, so it needs nothing from Homebrew by @jwallet in https://github.com/spytify/spytify/pull/636
- A kept take's "(partial)" ends its file name, whatever the template by @jwallet in https://github.com/spytify/spytify/pull/656
- The Theme setting reads System, Light and Dark by @jwallet in https://github.com/spytify/spytify/pull/655
- The file name template takes {album_artist} and {artists} by @jwallet in https://github.com/spytify/spytify/pull/624
- The template's note no longer offers {year} by @jwallet in https://github.com/spytify/spytify/pull/654
- The template names what is not a placeholder as it is typed, and saving leaves it out by @jwallet in https://github.com/spytify/spytify/pull/657
- The Library groups files by album, and a filter hides the partial takes or shows them alone by @jwallet in https://github.com/spytify/spytify/pull/649
- A crash report names what failed when Go leaves the fatal error's message out by @jwallet in https://github.com/spytify/spytify/pull/620
- A crash report shows every stack of its trace in Sentry, not only the one that crashed by @jwallet in https://github.com/spytify/spytify/pull/621
- On Windows, a crash report keeps the fatal error's message and the lines printed before it by @jwallet in https://github.com/spytify/spytify/pull/622
- The app's redraws and its meter share one throttle instead of two copies of it by @jwallet in https://github.com/spytify/spytify/pull/625
- Code reads a setting through a key generated from the settings table, so a misspelt or removed one does not build by @jwallet in https://github.com/spytify/spytify/pull/642
- Hidden in the tray, Spytify notifies when a recording stops on its own by @jwallet in https://github.com/spytify/spytify/pull/630
- Every settings list shows capitalized choices: Theme, Output format and Already recorded tracks by @jwallet in https://github.com/spytify/spytify/pull/644
- The Settings cards and their Advanced blocks are square by @jwallet in https://github.com/spytify/spytify/pull/661
- The diagnostics open in a dialog from a button beside Open log file by @jwallet in https://github.com/spytify/spytify/pull/660
- The Library's filter works from the keyboard, and Tab gets out of it by @jwallet in https://github.com/spytify/spytify/pull/662
- The Settings page explains every advanced setting, and gives App's player settings by @jwallet in https://github.com/spytify/spytify/pull/664
- Tab goes through every screen in the order it reads, and Settings scrolls to what it focuses by @jwallet in https://github.com/spytify/spytify/pull/637
- A focused Record, Stop or other filled button turns a light shade of its colour by @jwallet in https://github.com/spytify/spytify/pull/666
- The finisher's process reads as its nine steps, one method each by @jwallet in https://github.com/spytify/spytify/pull/627
- One type answers whether a track is recorded: the claims, the index and the folder by @jwallet in https://github.com/spytify/spytify/pull/646
- The output folder is ~/Spytify by default, out of the Music folder that Windows often syncs or protects by @jwallet in https://github.com/spytify/spytify/pull/669
- Tab stops on the tab bar, and Left and Right show the tab before or after by @jwallet in https://github.com/spytify/spytify/pull/670
- Escape closes every dialog and the diagnostics, as Close, Cancel or No does by @jwallet in https://github.com/spytify/spytify/pull/674
- The tray icon is there from launch, so Minimize to tray turned on while Spytify runs works on macOS by @jwallet in https://github.com/spytify/spytify/pull/672
- PipeWire allowing 48 kHz only is advice, not a check that needs attention by @jwallet in https://github.com/spytify/spytify/pull/668
- The Record and Library screens take design E: the track on its cover's colours, badges, an info bar and edge-to-edge lists by @jwallet in https://github.com/spytify/spytify/pull/653
- Each launch says where the output folder is, its drive, cloud and protection, never its path by @jwallet in https://github.com/spytify/spytify/pull/667
- An ad's Length bar counts up to its end instead of stopping at 0:00 by @jwallet in https://github.com/spytify/spytify/pull/645
- The Library's and the Record screen's lists scroll with the page, their scroll bar at the window's edge by @jwallet in https://github.com/spytify/spytify/pull/673
- A problem's report and Send to the developers carry a picture of the window, folders covered by @jwallet in https://github.com/spytify/spytify/pull/671
- A failed check's reason shows whole under its name, in a wider Diagnostics dialog by @jwallet in https://github.com/spytify/spytify/pull/680
- Cmd+R, or Ctrl+R off macOS, presses Record or Stop, and Cmd+1 to Cmd+5 show the tabs by @jwallet in https://github.com/spytify/spytify/pull/628
- Record/Stop and the tabs show their shortcut: in a tooltip, and all at once while ⌘ or Ctrl is held; ⌘S goes to the search by @jwallet in https://github.com/spytify/spytify/pull/635
- The list card's scroll test leaves no timer behind to race the next test on macOS by @jwallet in https://github.com/spytify/spytify/pull/683
- Design QA: a quiet Keep anyway, a meter on loudness steps, edge-to-edge rows, square search fields and dropdowns by @jwallet in https://github.com/spytify/spytify/pull/682
- Every text the window shows is written once, in the lexicon internal/ui/lang/en.go by @jwallet in https://github.com/spytify/spytify/pull/676
- The Record card's elapsed time leaves pauses out, and the cut finder and the pause excision are types of their own, out of Session by @jwallet in https://github.com/spytify/spytify/pull/652
- Record says spytifyd is not running and offers to start it by @jwallet in https://github.com/spytify/spytify/pull/693
- Tab stops once on a list; the arrows reach its rows' buttons by @jwallet in https://github.com/spytify/spytify/pull/694
- A Library row moves its file to the system's trash, never deleting it by @jwallet in https://github.com/spytify/spytify/pull/650
- The diagnostics check that spytifyd runs and open on their checks; the log and the checks go to the edges, dialogs charcoal by @jwallet in https://github.com/spytify/spytify/pull/692
- An L and R level meter beside Skip, and outlined dropdowns by @jwallet in https://github.com/spytify/spytify/pull/698
- Play on Windows opens the file through the shell, never through cmd by @jwallet in https://github.com/spytify/spytify/pull/701
- A take paused mid-track is saved, marked (pause fade) when the player's fades meet where the pause was cut by @jwallet in https://github.com/spytify/spytify/pull/678
- Only silence while the player plays fails a player heard check, and the recorder's warnings show in a red alert on the Record tab by @jwallet in https://github.com/spytify/spytify/pull/691
- A track skipped as already recorded or as an advert says so in words of the lexicon by @jwallet in https://github.com/spytify/spytify/pull/703
- The window counts a megabyte as a million bytes, as the bitrate's note and the CLI do by @jwallet in https://github.com/spytify/spytify/pull/704
- A check's fix is reached by the arrows, as a Library row's buttons are, not by Tab by @jwallet in https://github.com/spytify/spytify/pull/705
- A failed start of spytifyd is counted by its error, not by the words of its message by @jwallet in https://github.com/spytify/spytify/pull/706
- The recorder's warnings are worded by the window, from the lexicon, by their code by @jwallet in https://github.com/spytify/spytify/pull/702
- The logo sources drop the player's name and "espion", and the unused Jekyll theme file goes by @jwallet in https://github.com/spytify/spytify/pull/712
- A release's list of changes leaves out the pull requests labelled "not in notes" by @jwallet in https://github.com/spytify/spytify/pull/720
- The app bar's wordmark is bigger by @jwallet in https://github.com/spytify/spytify/pull/721
- The ads played between two tracks are one blue pill in the session list, that opens to a line per ad by @jwallet in https://github.com/spytify/spytify/pull/722
- The Library lists the new output folder once it changes, and a folder in the home folder is written from ~ by @jwallet in https://github.com/spytify/spytify/pull/725
- A track paused at its start when Record is pressed is recorded once it plays by @jwallet in https://github.com/spytify/spytify/pull/729
- A track a stopped player shows when Record is pressed is recorded on Play by @jwallet in https://github.com/spytify/spytify/pull/731
- Next pressed while paused cuts the track where it stopped by @jwallet in https://github.com/spytify/spytify/pull/732
- An empty take is said skipped, with nothing to keep by @jwallet in https://github.com/spytify/spytify/pull/733
- A call in a track's first seconds no longer puts the next track's start in it by @jwallet in https://github.com/spytify/spytify/pull/734
- A track skipped as already recorded shows and plays the file it has by @jwallet in https://github.com/spytify/spytify/pull/728
- Each session can write a playlist of its tracks, in the order they played by @jwallet in https://github.com/spytify/spytify/pull/730
- The L/R meter keeps moving while a stop waits for the track to end by @jwallet in https://github.com/spytify/spytify/pull/736
- On Linux with no display, the app says so instead of crashing by @jwallet in https://github.com/spytify/spytify/pull/727
- The release says when the site's settings page no longer matches its code by @jwallet in https://github.com/spytify/spytify/pull/726
- A track heard as silence is skipped as silent, never saved or kept by @jwallet in https://github.com/spytify/spytify/pull/738
- Track changes made while paused leave no empty take and no misplaced cut by @jwallet in https://github.com/spytify/spytify/pull/740
- session.go is split by what it handles: takes, events, health and formats by @jwallet in https://github.com/spytify/spytify/pull/742
- A pause while the next track's cut is searched keeps the gap it is cut in by @jwallet in https://github.com/spytify/spytify/pull/743
- Next pressed in a track's last second cuts it where it was skipped by @jwallet in https://github.com/spytify/spytify/pull/744
- A track shorter than the cut's window keeps its audio between two gaps by @jwallet in https://github.com/spytify/spytify/pull/745
- The protocol's error codes, player commands and log levels are typed by @jwallet in https://github.com/spytify/spytify/pull/746
- The window's texts made in its code move into the lexicon by @jwallet in https://github.com/spytify/spytify/pull/747
- A setting that takes one of a list has a type, a constant per value by @jwallet in https://github.com/spytify/spytify/pull/748
- The silence warning fires for a track silent from its start, after 30 s by @jwallet in https://github.com/spytify/spytify/pull/737
- A check has an ID, and the window words it from the lexicon by @jwallet in https://github.com/spytify/spytify/pull/750
- The settings' labels, notes, choices and card titles are in the lexicon by @jwallet in https://github.com/spytify/spytify/pull/751
- The window calls the daemon "the recorder", and the lexicon's keys say their text by @jwallet in https://github.com/spytify/spytify/pull/752
- The session's playlist follows output.playlist turned on mid-session by @jwallet in https://github.com/spytify/spytify/pull/756
- A player turned down during a session is said, and its takes are marked (low volume) by @jwallet in https://github.com/spytify/spytify/pull/755
- A player with no item loaded has no volume to raise, so Stop no longer turns it down to 0 by @jwallet in https://github.com/spytify/spytify/pull/759
- Windows PowerShell is found in its own folder when PATH lacks it by @jwallet in https://github.com/spytify/spytify/pull/760
- MP3 covers show in Windows Explorer and Media Player: MP3 tags are ID3v2.3 by @jwallet in https://github.com/spytify/spytify/pull/766
- The log says when the player gave no cover for a saved track by @jwallet in https://github.com/spytify/spytify/pull/768
- The Record list keeps every track's cover: copies in the output folder's .covers by @jwallet in https://github.com/spytify/spytify/pull/770
- The Library shows no cover for a WAV: it shows what the files hold by @jwallet in https://github.com/spytify/spytify/pull/771
- A crash report says how big the program and the computer's memory were a minute before by @jwallet in https://github.com/spytify/spytify/pull/761
- A rename Windows refuses names the program holding the file by @jwallet in https://github.com/spytify/spytify/pull/773
- A file Windows holds a moment after it is written is renamed once let go by @jwallet in https://github.com/spytify/spytify/pull/774
- The window no longer grows by a font set per track: theme overrides keep their scope by @jwallet in https://github.com/spytify/spytify/pull/776
- A recorder that did not start is reported with what its start found and saw by @jwallet in https://github.com/spytify/spytify/pull/762
- A stalled capture's report says what the session and the capture knew by @jwallet in https://github.com/spytify/spytify/pull/763
Full Changelog: https://github.com/spytify/spytify/compare/2.0.0-alpha.7...2.0.1