Sort your media files fast. Version 3.0 is a rewrite in Rust.
The documentation site has a short demo video of every workflow.
Media Sort is a desktop app for sorting your media collection. It handles images, video, and audio files. You drive it from the keyboard.
- It's fast. Built in Rust, rendered with wgpu.
- Keyboard-first. All actions are bindable. Move, delete, rename, browse: your hands stay on the keyboard.
- Undo and redo. Moved a file into the wrong folder? Press Q. You can undo it. Press E to redo.
- Pinned folders. Pin folders you often sort into, then quick-move files with Alt+1 through 9.
- In-app previews. View images, play videos with seek and volume control, listen to audio. No need to open another app.
- Metadata panel. EXIF for photos, ID3/FLAC/MP4 tags for audio. Shown in a side panel you can collapse.
- Multi-language. English, German, Japanese. Picks up your system locale.
| Type | Formats |
|---|---|
| Images | PNG, JPEG, GIF, BMP, TIFF, ICO, WebP, JXL, HEIC, HEIF, AVIF |
| Audio | MP3, FLAC, OGG (Vorbis), WAV, AAC (M4A), WMA, Opus, AIFF |
| Video | MP4, MKV, WebM, AVI, MOV, WMV, FLV, M4V, and any other format your installed mpv can handle |
The central idea behind Media Sort is speed. The best way to use it is to keep your hands on the keyboard. But you can also use the mouse if you want. The app should help you either way.
On the left is your folder tree. Navigate it with the WASD keys. W is up, S is down, A collapses a folder, D expands it. Hit Enter to open the selected folder, or O to pick some other folder.
Pin folders you use often with P (pin current) or F (pin selected). Unpin with U. After pinning, Alt+1 through 9 moves the current file to that pinned folder instantly. Reorder pins with Ctrl+W (up) and Ctrl+S (down).
This lets you sort files from one location into several destinations, even across different drives.
| Action | Shortcut |
|---|---|
| Move to selected folder | Up Arrow |
| Delete (move to trash) | Down Arrow |
| Previous file | Left Arrow |
| Next file | Right Arrow |
| Rename file | R |
| Undo | Q |
| Redo | E |
| Create new folder | C |
| Toggle search/filter | I |
| Toggle metadata panel | M |
All keybindings are customizable in the Settings dialog. Media keys (Play/Pause, Volume, Track skip) work for video and audio too.
Read the Privacy Policy.
No data is willingly collected. If you turn on "Check for updates on startup" in Settings, the app queries the GitHub API. That may collect data per GitHub's privacy statement. Turn it off if you don't want that.
- Linux, macOS, or Windows
- Rust 1.98 or later (if building from source)
The precompiled packages bundle everything they need at runtime: libmpv,
libdav1d (AVIF image decoding) and ffmpeg (fast video thumbnails) are all
shipped inside the package on every platform, Linux AppImage included.
Building from source still needs these system libraries:
- libmpv (needed for video and audio playback)
- libdav1d (needed for AVIF image decoding)
- ffmpeg (optional; enables faster video thumbnails, falls back to mpv)
Install libmpv through your package manager:
- Ubuntu/Debian:
libmpv-dev - Fedora:
mpv-libs-devel - Arch:
mpv - macOS:
brew install mpv - Windows: download from mpv.io
Install libdav1d through your package manager:
- Ubuntu/Debian:
libdav1d7 - Fedora:
dav1d-libs - Arch:
dav1d - macOS: bundled into the app automatically via
brew install dav1dat build time - Windows: bundled statically into the app
libjpeg-turbo (used for fast JPEG decoding) is vendored statically at build time — no installation needed.
git clone https://github.com/Lolle2000la/Media-Sort.git
cd Media-Sort
cargo build --release
cargo run --release
Build dependencies:
- Linux:
cmakeandnasm(x86_64 only) for the vendored libjpeg-turbo SIMD build, pluslibdav1d-dev(strongly preferred — if missing, dav1d is compiled from source via meson, ninja, and git). - macOS:
brew install dav1dandcmake(preinstalled on most dev machines / available via brew). No nasm needed on Apple Silicon. - Windows:
pip install meson ninjaandchoco install nasm(x64/x86 only), in addition to the existing requirements.
Pre-built binaries for Linux, Windows, and macOS are provided with automatic updates via the GitHub Releases page.
Pre-compiled standalone binaries with automatic updates are provided for Linux, Windows, and macOS via the GitHub Releases page.
The precompiled packages bundle everything they need: libmpv, ffmpeg and dav1d (AVIF decoding) ship inside the package on every platform, so no media library has to be installed to run Media Sort. Building from source is the only case that needs these libraries on your system (see Requirements).
On Linux the AppImage additionally expects a 64-bit X11 or Wayland desktop,
glibc 2.35 or newer (Ubuntu 22.04+, Debian 12+, Fedora 36+, current Arch),
your distribution's ALSA (libasound), C++ runtime (libstdc++) and
libdrm libraries — the system interfaces the distribution's own audio
plugins and GPU drivers bind to — and a graphics driver with Vulkan or OpenGL;
GPU drivers are never bundled, because they have to match your kernel and
hardware.
- Download the latest
.AppImagefrom Releases. - Grant executable permissions and launch:
chmod +x MediaSort-Linux.AppImage ./MediaSort-Linux.AppImage
- Download the standalone
Setup.exefrom Releases. - Run the installer wrapper to deploy the application to your local system.
Because this open-source variant is published without a paid Apple Developer ID signature, macOS will flag the application bundle as untrusted under Gatekeeper rules.
To install and execute:
- Download and extract the
.ziparchive from Releases. - Drag
Media Sort.appto your/Applicationsdirectory. - Open a terminal and strip the quarantine flag appended by your browser:
xattr -cr /Applications/Media\ Sort.app - Alternatively, try launching the program normally. When blocked, navigate through System Settings > Privacy & Security, scroll to the Security section, and click Open Anyway.