A plugin for Jellyfin that extracts metadata tags from audio files (ID3v2, Vorbis comments, etc.) and adds them as Jellyfin tags for better organization and discovery.
This plugin automatically processes your music library to extract embedded tags and makes them available for filtering, and organizing your music collection.
Requires Jellyfin version 10.10.0 or newer. New functionality is only developed for Jellyfin version 10.11.0 and newer.
MusicTags features a modern web-based configuration interface through the plugin settings page! Configure tag extraction settings without any manual file editing.
The configuration page allows you to:
Tag Names to Extract: Specify which tags to extract from your audio files
Tag Value Delimiters: Split multi-value tags into separate tags
/|;\ for slash, pipe, semicolon, and backslash); to the delimiters to split them into separate tagsTag Names to Remove: Remove unwanted tags from your Jellyfin library
Processing Options: Control how tags are processed
The plugin supports extraction from multiple audio metadata formats:
GENRE, MOOD, or any custom field nameAB:GENRE, AB:MOOD (commonly used with MusicBrainz Picard)AB: prefix refers to AcousticBrainz metadata. You can use either GENRE or AB:GENRE depending on how your files are tagged.The plugin supports extraction of custom tags from all major audio formats:
All these formats support extraction of any custom tag you define:
Example: You can extract FILETYPE, MOOD, LANGUAGE, KEY, BPM, or any other custom tag you've added using tools like MP3Tag or MusicBrainz Picard.
All supported formats can also extract these standard metadata fields:
Add this repository URL to your Jellyfin plugin catalog:
https://raw.githubusercontent.com/jyourstone/jellyfin-plugin-manifest/master/manifest.json
Download the latest release from the Releases page and extract it to your Jellyfin plugins directory.
Configure the plugin to extract genre and mood information from your audio files:
GENRE,MOOD (for standard tags) or AB:GENRE,AB:MOOD (for AcousticBrainz tags)If your audio files contain multiple genres separated by delimiters:
GENRE/|\ (forward slash, pipe, and backslash as individual delimiters)GENRE=Progressive Rock\Psychedelic Rock will create two separate tags:
GENRE:Progressive RockGENRE:Psychedelic RockFor DJ mixing or music production analysis:
BPM,KEYFor parental control filtering to work at album/artist level:
GENREGENRE:Rock, the album will also get GENRE:Rock. If you block Rock for a user, they won't see the album at all.Remove unwanted tags from your library:
BPMMusicTags works exceptionally well with the SmartLists Plugin! Once you've extracted audio tags with MusicTags, you can use SmartList to create dynamic playlists based on those custom tags.
BPM tags between 130-150 (filter by tags and use this regex: \bBPM:(13[0-9]|14[0-9]|150)\b)MOOD or AB:MOOD tags like "chill", "relaxing", or "ambient"KEY tagsThis powerful combination allows you to leverage the rich metadata embedded in your audio files to create sophisticated, automatically-updating playlists that reflect the actual musical characteristics of your music!
MusicTags automatically processes your audio files when the "Process Music Tags" scheduled task runs. You can also manually trigger processing from the plugin configuration page.
For local development, see the dev folder
BPMGENRE (standard tag) or AB:GENRE (AcousticBrainz tag)GENRE for standard ID3/Vorbis tags, or AB:GENRE if you use MusicBrainz Picard with AcousticBrainz pluginsMOOD (standard tag) or AB:MOOD (AcousticBrainz tag)KEYSee the Audio Format Support section above for detailed information about which formats support custom tags vs. standard tags only.
The vast majority of this plugin, was developed by an AI assistant. While I do have some basic experience with C# from a long time ago, I'm essentially the project manager, guiding the AI, fixing its occasional goofs, and trying to keep it from becoming self-aware. Use at your own risk!
55 commits
C#
85.3%
HTML
12.5%
PowerShell
1.2%
Shell
1.0%
A plugin for Jellyfin that extracts metadata tags from audio files (ID3v2, Vorbis comments, etc.) and adds them as Jellyfin tags for better organization and discovery.
This plugin automatically processes your music library to extract embedded tags and makes them available for filtering, and organizing your music collection.
Requires Jellyfin version 10.10.0 or newer. New functionality is only developed for Jellyfin version 10.11.0 and newer.
MusicTags features a modern web-based configuration interface through the plugin settings page! Configure tag extraction settings without any manual file editing.
The configuration page allows you to:
Tag Names to Extract: Specify which tags to extract from your audio files
Tag Value Delimiters: Split multi-value tags into separate tags
/|;\ for slash, pipe, semicolon, and backslash); to the delimiters to split them into separate tagsTag Names to Remove: Remove unwanted tags from your Jellyfin library
Processing Options: Control how tags are processed
The plugin supports extraction from multiple audio metadata formats:
GENRE, MOOD, or any custom field nameAB:GENRE, AB:MOOD (commonly used with MusicBrainz Picard)AB: prefix refers to AcousticBrainz metadata. You can use either GENRE or AB:GENRE depending on how your files are tagged.The plugin supports extraction of custom tags from all major audio formats:
All these formats support extraction of any custom tag you define:
Example: You can extract FILETYPE, MOOD, LANGUAGE, KEY, BPM, or any other custom tag you've added using tools like MP3Tag or MusicBrainz Picard.
All supported formats can also extract these standard metadata fields:
Add this repository URL to your Jellyfin plugin catalog:
https://raw.githubusercontent.com/jyourstone/jellyfin-plugin-manifest/master/manifest.json
Download the latest release from the Releases page and extract it to your Jellyfin plugins directory.
Configure the plugin to extract genre and mood information from your audio files:
GENRE,MOOD (for standard tags) or AB:GENRE,AB:MOOD (for AcousticBrainz tags)If your audio files contain multiple genres separated by delimiters:
GENRE/|\ (forward slash, pipe, and backslash as individual delimiters)GENRE=Progressive Rock\Psychedelic Rock will create two separate tags:
GENRE:Progressive RockGENRE:Psychedelic RockFor DJ mixing or music production analysis:
BPM,KEYFor parental control filtering to work at album/artist level:
GENREGENRE:Rock, the album will also get GENRE:Rock. If you block Rock for a user, they won't see the album at all.Remove unwanted tags from your library:
BPMMusicTags works exceptionally well with the SmartLists Plugin! Once you've extracted audio tags with MusicTags, you can use SmartList to create dynamic playlists based on those custom tags.
BPM tags between 130-150 (filter by tags and use this regex: \bBPM:(13[0-9]|14[0-9]|150)\b)MOOD or AB:MOOD tags like "chill", "relaxing", or "ambient"KEY tagsThis powerful combination allows you to leverage the rich metadata embedded in your audio files to create sophisticated, automatically-updating playlists that reflect the actual musical characteristics of your music!
MusicTags automatically processes your audio files when the "Process Music Tags" scheduled task runs. You can also manually trigger processing from the plugin configuration page.
For local development, see the dev folder
BPMGENRE (standard tag) or AB:GENRE (AcousticBrainz tag)GENRE for standard ID3/Vorbis tags, or AB:GENRE if you use MusicBrainz Picard with AcousticBrainz pluginsMOOD (standard tag) or AB:MOOD (AcousticBrainz tag)KEYSee the Audio Format Support section above for detailed information about which formats support custom tags vs. standard tags only.
The vast majority of this plugin, was developed by an AI assistant. While I do have some basic experience with C# from a long time ago, I'm essentially the project manager, guiding the AI, fixing its occasional goofs, and trying to keep it from becoming self-aware. Use at your own risk!
55 commits
C#
85.3%
HTML
12.5%
PowerShell
1.2%
Shell
1.0%