A Spotify track, album or playlist is read off Spotify's public embed page, each song found on YouTube by the result closest to Spotify's length, downloaded with the song flags, tagged with Spotify's artist/title/album/track number, then imported and identified. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
LinTunes
Lintunes is an mp3 library manager and player for linux. Absolutely no guarantees, if it wrecks your itunes library or wipes your harddrive that's on you (maybe just have your LLM of choice review the software for bugs if you're worried). FWIW I've been using it for months without major issues.
A lot of these docs were written by LLM but I've tried to clean them up a bit!!
why I did this
I've been a mac user for ~34 years. I gave up daily driving a mac in 2021 but kept my music library in itunes. After 5 years I got tired of my music being solely on my desktop. But I couldn't find anything with all the features of itunes I wanted and also with the ability to import my 26 year old mp3 library. So.
Quick start even if you're not a big comp guy
(written by LLM, cleaned up by me)
1. Open a terminal. Press the Super key (probs the one with the Windows logo),
type terminal, press Enter.
Paste each command below with Ctrl+Shift+V (plain Ctrl+V doesn't work in a terminal), then press Enter. If it asks for your password, type it — nothing shows while you type, that's normal.
2. Install what LinTunes needs.
If you're not sure which distro you're on try the Debian one. If it balks like sudo: apt: command not found, try the Fedora one.
# Debian / Ubuntu / Mint
sudo apt install git python3-pyqt6 python3-pyqt6.qtmultimedia python3-mutagen python3-numpy python3-requests
# Fedora
sudo dnf install git python3-pyqt6 qt6-qtmultimedia python3-mutagen python3-numpy python3-requests
3. Download LinTunes
cd ~
git clone https://git.autonomic.zone/trav/lintunes.git
cd lintunes
4. Add it to your app menu and start it:
This will setup LinTunes to create a folder inside your Music folder where it'll keep your music organized.
bash packaging/install-desktop.sh
mkdir -p ~/Music/lintunes
python3 -m lintunes.main --data-dir ~/Music/lintunes --save-config
Now you can open LinTunes from your app menu like any other app. Now you're running LinTunes! You can drag music in and it'll copy it into the ~/Music/lintunes folder and keep it organize (make sure you have enough ssd space to store your music).
If you see a little asterix in the bottom-left next to the version number it means there's a software update. Click that number and it'll do the update.
Window opens but nothing plays? Your system is missing audio codecs. On
Fedora, enable RPM Fusion, then run
sudo dnf swap ffmpeg-free ffmpeg --allowerasing.
Keys
(written by LLM, cleaned up by me)
- Space play/pause · ←/→ previous/next
- Ctrl+B column browser
- Ctrl+I get info for currently selected track
- Ctrl+L go to current song
- Ctrl+O add files
- Ctrl+N new playlist (Ctrl+Alt+N smart, Ctrl+Shift+N folder)
- Ctrl+Z undo
- Ctrl+, preferences
- Ctrl+C/Ctrl+X/Ctrl+V copy/cut/paste tracks
- click sidebar art for a big art window
Full Features list
(written by LLM and cleaned up a bit by me)
Library
- Sortable track list with 24 optional columns (plays, skips, rating, BPM, bit rate, date added…) — column choice, sort and widths are remembered per playlist.
- Keeps track of date song was last played
- Column browser (Ctrl+B) — filter by genre / artist / album.
- Instant search over name, artist, album, composer and more.
- Get Info (Ctrl+I) edits tags on one track or a whole selection at once, writing them back to the file. Artwork can be pasted, dragged in, or fetched automatically (Download Album Art…, via the iTunes Search API).
- Rename an artist or album and the files move themselves into a tidy
Artist/Album/tree. - Undo/redo everything (Ctrl+Z / Ctrl+Shift+Z) — edits, deletes, reorders.
- Deleting a track sends the file to your desktop Trash, never
rm. - Identify Track… listens to a song (Chromaprint + AcoustID) and proposes its real title, artist, album and original release year — and when the internet has never heard of it, reads the answer out of the filename.
- Import from URL… (File menu) — paste a link and the song is downloaded (yt-dlp), filed, and handed straight to Identify Track.
- Album art is searched on both iTunes and Deezer, can be pasted onto a whole album's worth of tracks at once, and clicking the blank cover in the sidebar goes looking for it.
- Right-click any song to look it up on YouTube.
- Every song you add is stamped with the day you added it.
Playlists
- Regular playlists, folders, and smart playlists (auto-updating, with a full rule editor).
- Drag and drop to reorder or insert at a spot; duplicate-aware adds; copy/cut/paste tracks between playlists.
- Click a selected playlist's name to rename it.
- New libraries start with a New Tracks smart playlist (everything added in the last 3 months).
Playing
- mp3, m4a, flac, aac, wav, aiff.
- Shuffle, per-track start/stop times, play counts, skip counts and ratings.
- Media keys work, plus Space and ←/→ anywhere in the app.
- Live spectrum visualizer — click it to cycle bright / dim / off.
- last.fm scrobbling
- Theming: highlight color, UI scale, and custom colors
- A soft emboss on every button that follows your custom colors.
Sending music elsewhere
- Chromecast
- Export a playlist (File ▸ Export Playlist…) — either a folder of
Artist - Title.mp3files plus an.m3u, or a self-containedindex.htmlyou can upload anywhere. - Sync a playlist to a Rabbit R1 over MTP,
.m3uincluded. - andTunes, a small music player for the Rabbit R1 that LinTunes installs and fills from the Connections menu — and the plays you rack up on the Rabbit come back into your library.
Living on more than one machine
- The whole library is plain JSON, designed to be synced with Syncthing. Sync conflicts merge themselves on startup.
- The version number in the status bar checks for updates (via git) and you can click it to update to the latest version.
- Play counts can never conflict (each machine keeps its own tally), a song you remove on one machine stays removed, and the merge report only speaks up when something you'd care about happened.
Sharing with friends (Cassette)
- Share playlists with friends! More info at cassette.md
BUT WAIT, THERE'S MORE
there's a file extra-docs.md with more documentation that might be handy if you have more questions
