docs: Identify and clean up references to broken or unmaintained plugins
There are currently several plugins referenced in the documentation and ecosystem that appear to be outdated, unmaintained, or no longer functional. This makes it harder for users to find reliable tools and contributes to confusion about what's actively supported.
Objective
We should audit the list of known plugins (in the docs) and identify:
- Plugins that are broken or no longer work with current Beets versions
- Plugins that are no longer maintained (e.g., stale repos, no recent commits/issues)
- Any links in the docs or plugin lists that are dead or outdated
This issue was prompted by #5779 noting that some plugins, while historically useful (like beets-copyartifacts), may no longer be actively supported or even working with the current beets version.
We should also probably do something about dead internal plugins, for example beatport 😅
To kick this of a bit and get us going I created a list of all the plugins that are currently in the beets docs. Feel free to edit this comment and add notes on the plugins. You can also reply and I will update this comment.
Internal plugins with documentation files
TODO:
- [ ] albumtypes
- [ ] aura
- [ ] autobpm
- [ ] badfiles
- [ ] bareasc
- [ ] beatport
- [ ] beetsweb.png
- [ ] bpd
- [ ] bpm
- [ ] bpsync
- [ ] bucket
- [ ] chroma
- [ ] convert
- [ ] deezer
- [ ] discogs
- [ ] duplicates
- [ ] edit
- [ ] embedart
- [ ] embyupdate
- [ ] export
- [ ] fetchart
- [ ] filefilter
- [ ] fish
- [ ] freedesktop
- [ ] fromfilename
- [ ] ftintitle
- [ ] fuzzy
- [ ] gmusic
- [ ] hook
- [ ] ihate
- [ ] importadded
- [ ] importfeeds
- [ ] index
- [ ] info
- [ ] inline
- [ ] ipfs
- [ ] keyfinder
- [ ] kodiupdate
- [ ] lastgenre
- [ ] lastimport
- [ ] limit
- [ ] listenbrainz
- [ ] loadext
- [ ] lyrics
- [ ] mbcollection
- [ ] mbsubmit
- [ ] mbsync
- [ ] metasync
- [ ] missing
- [ ] mpdstats
- [ ] mpdupdate
- [ ] musicbrainz
- [ ] parentwork
- [ ] permissions
- [ ] play
- [ ] playlist
- [ ] plexupdate
- [ ] random
- [ ] replace
- [ ] replaygain
- [ ] rewrite
- [ ] scrub
- [ ] smartplaylist
- [ ] sonosupdate
- [ ] spotify
- [ ] subsonicplaylist
- [ ] subsonicupdate
- [ ] substitute
- [ ] the
- [ ] thumbnails
- [ ] types
- [ ] unimported
- [ ] web
- [ ] zero
Keep:
- [x] advancedrewrite
- comment: Plugin is working. We might want to combine this with the rewrite plugin at some point, seems very doable and would simplify the docs.
Remove:
- [x] absubmit
- comment: AcousicBrainz project was shut down! I would remove this plugin from the docs and the repo. Was marked as deprecated two years ago.
- [x] acousticbrainz
- comment: AcousicBrainz project was shut down! I would remove this plugin from the docs and the repo. Was marked as deprecated two years ago.
I've thought about this. I think the best bang for buck is asking plugin devs to add annual tags to their repos. Any beets plugin should be tagged with beets-plugin (or whatever name we decide) and the current year - 2025. Github search allows boolean operators so we could just link to plugins as they update.
https://github.com/search?q=+%222025%22+AND+%22beets-plugin%22&type=repositories
Current state is just an alphabetical sort:
https://beets.readthedocs.io/en/latest/plugins/aura.html
We could sort by stars by default. Unfortunately, alphabetical sort in github searches isn't possible.
https://github.com/search?q=%22beets-plugin%22&type=repositories&s=stars&o=desc
If a developer stops updating a git repo for a year, that's a sign that the plugin is no longer supported. So this method would automatically rank up-to-date plugins higher. Maintenance overhead: one tag per year per repo, and 2 lines of markdown in the docs per year.
Here's how it could look in our docs:
Last Updated: 2026
Last Updated: 2025
Last Updated: 2024 and earlier
You can consult our legacy list of plugins that have not been updated recently. Some may have overlap with the plugins in the above links.
Because these plugins are so old, they may not work with current beets.