{"slug": "beets", "name": "beets", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 4, "commenters": 6, "warners": 2, "score": 1.753, "rising": 0.02, "first": "2025-11-03", "latest": "2026-10-05", "why": "I spent a couple of nights working out how to configure beets to my liking and have loved it ever since.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 4, "neutral": 0, "compare": 0, "warn": 2}, "spark": [3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], "listed": true, "loved": [], "caveat": "", "short_quote": "I spent a couple of nights working out how to configure beets to my liking and have loved it ever since.", "icon": true, "domain": null, "github_repo": null, "official_url": "https://beets.io", "pricing": "", "aliases": ["beets"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 799468720, "item_id": 49966795, "url": "https://news.ycombinator.com/item?id=49966795", "by": "jamesbvaughan", "date": "2026-10-05", "stance": "recommend", "quote": "I use beets and it works well for me", "excerpt": "I use beets and it works well for me: https://beets.readthedocs.io/en/latest/index.html", "context": "", "use_case": "music library management", "switched_from": "", "story": "Picard 3.0"}, {"id": 733980560, "item_id": 45873785, "url": "https://news.ycombinator.com/item?id=45873785", "by": "Yodel0914", "date": "2025-11-10", "stance": "recommend", "quote": "I spent a couple of nights working out how to configure beets to my liking and have loved it ever since.", "excerpt": "I spent a couple of nights working out how to configure beets to my liking and have loved it ever since. My \u201cworkflow\u201d is now: - buy album on Bandcamp - download zip - beet import {zip file name} And beets extracts the zip, matches the album to musicbrainz, updates any metadata, and drops the files into the directory structure that I like (naming the files how I like them, too). Very rarely an album will need some mo", "context": "", "use_case": "importing and organizing music", "switched_from": "", "story": "Beets: The music geek\u2019s media organizer"}, {"id": 733977744, "item_id": 45873609, "url": "https://news.ycombinator.com/item?id=45873609", "by": "adg33", "date": "2025-11-10", "stance": "recommend", "quote": "I love beets", "excerpt": "I love beets - the one thing I can't figure out is how to set the genre very wide. I like having a small number of broad genres - Rock, Hip-Hop, Jazz etc - but the tagging comes up with hundreds of distinct genres :(", "context": "", "use_case": "music tagging", "switched_from": "", "story": "Beets: The music geek\u2019s media organizer"}, {"id": 732911683, "item_id": 45806980, "url": "https://news.ycombinator.com/item?id=45806980", "by": "_-_-__-_-_-", "date": "2025-11-03", "stance": "recommend", "quote": "a combination of beets and MusicBrainz for tagging", "excerpt": "I have a music folder 45000+ tracks and counting dating from as far back as 2003. I sync this 450 GB folder to two computers using syncthing and then use rsync to synchronize a subset of these albums (folders by format) to SD Cards inside iPod's. I use Strawberry player for listening (a fork of Clementine) and a combination of beets and MusicBrainz for tagging. Then, I scrobble my listens on ListenBrainz. When I'm in", "context": "45000+ track music library since 2003", "use_case": "music tagging", "switched_from": "", "story": "Maintaining a Music Library, Ten Years On"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 743101095, "item_id": 46443818, "url": "https://news.ycombinator.com/item?id=46443818", "by": "skydhash", "date": "2025-12-31", "stance": "warn", "quote": "the overhead wasn\u2019t worth it", "excerpt": "I have spotify (The duo plan is cheap where I\u2019m at and my SO wanted to use it work). But I do maintain my own collection, mostly because Spotify UI is pure garbage. My collection is store on an old mac mini (with debian). It\u2019s directly linked to an home theater setup via optical. I have MPD on it that I control with Rigelian on my phone. But I often just ssh and use MoC to play music. I also have gonic (subsonic serv", "context": "", "use_case": "music library management", "switched_from": "", "story": "Ask HN: How to go back to listening to MP3s?"}, {"id": 734010752, "item_id": 45875672, "url": "https://news.ycombinator.com/item?id=45875672", "by": "echelon_musk", "date": "2025-11-10", "stance": "warn", "quote": "I've tried to use beets a number of times and given up each time.", "excerpt": "I've tried to use beets a number of times and given up each time. - beets can't delete transcoded files which have been deleted at source. - beets can't re transcode existing transcoded files when the source has been modified. - It's impossible to preserve the original directory structure when transcoding because it strips all path separators for \"security\". I use a Bash script I've been maintaining for a number of y", "context": "", "use_case": "transcoding music library", "switched_from": "beets", "story": "Beets: The music geek\u2019s media organizer"}]}], "who": [{"by": "_-_-__-_-_-", "context": "45000+ track music library since 2003", "url": "https://news.ycombinator.com/item?id=45806980", "date": "2025-11-03"}], "tags": [], "use_cases": ["music library management", "music tagging", "transcoding music library", "importing and organizing music"], "compared": [{"slug": "navidrome", "name": "Navidrome", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=45873037", "title": "Beets: The music geek\u2019s media organizer", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=49965047", "title": "Picard 3.0", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46406311", "title": "Ask HN: How to go back to listening to MP3s?", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=45753109", "title": "Maintaining a Music Library, Ten Years On", "mentions": 1}], "sentiment_by_month": {"2025-11": {"recommend": 3, "warn": 1}, "2025-12": {"warn": 1}, "2026-01": {}, "2026-02": {}, "2026-03": {}, "2026-04": {}, "2026-05": {}, "2026-06": {}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {"recommend": 1}}, "quotes": [{"id": 799468720, "item_id": 49966795, "url": "https://news.ycombinator.com/item?id=49966795", "by": "jamesbvaughan", "date": "2026-10-05", "stance": "recommend", "quote": "I use beets and it works well for me", "excerpt": "I use beets and it works well for me: https://beets.readthedocs.io/en/latest/index.html", "context": "", "use_case": "music library management", "switched_from": "", "story": "Picard 3.0"}, {"id": 743101095, "item_id": 46443818, "url": "https://news.ycombinator.com/item?id=46443818", "by": "skydhash", "date": "2025-12-31", "stance": "warn", "quote": "the overhead wasn\u2019t worth it", "excerpt": "I have spotify (The duo plan is cheap where I\u2019m at and my SO wanted to use it work). But I do maintain my own collection, mostly because Spotify UI is pure garbage. My collection is store on an old mac mini (with debian). It\u2019s directly linked to an home theater setup via optical. I have MPD on it that I control with Rigelian on my phone. But I often just ssh and use MoC to play music. I also have gonic (subsonic serv", "context": "", "use_case": "music library management", "switched_from": "", "story": "Ask HN: How to go back to listening to MP3s?"}, {"id": 734010752, "item_id": 45875672, "url": "https://news.ycombinator.com/item?id=45875672", "by": "echelon_musk", "date": "2025-11-10", "stance": "warn", "quote": "I've tried to use beets a number of times and given up each time.", "excerpt": "I've tried to use beets a number of times and given up each time. - beets can't delete transcoded files which have been deleted at source. - beets can't re transcode existing transcoded files when the source has been modified. - It's impossible to preserve the original directory structure when transcoding because it strips all path separators for \"security\". I use a Bash script I've been maintaining for a number of y", "context": "", "use_case": "transcoding music library", "switched_from": "beets", "story": "Beets: The music geek\u2019s media organizer"}, {"id": 733980560, "item_id": 45873785, "url": "https://news.ycombinator.com/item?id=45873785", "by": "Yodel0914", "date": "2025-11-10", "stance": "recommend", "quote": "I spent a couple of nights working out how to configure beets to my liking and have loved it ever since.", "excerpt": "I spent a couple of nights working out how to configure beets to my liking and have loved it ever since. My \u201cworkflow\u201d is now: - buy album on Bandcamp - download zip - beet import {zip file name} And beets extracts the zip, matches the album to musicbrainz, updates any metadata, and drops the files into the directory structure that I like (naming the files how I like them, too). Very rarely an album will need some mo", "context": "", "use_case": "importing and organizing music", "switched_from": "", "story": "Beets: The music geek\u2019s media organizer"}, {"id": 733977744, "item_id": 45873609, "url": "https://news.ycombinator.com/item?id=45873609", "by": "adg33", "date": "2025-11-10", "stance": "recommend", "quote": "I love beets", "excerpt": "I love beets - the one thing I can't figure out is how to set the genre very wide. I like having a small number of broad genres - Rock, Hip-Hop, Jazz etc - but the tagging comes up with hundreds of distinct genres :(", "context": "", "use_case": "music tagging", "switched_from": "", "story": "Beets: The music geek\u2019s media organizer"}, {"id": 732911683, "item_id": 45806980, "url": "https://news.ycombinator.com/item?id=45806980", "by": "_-_-__-_-_-", "date": "2025-11-03", "stance": "recommend", "quote": "a combination of beets and MusicBrainz for tagging", "excerpt": "I have a music folder 45000+ tracks and counting dating from as far back as 2003. I sync this 450 GB folder to two computers using syncthing and then use rsync to synchronize a subset of these albums (folders by format) to SD Cards inside iPod's. I use Strawberry player for listening (a fork of Clementine) and a combination of beets and MusicBrainz for tagging. Then, I scrobble my listens on ListenBrainz. When I'm in", "context": "45000+ track music library since 2003", "use_case": "music tagging", "switched_from": "", "story": "Maintaining a Music Library, Ten Years On"}]}