A walkthrough for optimal Audiobook experience using Plex
Shell
1,823
121 commits
updated May 20, 2024
This guide is specifically for optimal Audiobook experience using Plex, which in it's current state only quasi-supports audiobooks. This is my method for processing large libraries with bad/missing tags as quick as possible while getting the most metadata into Plex in the least amount of time. I'll be doing a deep dive into some advanced features of the tools available to us in order to get a nice, clean, and functional UI. This guide is meant to serve as a framework for fully utilizing metadata. Everything is customizable, and easy to change. While focused on Plex, if you follow the tagging and file processing steps you will also be compatible with Booksonic and AudiobookShelf servers.
Note: This guide targets and has been tested on Windows systems. Most of it also works on Linux/Mac but the Mp3tag Audible WebSource script only works on Windows. For workarounds see issue #2.
Show as much metadata as possible in Plex & Booksonic. Filter/browse/search by Narrator, Author, Genre, Year, Series, Rating, or Publisher. Show Album Covers and Summary's. Make the organizing and tagging as quick and painless as possible. We need to do these 4 general steps:


I plan on having a seprate walkthrough that will take you through backing up your Audible .aax files, and converting them to chapterized .M4B files. This guide will work for both mp3 and m4b files, but I prefer chapterized m4b's. Plex handles M4B metadata better than mp3's, some third party players like Prologue and BookCamp can handle the M4B chapter splits and names, and generally having less files helps plex run smoother.
For some more Software resources for Audible-centric audiobook management, including removing DRM from Audible files check out @rmcrackan's AudiobookHub
Now that you have your files, let get them in a format Plex can handle so we can stream our whole library with our firends and family.
I have 3 working directories for my Audiobooks:
~/Original Folder where I keep the un-altered original audio Files~/temp Folder where I copy the audio files that need to be processed, this is the folder Mp3tag will open by default~/Audiobooks Folder where I archive my properly tagged files in the proper folder structure, this is the folder I point Plex atAnywhere these folders are referenced, make sure to update to your specific paths
Best Practice: Tag your files before adding them to Plex.
Optional: This step is only required if you want to preserve the original unedited Audiobook files. This is required if you are seeding torrents, for example from librivox.org. That said, this is a recommended step for everyone, just incase something goes horribly wrong with Mp3tag or copying files.
This Script will:
/original folder/original since the last run/temp/temp/* level/temp folder by default/temp to ~/AudiobookExample:
/original
|
+-- /Book1
| |
| +-- book1.mp3 (Date: T-1min)
| +-- book1cover.jpg (Date: T-1min)
|
+-- book2.m4b (Date: T-2min)
+-- book3.m4b (Date: T-1Hr)
RUN SCRIPT (every 2min)
/temp
|
+-- book1.mp3
+-- book2.m4b
This will automatically copy untagged books from \Original to \temp, which we will set as the default folder Mp3tag opens to, so all you have to do is open Mp3tag and any books that need processing will be automatically loaded. Expand and follow one of the options below for your OS.
Dropit > Options > Various > Restore and Open BookCopy [v1].zip
Options window, go to the Monitoring tab and edit Z:\Original with your specific folder
Dropit icon in system trayAssociations
BookCopy profile is selected in the bottom drop-downAudiobookCopy and edit 4. Destination Folder with your specific \temp folder
Test it by Copying an audiofile to /Original. Make sure it's working before moving on
BookCopy.sh#!/bin/sh
find /full/path/to/Original/ -type f \( -iname \*.m4b -o -iname \*.mp3 -o -iname \*.mp4 -o -iname \*.m4a -o -iname \*.ogg \) -mmin -3 -exec cp -n "{}" /full/path/to/temp/ \;
crontab -e add the following line:*/2 * * * * /bin/sh /path/to/BookCopy.shLet's face it, Large Libraries Sink Ships. Everything runs quicker, and smoother, the lower the total number of files there are to scan. Let's say you have 5000 books. If they were mp3's then you would be looking at least 100,000 files, vs 5000 m4b's. M4b's can also hold chapter data, and generally the metadata works better with Plex over mp3's.
If you use both Linux and Windows, I have a Linux script that watches your /original folder for newly added mp3 audiobooks and converts them to M4b files with chapters separated by mp3 file. It's pretty slick.
Tools > Options > Directories\temp directory with your untagged books in Favorite directory:start from this directory
Mp3tag folder will be located in the zip archive. Unzip the archive.Plex-Audiobook-Guide folderMp3tag folder to C:\Users\your-username-here\Appdata\Roaming folder
Yes to merge/overwrite files%APPDATA%\Mp3tag\data\action\&1 Rename Relocate Extras Title.mta Update lines 3, 15, 22 with the path to your Plex \Audiobook folder%APPDATA%\Mp3tag\export\001 Generate.mte Update line 1 with your windows username C:\Users\your-username-here\...%APPDATA%\Mp3tag\export\desc.mte Update line 1 with the path to your Plex \Audiobook folder%APPDATA%\Mp3tag\export\reader.mte Update line 1 with the path to your Plex \Audiobook folderAudible.com#Search by Album.src file in your %appdata%\Roaming\Mp3tag\data\sources folderTag PanelTools > Options > Tag Panel
Alt-6)Format Value
_FILENAMEC:\path\to\Audiobooks\%albumartist%\%series%\%year% - %album%[ '['%series% %series-part%']']\%album% (%year%) ['['%series% %series-part%']' ]- pt$num(%track%,2)Export Cover to File
%album% (%year%) ['['%series% %series-part%']' ]- coverExport
Newdescdesc.mte file to only include the following two lines:$filename(desc.txt,utf-8)
%comment%
desc.mte
Export File Name: as:C:\path\to\Audiobooks\%albumartist%\%series%\%year% - %album%[ '['%series% %series-part%']']\desc.txtExport
Newreaderreader.mte file to only include the following two lines:$filename(reader.txt,utf-8)
%composer%
reader.mte
Export File Name: as:C:\path\to\Audiobooks\%albumartist%\%series%\%year% - %album%[ '['%series% %series-part%']']\reader.txtYour New Action should look like this:

\temp folderCtrl-k and set/fix the Track Numbering if applicable
&1 Rename Relocate Extras Title Action
Note: After selecting the Web Source manually for the first time we can then use the keyboard shortcut
ctrl+shift+ito call it moving forward. Likewise the action script can be called usingalt+a 1.
Follow the Instructions here
https://github.com/djdembeck/Audnexus.bundlehttp://<your IP address here>:33400/UAShttps://github.com/djdembeck/Audnexus.bundleSettings > Agents > Artist > Audiobooks Put Audnexus above Local Media Assets
Settings > Agents > Albums > Audiobooks Put Audnexus above Local Media Assets
MusicNow that the hard part of setting everything up is out of the way, this is what your typical workflow will look like moving forward:
Mp3tag can only work on one audiobook at a time.
Ctrl-a or, Select All tracks of an AudiobookCtrl-k Set/fix the track numbersCtrl-shift-i or Click the Web Source (quick) button

Alt-a 1 or Click the Action drop down menu
Filename - Tag button, Format String= %Title%, this will set the filename as the Chapter name.Chapter %track% which will give you a generic "Chapter 1, Chapter 2, ..."Ctrl-i - Use if there are no tags, or if the Album/Artist tags are incorrect or contain junk data that will effect the Audible search. This shortcut will bring up the search and allow you to put exactly what you want to search Audible with, try to keep it as simple as possible with only Album and Author, you can also put the ASIN number in this dialog box to search for a specific book on Audible.Ctrl-Shift-i Use if the Album and Artist tag look to be ok, this will bypass the search input dialog box and bring you straight to the results.Peter Clines, Ray Porter) in the Artist tag, which Plex uses as a "All Artists on this track" tag. Combining these tags for the Artist helps when searching Plex.I did a lot of digging into ID3 standards and this was the best way I could come up with to shoehorn Audiobook metadata into mp3 tags. It certainly isn't perfect, but it does work very nicely for Plex and other Audiobook apps. These can be changed to fit your particular style by editing the Audible.com#Search by Album.src file in Notepad++.
| mp3tag Tag | Audible.com Value |
|---|---|
TIT1 (CONTENTGROUP) | Series, Book # |
TALB (ALBUM) | Title |
TIT3 (SUBTITLE) | Subtitle |
TPE1 (ARTIST) | Author, Narrator |
TPE2 (ALBUMARTIST) | Author |
TCOM (COMPOSER) | Narrator |
TCON (GENRE) | Genre1/Genre2 |
TYER (YEAR) | Copyright Year* |
COMM (COMMENT) | Publisher's Summary (MP3) |
desc (DESCRIPTION) | Publisher's Summary (M4B) |
TSOA (ALBUMSORT) | If ALBUM only, then %Title% If ALBUM and SUBTITLE, then %Title% - %Subtitle% If Series, then %Series% %Series-part% - %Title% |
TDRL (RELEASETIME) | Audiobook Release Year |
TPUB (PUBLISHER) | Publisher |
TCOP (COPYRIGHT) | Copyright |
ASIN (ASIN) | Amazon Standard Identification Number |
POPM (RATING WMP) | Audible Rating |
WOAF (WWWAUDIOFILE) | Audible Album URL |
stik (ITUNESMEDIATYPE) | M4B Media type = Audiobook |
pgap (ITUNESGAPLESS) | M4B Gapless album = 1 |
shwm (SHOWMOVEMENT) | Show Movement (M4B), if Series then = 1 else blank |
MVNM (MOVEMENTNAME) | Series |
MVIN (MOVEMENT) | Series Book # |
TXXX (SERIES)** | Series |
TXXX (SERIES-PART)** | Series Book # |
TXXX (TMP_GENRE1)** | Genre 1 |
TXXX (TMP_GENRE2)** | Genre 2 |
CoverUrl | Album Cover Art |
TIT2 (TITLE) | Not Scraped, but used for Chapter Title If no chapter data available set to filename |
*I would prefer Original Pub. year, but Audible is really bad at providing this data
**Custom Tags used as placeholders, To view this tag Tools>Options>Tag Panel>New
Once you have mp3tag, Audiobook metadata agent, and Plex configured the work flow becomes pretty quick and painless, especially when using keyboard shortcuts.
Following this guide will also give you everything you need for a properly organized AudiobookShelf and Booksonic server. While Plex doesn't really care about your folder structure beyond /Audiobook/Author/Book/book.mp3, Booksonic exclusively uses folder structure for it's organization and it also looks for cover.jpg/desc.txt/reader.txt files (automatically created with the Action script) for additional metadata.
I currently use BookCamp ($12/yr), it is miles better than the Plex app and PlexAmp and works on both iOS and Android, but if you are on iOS then Prologue is the preferred option.
70 followers · starred Aug 2021
60 followers · starred Nov 2024
41 followers · starred Sep 2023
194 followers · starred Nov 2025
A walkthrough for optimal Audiobook experience using Plex
Shell
1,823
121 commits
updated May 20, 2024
This guide is specifically for optimal Audiobook experience using Plex, which in it's current state only quasi-supports audiobooks. This is my method for processing large libraries with bad/missing tags as quick as possible while getting the most metadata into Plex in the least amount of time. I'll be doing a deep dive into some advanced features of the tools available to us in order to get a nice, clean, and functional UI. This guide is meant to serve as a framework for fully utilizing metadata. Everything is customizable, and easy to change. While focused on Plex, if you follow the tagging and file processing steps you will also be compatible with Booksonic and AudiobookShelf servers.
Note: This guide targets and has been tested on Windows systems. Most of it also works on Linux/Mac but the Mp3tag Audible WebSource script only works on Windows. For workarounds see issue #2.
Show as much metadata as possible in Plex & Booksonic. Filter/browse/search by Narrator, Author, Genre, Year, Series, Rating, or Publisher. Show Album Covers and Summary's. Make the organizing and tagging as quick and painless as possible. We need to do these 4 general steps:


I plan on having a seprate walkthrough that will take you through backing up your Audible .aax files, and converting them to chapterized .M4B files. This guide will work for both mp3 and m4b files, but I prefer chapterized m4b's. Plex handles M4B metadata better than mp3's, some third party players like Prologue and BookCamp can handle the M4B chapter splits and names, and generally having less files helps plex run smoother.
For some more Software resources for Audible-centric audiobook management, including removing DRM from Audible files check out @rmcrackan's AudiobookHub
Now that you have your files, let get them in a format Plex can handle so we can stream our whole library with our firends and family.
I have 3 working directories for my Audiobooks:
~/Original Folder where I keep the un-altered original audio Files~/temp Folder where I copy the audio files that need to be processed, this is the folder Mp3tag will open by default~/Audiobooks Folder where I archive my properly tagged files in the proper folder structure, this is the folder I point Plex atAnywhere these folders are referenced, make sure to update to your specific paths
Best Practice: Tag your files before adding them to Plex.
Optional: This step is only required if you want to preserve the original unedited Audiobook files. This is required if you are seeding torrents, for example from librivox.org. That said, this is a recommended step for everyone, just incase something goes horribly wrong with Mp3tag or copying files.
This Script will:
/original folder/original since the last run/temp/temp/* level/temp folder by default/temp to ~/AudiobookExample:
/original
|
+-- /Book1
| |
| +-- book1.mp3 (Date: T-1min)
| +-- book1cover.jpg (Date: T-1min)
|
+-- book2.m4b (Date: T-2min)
+-- book3.m4b (Date: T-1Hr)
RUN SCRIPT (every 2min)
/temp
|
+-- book1.mp3
+-- book2.m4b
This will automatically copy untagged books from \Original to \temp, which we will set as the default folder Mp3tag opens to, so all you have to do is open Mp3tag and any books that need processing will be automatically loaded. Expand and follow one of the options below for your OS.
Dropit > Options > Various > Restore and Open BookCopy [v1].zip
Options window, go to the Monitoring tab and edit Z:\Original with your specific folder
Dropit icon in system trayAssociations
BookCopy profile is selected in the bottom drop-downAudiobookCopy and edit 4. Destination Folder with your specific \temp folder
Test it by Copying an audiofile to /Original. Make sure it's working before moving on
BookCopy.sh#!/bin/sh
find /full/path/to/Original/ -type f \( -iname \*.m4b -o -iname \*.mp3 -o -iname \*.mp4 -o -iname \*.m4a -o -iname \*.ogg \) -mmin -3 -exec cp -n "{}" /full/path/to/temp/ \;
crontab -e add the following line:*/2 * * * * /bin/sh /path/to/BookCopy.shLet's face it, Large Libraries Sink Ships. Everything runs quicker, and smoother, the lower the total number of files there are to scan. Let's say you have 5000 books. If they were mp3's then you would be looking at least 100,000 files, vs 5000 m4b's. M4b's can also hold chapter data, and generally the metadata works better with Plex over mp3's.
If you use both Linux and Windows, I have a Linux script that watches your /original folder for newly added mp3 audiobooks and converts them to M4b files with chapters separated by mp3 file. It's pretty slick.
Tools > Options > Directories\temp directory with your untagged books in Favorite directory:start from this directory
Mp3tag folder will be located in the zip archive. Unzip the archive.Plex-Audiobook-Guide folderMp3tag folder to C:\Users\your-username-here\Appdata\Roaming folder
Yes to merge/overwrite files%APPDATA%\Mp3tag\data\action\&1 Rename Relocate Extras Title.mta Update lines 3, 15, 22 with the path to your Plex \Audiobook folder%APPDATA%\Mp3tag\export\001 Generate.mte Update line 1 with your windows username C:\Users\your-username-here\...%APPDATA%\Mp3tag\export\desc.mte Update line 1 with the path to your Plex \Audiobook folder%APPDATA%\Mp3tag\export\reader.mte Update line 1 with the path to your Plex \Audiobook folderAudible.com#Search by Album.src file in your %appdata%\Roaming\Mp3tag\data\sources folderTag PanelTools > Options > Tag Panel
Alt-6)Format Value
_FILENAMEC:\path\to\Audiobooks\%albumartist%\%series%\%year% - %album%[ '['%series% %series-part%']']\%album% (%year%) ['['%series% %series-part%']' ]- pt$num(%track%,2)Export Cover to File
%album% (%year%) ['['%series% %series-part%']' ]- coverExport
Newdescdesc.mte file to only include the following two lines:$filename(desc.txt,utf-8)
%comment%
desc.mte
Export File Name: as:C:\path\to\Audiobooks\%albumartist%\%series%\%year% - %album%[ '['%series% %series-part%']']\desc.txtExport
Newreaderreader.mte file to only include the following two lines:$filename(reader.txt,utf-8)
%composer%
reader.mte
Export File Name: as:C:\path\to\Audiobooks\%albumartist%\%series%\%year% - %album%[ '['%series% %series-part%']']\reader.txtYour New Action should look like this:

\temp folderCtrl-k and set/fix the Track Numbering if applicable
&1 Rename Relocate Extras Title Action
Note: After selecting the Web Source manually for the first time we can then use the keyboard shortcut
ctrl+shift+ito call it moving forward. Likewise the action script can be called usingalt+a 1.
Follow the Instructions here
https://github.com/djdembeck/Audnexus.bundlehttp://<your IP address here>:33400/UAShttps://github.com/djdembeck/Audnexus.bundleSettings > Agents > Artist > Audiobooks Put Audnexus above Local Media Assets
Settings > Agents > Albums > Audiobooks Put Audnexus above Local Media Assets
MusicNow that the hard part of setting everything up is out of the way, this is what your typical workflow will look like moving forward:
Mp3tag can only work on one audiobook at a time.
Ctrl-a or, Select All tracks of an AudiobookCtrl-k Set/fix the track numbersCtrl-shift-i or Click the Web Source (quick) button

Alt-a 1 or Click the Action drop down menu
Filename - Tag button, Format String= %Title%, this will set the filename as the Chapter name.Chapter %track% which will give you a generic "Chapter 1, Chapter 2, ..."Ctrl-i - Use if there are no tags, or if the Album/Artist tags are incorrect or contain junk data that will effect the Audible search. This shortcut will bring up the search and allow you to put exactly what you want to search Audible with, try to keep it as simple as possible with only Album and Author, you can also put the ASIN number in this dialog box to search for a specific book on Audible.Ctrl-Shift-i Use if the Album and Artist tag look to be ok, this will bypass the search input dialog box and bring you straight to the results.Peter Clines, Ray Porter) in the Artist tag, which Plex uses as a "All Artists on this track" tag. Combining these tags for the Artist helps when searching Plex.I did a lot of digging into ID3 standards and this was the best way I could come up with to shoehorn Audiobook metadata into mp3 tags. It certainly isn't perfect, but it does work very nicely for Plex and other Audiobook apps. These can be changed to fit your particular style by editing the Audible.com#Search by Album.src file in Notepad++.
| mp3tag Tag | Audible.com Value |
|---|---|
TIT1 (CONTENTGROUP) | Series, Book # |
TALB (ALBUM) | Title |
TIT3 (SUBTITLE) | Subtitle |
TPE1 (ARTIST) | Author, Narrator |
TPE2 (ALBUMARTIST) | Author |
TCOM (COMPOSER) | Narrator |
TCON (GENRE) | Genre1/Genre2 |
TYER (YEAR) | Copyright Year* |
COMM (COMMENT) | Publisher's Summary (MP3) |
desc (DESCRIPTION) | Publisher's Summary (M4B) |
TSOA (ALBUMSORT) | If ALBUM only, then %Title% If ALBUM and SUBTITLE, then %Title% - %Subtitle% If Series, then %Series% %Series-part% - %Title% |
TDRL (RELEASETIME) | Audiobook Release Year |
TPUB (PUBLISHER) | Publisher |
TCOP (COPYRIGHT) | Copyright |
ASIN (ASIN) | Amazon Standard Identification Number |
POPM (RATING WMP) | Audible Rating |
WOAF (WWWAUDIOFILE) | Audible Album URL |
stik (ITUNESMEDIATYPE) | M4B Media type = Audiobook |
pgap (ITUNESGAPLESS) | M4B Gapless album = 1 |
shwm (SHOWMOVEMENT) | Show Movement (M4B), if Series then = 1 else blank |
MVNM (MOVEMENTNAME) | Series |
MVIN (MOVEMENT) | Series Book # |
TXXX (SERIES)** | Series |
TXXX (SERIES-PART)** | Series Book # |
TXXX (TMP_GENRE1)** | Genre 1 |
TXXX (TMP_GENRE2)** | Genre 2 |
CoverUrl | Album Cover Art |
TIT2 (TITLE) | Not Scraped, but used for Chapter Title If no chapter data available set to filename |
*I would prefer Original Pub. year, but Audible is really bad at providing this data
**Custom Tags used as placeholders, To view this tag Tools>Options>Tag Panel>New
Once you have mp3tag, Audiobook metadata agent, and Plex configured the work flow becomes pretty quick and painless, especially when using keyboard shortcuts.
Following this guide will also give you everything you need for a properly organized AudiobookShelf and Booksonic server. While Plex doesn't really care about your folder structure beyond /Audiobook/Author/Book/book.mp3, Booksonic exclusively uses folder structure for it's organization and it also looks for cover.jpg/desc.txt/reader.txt files (automatically created with the Action script) for additional metadata.
I currently use BookCamp ($12/yr), it is miles better than the Plex app and PlexAmp and works on both iOS and Android, but if you are on iOS then Prologue is the preferred option.
70 followers · starred Aug 2021
60 followers · starred Nov 2024
41 followers · starred Sep 2023
194 followers · starred Nov 2025