HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
beetbox
beets
Python2014–2026
beetbox / beets

beets

music library manager and MusicBrainz tagger

21Distinct people
25Mentions
0Explicit recommenders
15.9KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

music library manager and MusicBrainz tagger

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year25 dated mentions

Observed mentions: 2014-03-03 22:31:59 UTC to 2026-10-05 16:37:14 UTC.

0123452014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 5 mentions; 1 submissions, 4 comments20142015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 3 mentions; 2 submissions, 1 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 2 mentions; 2 submissions, 0 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC514
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC303
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC110
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC321
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC101
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC202
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC303
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC101
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC101
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC220
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC000
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC202

What Hacker News says

25 sources
I wanted to love beets as I prefer the CLI, but it just seemed very finicky for me. 1. Tagging doesn't work if you don't import every song in an album at once (see https://www.reddit.com/r/musichoarder/comments/1j0wnbz/need_... and dev comments on https://github.com/beetbox/beets/issues/5014) 2. Even when you do import a full album, it often struggles to match tracks. Here's part of a transcript I saved: Match (29.3%): StarSystems - Lift ≠ artist, album, tracks, unmatched tracks MusicBrainz, CD-R, 2019, GB, None, None, None https://musicbrainz.org/release/7c68b7ff-27c0-4da7-8430-d4228c6f6ff8 ≠ Artist: -> StarSystems ≠ (#0) StarSystems - Arrival [2238026155].mp3 (1:08) -> (#1) Arrival (1:08) ≠ (#0) StarSystems - Slipstream [1268364723].mp3 (6:23) -> (#2) Flower (6:25) ≠ (#0) StarSystems - Tr
Read the rest
igger Fish [1805252711].mp3 (5:06) -> (#3) Party Time (5:03) ≠ (#0) StarSystems - Moth [857985311].mp3 (4:51) -> (#4) Moth (4:51) ≠ (#0) StarSystems - Vortex [1717930774].mp3 (5:38) -> (#5) Vortex (5:38) ≠ (#0) StarSystems - Flower [3129604796].mp3 (6:25) -> (#6) Slipstream (6:23) ≠ (#0) StarSystems - Party Time [545976708].mp3 (5:03) -> (#7) Trigger Fish (5:06) ≠ (#0) StarSystems - Lift (feat. Jordan Rudess) [3330158657].mp3 (8:09) -> (#8) Lift (feat. Jordan Rudess) (8:09) ≠ (#0) StarSystems - Disengage [526901544].mp3 (2:01) -> (#9) Disengage (2:01) Unmatched tracks (1): ! (#0) (5:06) Apply, More candidates, Skip, Use as-is, as Tracks, Group albums, Rescan directory, Enter search, enter Id, aBort? Look at tracks #2, #3, #6, #7. Why is it trying to switch the names around, even though the original name + length is right, and the new name + length is wrong? Picard has worked flawlessly for me so far, it's just a shame it can't be automated.
In Picard 3.0
A lot of this discussion makes more sense if you know the history of The Echo Nest and their acquisition by Spotify. The Echo Nest was one of the most interesting music-tech companies ever built: a music intelligence platform spun out of MIT that analyzed audio, metadata, web text, artist similarity, genre structure, and playlist construction. Spotify bought them in 2014 specifically to strengthen music discovery and recommendation. At the time, Spotify said the deal would let it use The Echo Nest's "in depth musical understanding and tools for curation", and even said the Echo Nest API would remain "free and open" for developers. https://en.wikipedia.org/wiki/The_Echo_Nest https://news.cision.com/spotify/r/spotify-acquires-the-echo-... If you ever used the old Echo Nest APIs, Remix SDK, demos, Music Hack Day projects, or Paul Lamere's ex
Read the rest
periments, that was a golden era. Echo Nest had open APIs for artist similarity, track analysis, playlisting, "taste profiles", ID mapping across services, and beat/segment-level music analysis. Paul Lamere's whole ecosystem of demos came out of that world: Boil the Frog, Sort Your Music, Organize Your Music, playlistminer, and later Smarter Playlists. His GitHub still points to a lot of that lineage, and his blog is still active. In fact, he posted just this month about rebuilding Smarter Playlists after ten years of use. https://github.com/plamere https://musicmachinery.com/ The sad part is that the open developer platform mostly did not survive the acquisition. By 2016, developers were being told that the Echo Nest API would stop issuing new keys and then stop serving requests, with migration to Spotify’s API instead. Community discussions at the time also noted that some Echo Nest capabilities, especially things like Rosetta-style cross-service mapping, were not really carried over. https://github.com/beetbox/beets/issues/1920 That's also why Spotify's current AI DJ is so frustrating. The problem is that "AI DJ" is not the same thing as a system that deeply understands musical structure, discography semantics, performance history, or classical work/movement hierarchy. It's a recommendation + narration layer, not a true MIR-native musical intelligence system. If you're interested in the research side of this field, the conference is ISMIR: the International Society for Music Information Retrieval, which is literally dedicated to computational tools for processing, searching, organizing, and accessing music-related data. That community is still very active. The ISMIR site describes MIR exactly in those terms, and the 2010 Utrecht conference included Paul Lamere's tutorial, "Finding A Path Through The Jukebox -- The Playlist Tutorial." https://ismir.net/ https://news.ycombinator.com/item?id=36482468 >gffrd on June 26, 2023 | parent | context | favorite | on: Show HN: Mofi – Content-aware fill for audio to ch... >Yes! It was "Infinite Jukebox," created by Paul Lamere ... it was awesome because it would analyse a track, then visualize its "components" and you could watch as the new "infinite" track looped back on itself and jumped from point-to-point in the original track to create an everlasting one. He created some excellent products from the Rdio API, and later Spotify ... and I believe his analysis engine ended up being the foundation upon which Spotify's _play more tracks like these_ capability is based. >Looks like he's moved over to publish on Substack -- there's a recent(ish) post reflecting on 10 years of Infinite Jukebox: https://musicmachinery.substack.com/p/the-infinite-jukebox-1... >rahimnathwani on June 26, 2023 | next [–] >However, that wasn't the end of the Infinite Jukebox. An enterprising developer: Izzy Dahanela made her own hack on top of mine. To make it work without using uploaded content, she matches up the Echo Nest / Spotify music analysis with the corresponding song on YouTube. She hosts this at eternalbox.dev. It runs just as well as it ever did, 10 years later. >DonHopkins on June 28, 2023 | parent | context | favorite | on: Show HN: Mofi – Content-aware fill for audio to ch... >I was working on some music retrieval stuff in 2010, so I joined the EchoNest developer program and played around with their web apis that let you upload music and download an analysis that you could use in all kinds of cool ways. They had an SDK with some great demos and example code. I discussed it with Eric Swenson and Paul Lamere, and had the chance to hang out with Paul Lamere and Ben Fields at ISMIR 2010 (the International Society for Music Information Retrieval conference) in Utrecht, where they gave a tutorial about playlisting: https://ismir2010.ismir.net/program/tutorials/index.html#tut... Finding a path through the Jukebox: The Playlist Tutorial: https://musicmachinery.com/2010/08/06/finding-a-path-through... >Tutorial 4: Finding A Path Through The Jukebox -- The Playlist Tutorial. The simple playlist, in its many forms -- from the radio show, to the album, to the mixtape has long been a part of how people discover, listen to and share music. As the world of online music grows, the playlist is once again becoming a central tool to help listeners successfully experience music. Further, the playlist is increasingly a vehicle for recommendation and discovery of new or unknown music. More and more, commercial music services such as Pandora, Last.fm, iTunes and Spotify rely on the playlist to improve the listening experience. In this tutorial we look at the state of the art in playlisting. We present a brief history of the playlist, provide an overview of the different types of playlists and take an in-depth look at the state-of-the-art in automatic playlist generation including commercial and academic systems. We explore methods of evaluating playlists and ways that MIR techniques can be used to improve playlists. Our tutorial concludes with a discussion of what the future may hold for playlists and playlist generation/construction. >[...] Some of the most interesting Echo Nest descendants are still around in one form or another. Paul Lamere's current/public projects include Smarter Playlists, and his GitHub still highlights SortYourMusic, OrganizeYourMusic, playlistminer, and BoilTheFrog. Glenn McDonald’s Every Noise at Once is another major descendant of that tradition: an enormous map of music genre space. Glenn's own site still describes it as an "inexorably expanding universe of music-processing experiments", and the public genre pages now explicitly say they're a long-running snapshot based on Spotify data through 2023-11-19. After Spotify's layoffs in 2023, TechCrunch reported that Glenn lost access to the internal data needed to keep Every Noise fully updated, which is why it now feels more archival than alive. Back in 1998 when I was working on The Sims 1, I proposed in my review of the design document something I called "Moody Music": essentially a soundtrack plus a synchronized semantic/emotional control track that could affect gameplay over time. The idea was that music wouldn't just decorate the simulation; it would change it: influencing mood, motives, relationships, skills, timing, and even triggering events at specific musical moments. I wrote that up in my review of the 1998-08-07 Sims design document, along with the broader idea of letting the game recognize a player's own CDs and fetch associated "moody tracks" from the network. Don’s review of The Sims Design Document, Draft 3 – 8/7/98: https://donhopkins.com/home/TheSims/TheSimsDesignDocumentDra... >I have some ideas about how the music could effect the game, that I will write up more completely later. In a nutshell, the people in the house could have a cd or record collection to choose from, each record an object that has the sound (audio wave and/or midi) and a “moody” track synchronized with the music. Playing the music also plays the moods into the environment that the people pick up on. Music can subtly effect how people react to the environment, objects, and each other. It can effect their motives and even their skills temporarily. For example, you might be able to clean the house better and faster if you put on some up tempo bouncy music. The player should be able to assume the role of disc jockey on the radio, and play from another larger library of music and commercials, that effect the peoples moods and buying habits. The TV of course is another source of mood altering temporal media, with commercials and shows that should effect different people differently. But the most important part of this idea is instead of the game effecting the music that’s played, the music effects how the game plays! The ultimate way for the user to effect the game via music, is to insert one of their own CD’s into their real computer’s CDROM drive, and the game would recognize it, and start playing it (maybe with a simple cd player interface to select the song). There could be a database associating the unique ID number of the CD with a table of contents and “moody” tracks that tell how the song effects the peoples emotions over time, with "percussion" events at dramatic moments of the music that can trigger arbitrary events in the game (like provoking a fight that was brewing, or triggering an orgasm at just the right place in the song). We hire monkeys to listen to well known CD’s, and enter time synchronized tracks with semantic meanings in Max (like note tracks, and user defined numeric tracks) or some other timeline editing tool). Put the database up on the web for instant retrieval, so when somebody sticks in a new CD, it downloads our “moody” tracks that go with it, and it starts playing and effecting their game! Streaming emotions over the net! Eventually there should be an end-user tool so people can record their own responses to music as moody tracks they can use in our games. This mechanism could be used in all kinds of games, to varying degrees of effect. I’m not saying that music should be the only way to control the game – it’s more like a subtle background effect, but there certainly could be a scenario where you try to accomplish some task (like taming a wild beast) by using only your musical taste and timing. The real bottom line benefit is that you get to listen to your OWN cd collection of music you want to hear, instead of being driven crazy by the repetitive music bundled with the game. In hindsight it was quite adjacent to MIR, affective computing, adaptive soundtrack systems, and some of the ambitions that Echo Nest represented. That's why I was so excited about The Echo Nest in 2010 when I was working with Will Wright at the Stupid Fun Club on a music spatial organization and navigation system called MediaGraph. MediaGraph Music Navigation with Pie Menus Prototype developed for Will Wright's Stupid Fun Club https://www.youtube.com/watch?v=2KfeHNIXYUc >This is a demo of a user interface research prototype that I developed for Will Wright at the Stupid Fun Club. It includes pie menus, an editable map of music interconnected with roads, and cellular automata. >It uses one kind of nested hierarchical pie menu to build and edit another kind of geographic networked pie menu.
In The Appalling Stupidity of Spotify's AI DJ

Show HN: Synced lyrics database with a free, easy-to-use API

I was always frustrated that there is no solid source for synced lyrics that also offers decent API support. There is good ol' Crintsoft's MiniLyrics that is thankfully free software, was what I used a lot in my childhood, but unfortunately the API is highly obfuscated. Another popular choice is the Musixmatch API, which has a very large database of synced lyrics, but with "free" API that are reverse-engineered from their app, you will quickly run into rate-limit. That's why I created LRCLIB. It's aimed to provide completely free synchronized lyrics for everyone, especially for FOSS music players, with zero profit intention. It currently has nearly 3,000,000 (not deduplicated) lyrics in database. You can also contribute to the database by adding and syncing lyrics for your favorite songs using the LRCGET client. I'm trying my best to make
Read the rest
LRCLIB server-side code open-source as soon as possible. But right now, full LRCLIB's database dumps have already been uploaded regularly and publicly, which are simply sqlite3 files. Feel free to download, look at or do anything you want with the database at https://lrclib.net/db-dumps. Many open-source projects have already begun integrating LRCLIB, including: - beets - music library metadata management (https://github.com/beetbox/beets) - feishin - self-hosted music player (https://github.com/jeffvli/feishin) - namida - music player for Android (https://github.com/namidaco/namida) If you are interested or are looking for a good API for unsynced/synced lyrics source, please check it out!
2 points · Open discussion
I'd highly recommend bandcamp-collection-downloader[1]. As a heavy buyer of music from bandcamp it's great to just run a command[2] and have everything download while also keeping track of previous downloads so it doesn't re-download them. Personally I have them moved to a temp folder then I process/tag them with Picard[3] but you could probably automate that step with Beets[4] but I've not delved into it yet. 1. https://github.com/Ezwen/bandcamp-collection-downloader 2. https://gist.github.com/ryanwalder/d5d6d1d43b4b77fb92bde75b5... (stick it in ~/bin/bandcamp and just run `bandcamp` to download everything) 3. https://picard.musicbrainz.org/ 4. https://github.com/beetbox/beets
In "MP3 is dead" missed the real, much better story (2017)
I appreciate all these players and server thingeys and what not, but what is extremely needed right now is a robust tagger, library db type thing. As far as I know, there are two solutions beets https://github.com/beetbox/beets and picard https://github.com/metabrainz/picard. Beets is maintained, but relies on plugins which are not; but mainly it is slow as to be unusable for a decent size library. Picard is better, but limited in functionality (I want it to have a persistent db of my music too). I just want a thin wrapper around an sqlite db that can do rudimentary tag detection and have functionality like "Import this folder into my library, moving the files and adding the songs to the table"
In Show HN: Simpler access to your music from the web that looks nice
Heh, nice :-) Yeah, cmus is incredibly convenient for rapid playlist management once you learn the shortcuts, (there's an excellent quick tutorial $ man cmus-tutorial). I mostly use 7digital & HDTracks to acquire FLACs these days, but when I rip from CDs, I use https://github.com/whipper-team/whipper to do the job. FLACs from 7d/HDTracks are already named & tagged properly so I only deal with it occasionally and when I do, https://picard.musicbrainz.org works well for acquiring tags & artwork. When I need to rename/tag manually, https://kid3.sourceforge.io has been working nicely. Also I haven't used it myself, but there's a lot of positive chatter around https://github.com/beetbox/beets for tagging etc. I just prefer not to have my files touched in such an automated way :-) I rarely actually convert from FLACs these days, since I have se
Read the rest
t up Airsonic, (https://github.com/airsonic/airsonic), on my home server. I now have access to the lossless files directly, from anywhere. When I do convert, I usually just use https://github.com/kassoulet/soundconverter - nothing fancy, but does the job. I do not maintain my whole library in both, lossless & lossy formats since I have set up Airsonic, but when I do want to save data & do not have access to WiFi, I just let Airsonic use lame to transcode to MP3s on the fly, (rare). If you cannot do that, don't have regular access to data on the go etc. I'd honestly just use https://ecasound.seul.org/ecasound/Documentation/examples.ht... and put it in a script that checks if a .flac file in a folder or subfolder has a corresponding .mp3/.ogg file and convert if not, then just use find to filter out the format I don't want to copy over. :-)
In 24/192 Music Downloads and why they make no sense (2012)
You may be interested in soulseek[0]. I use it to search for more obscure music and the results include the bitrate/format. There's also a watchlist function in case you can't find something so you can keep searching in the background. Afterwards I use beets[1] to autotag everything with musicbrains and move it to my library folder, and it usually works. The downside is it isn't a streaming service so you have to find some way to listen remotely. I use Plex[2] for this and haven't had any issues. Also since it's P2P there's a general expectation that you also share things with other people, so you'd have to be prepared for that. [0] https://www.slsknet.org/news/ [1] https://github.com/beetbox/beets [2] https://www.plex.tv/
In Nuclear – Popcorn Time for music

Showing the 15 most recent of 25 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.