[Enhancement] Ability to move files based on metadata #177

Open
opened 2026-04-24 23:00:10 +02:00 by adam · 22 comments
Owner

Originally created by @SwedishGojira on GitHub (Jan 11, 2022).

I have users uploading alot of files with incorrect or misspelled author names and I have to move and correct the file structure manually.
A function to move files to folder named after "author/title (year)" based on the metadata would be really great.

Originally created by @SwedishGojira on GitHub (Jan 11, 2022). I have users uploading alot of files with incorrect or misspelled author names and I have to move and correct the file structure manually. A function to move files to folder named after "author/title (year)" based on the metadata would be really great.
adam added the enhancementpossible plugin labels 2026-04-24 23:00:10 +02:00
Author
Owner

@JKamsker commented on GitHub (Jan 11, 2022):

The upload feature could be improved by auto-suggesting author names, then your users could primarily use that feature.

@JKamsker commented on GitHub (Jan 11, 2022): The upload feature could be improved by auto-suggesting author names, then your users could primarily use that feature.
Author
Owner

@tomatosoupcan commented on GitHub (Jan 22, 2022):

Seconding this, just in general the ability to recover from directory structure changes more easily would be appreciated. Spell something wrong and suddenly you're in for a world of hurt down the line.

@tomatosoupcan commented on GitHub (Jan 22, 2022): Seconding this, just in general the ability to recover from directory structure changes more easily would be appreciated. Spell something wrong and suddenly you're in for a world of hurt down the line.
Author
Owner

@baloodusudouest commented on GitHub (Mar 14, 2022):

Agree it will be nice!

@baloodusudouest commented on GitHub (Mar 14, 2022): Agree it will be nice!
Author
Owner

@HStep20 commented on GitHub (Apr 24, 2022):

Definitely Agree. Small thing, but big QoL change.

Including Series on the path as well would be ideal. I've scraped all of my books, and had quite a few with series name disparity because I named the series folder as 'Stormlight Series, Mistborn Series, etc.' (for easier navigation), instead of just 'Stormlight, Mistborn, etc.'. Now my series names in the apps book metadata are different than the series name, meaning the next time a book comes out, dropping it directly into the 'old name' series folder will cause some frontend issues until It's matched.

Reorganizing by existing metadata like 'library_root_folder/Author/Series/Series# - Title/book_files' would be super useful. I can see running into issues with things like multiple authors, or multiple series as it stands.

@HStep20 commented on GitHub (Apr 24, 2022): Definitely Agree. Small thing, but big QoL change. Including Series on the path as well would be ideal. I've scraped all of my books, and had quite a few with series name disparity because I named the series folder as 'Stormlight Series, Mistborn Series, etc.' (for easier navigation), instead of just 'Stormlight, Mistborn, etc.'. Now my series names in the apps book metadata are different than the series name, meaning the next time a book comes out, dropping it directly into the 'old name' series folder will cause some frontend issues until It's matched. Reorganizing by existing metadata like _'library_root_folder/Author/Series/Series# - Title/book_files'_ would be super useful. I can see running into issues with things like multiple authors, or multiple series as it stands.
Author
Owner

@jeff47 commented on GitHub (May 25, 2023):

Ditto -- allow organizing of folders and renaming similar to what exists in *arr projects. I'd love to be able to have my files named in a way that makes tagging easier if something happens to my db. Eg,
{Author}/{Title} {ASIN}/{Author} - {TItle} - {Narrator} - {ASIN}.m4b
... or something!

@jeff47 commented on GitHub (May 25, 2023): Ditto -- allow organizing of folders and renaming similar to what exists in *arr projects. I'd love to be able to have my files named in a way that makes tagging easier if something happens to my db. Eg, `{Author}/{Title} {ASIN}/{Author} - {TItle} - {Narrator} - {ASIN}.m4b` ... or something!
Author
Owner

@feerlessleadr commented on GitHub (Jun 11, 2023):

Feels like the last 'big ticket' item for me that's missing and would allow me to ditch calibre completely.

@feerlessleadr commented on GitHub (Jun 11, 2023): Feels like the last 'big ticket' item for me that's missing and would allow me to ditch calibre completely.
Author
Owner

@Badger1919 commented on GitHub (Aug 15, 2023):

Ditto -- allow organizing of folders and renaming similar to what exists in *arr projects. I'd love to be able to have my files named in a way that makes tagging easier if something happens to my db. Eg, {Author}/{Title} {ASIN}/{Author} - {TItle} - {Narrator} - {ASIN}.m4b ... or something!

I'd particularly like to see this feature for podcasts. Because podcast episodes are often named without any reference to the episode number, it's very difficult to use the files directly without going through audiobookshelf. Being able to rename the files on download (AND retroactively) so just from the filename you can tell the podcast and episode order would be a huge future in my mind.

@Badger1919 commented on GitHub (Aug 15, 2023): > Ditto -- allow organizing of folders and renaming similar to what exists in *arr projects. I'd love to be able to have my files named in a way that makes tagging easier if something happens to my db. Eg, `{Author}/{Title} {ASIN}/{Author} - {TItle} - {Narrator} - {ASIN}.m4b` ... or something! I'd particularly like to see this feature for podcasts. Because podcast episodes are often named without any reference to the episode number, it's very difficult to use the files directly without going through audiobookshelf. Being able to rename the files on download (AND retroactively) so just from the filename you can tell the podcast and episode order would be a huge future in my mind.
Author
Owner

@austinsr1 commented on GitHub (Nov 13, 2023):

Agreed!

A feature similar to Sonarr/Radarr for renaming and organizing directory structure would be amazing.
In Sonarr/Radarr, when you are in a view for a show, you have an option to rename the files and directory structure to match what they are expecting (c:\tv\Series Name\Season Number\Episodes).

An option similar to that would be a great addition to Audiobookshelf. I have been cleaning up the metadata and series names on my collection, but the ability to move it all into a proper directory structure afterward would be very useful. (c:\audiobooks\Author Name\Series Name\Book Name\Book.extension)

Thanks!

@austinsr1 commented on GitHub (Nov 13, 2023): Agreed! A feature similar to Sonarr/Radarr for renaming and organizing directory structure would be amazing. In Sonarr/Radarr, when you are in a view for a show, you have an option to rename the files and directory structure to match what they are expecting (c:\tv\Series Name\Season Number\Episodes). An option similar to that would be a great addition to Audiobookshelf. I have been cleaning up the metadata and series names on my collection, but the ability to move it all into a proper directory structure afterward would be very useful. (c:\audiobooks\Author Name\Series Name\Book Name\Book.extension) Thanks!
Author
Owner

@allnamesaregoneallready commented on GitHub (Dec 9, 2023):

oh yeah a holistic library management would be soooooo nice!!!

@allnamesaregoneallready commented on GitHub (Dec 9, 2023): oh yeah a holistic library management would be soooooo nice!!!
Author
Owner

@portrman commented on GitHub (Dec 15, 2023):

This has mostly already been implemented in pull request #1521

@portrman commented on GitHub (Dec 15, 2023): This has mostly already been implemented in pull request #1521
Author
Owner

@Tanarion40 commented on GitHub (Jul 19, 2024):

Hello.
It would be great to have this functionality.

@Tanarion40 commented on GitHub (Jul 19, 2024): Hello. It would be great to have this functionality.
Author
Owner

@clockwinder commented on GitHub (Nov 11, 2024):

I'd particularly like to see this feature for podcasts. Because podcast episodes are often named without any reference to the episode number, it's very difficult to use the files directly without going through audiobookshelf. Being able to rename the files on download (AND retroactively) so just from the filename you can tell the podcast and episode order would be a huge future in my mind.

@Badger1919 This is absolutely my usecase! I'm loving ABS as a way to archive podcasts and insure I have access to them in the future. But what if I loose access to my ABS instance or move to another program, unordered files and a centralized database file no longer do me any good. I would love to see the ability to export chunks of the database (into something human readable), or prepend select info to the file name.

@clockwinder commented on GitHub (Nov 11, 2024): > I'd particularly like to see this feature for podcasts. Because podcast episodes are often named without any reference to the episode number, it's very difficult to use the files directly without going through audiobookshelf. Being able to rename the files on download (AND retroactively) so just from the filename you can tell the podcast and episode order would be a huge future in my mind. @Badger1919 This is absolutely my usecase! I'm loving ABS as a way to archive podcasts and insure I have access to them in the future. But what if I loose access to my ABS instance or move to another program, unordered files and a centralized database file no longer do me any good. I would love to see the ability to export chunks of the database (into something human readable), or prepend select info to the file name.
Author
Owner

@austinsr1 commented on GitHub (Nov 11, 2024):

I'd particularly like to see this feature for podcasts. Because podcast episodes are often named without any reference to the episode number, it's very difficult to use the files directly without going through audiobookshelf. Being able to rename the files on download (AND retroactively) so just from the filename you can tell the podcast and episode order would be a huge future in my mind.

@Badger1919 This is absolutely my usecase! I'm loving ABS as a way to archive podcasts and insure I have access to them in the future. But what if I loose access to my ABS instance or move to another program, unordered files and a centralized database file no longer do me any good. I would love to see the ability to export chunks of the database (into something human readable), or prepend select info to the file name.

@clockwinder
You can enable "Store metadata with item" in the settings. That creates a file with the metadata from the database in it, along side your media. This is a utility I created to help organize the directory structure based on that metadata: https://github.com/austinsr1/ab_mover

@austinsr1 commented on GitHub (Nov 11, 2024): > > I'd particularly like to see this feature for podcasts. Because podcast episodes are often named without any reference to the episode number, it's very difficult to use the files directly without going through audiobookshelf. Being able to rename the files on download (AND retroactively) so just from the filename you can tell the podcast and episode order would be a huge future in my mind. > > @Badger1919 This is absolutely my usecase! I'm loving ABS as a way to archive podcasts and insure I have access to them in the future. But what if I loose access to my ABS instance or move to another program, unordered files and a centralized database file no longer do me any good. I would love to see the ability to export chunks of the database (into something human readable), or prepend select info to the file name. @clockwinder You can enable "Store metadata with item" in the settings. That creates a file with the metadata from the database in it, along side your media. This is a utility I created to help organize the directory structure based on that metadata: https://github.com/austinsr1/ab_mover
Author
Owner

@feerlessleadr commented on GitHub (Nov 11, 2024):

@clockwinder You can enable "Store metadata with item" in the settings. That creates a file with the metadata from the database in it, along side your media. This is a utility I created to help organize the directory structure based on that metadata: https://github.com/austinsr1/ab_mover

This is awesome, thanks.

Will I lose book positions and listen status for moves to the underlying files?

@feerlessleadr commented on GitHub (Nov 11, 2024): > > > @clockwinder You can enable "Store metadata with item" in the settings. That creates a file with the metadata from the database in it, along side your media. This is a utility I created to help organize the directory structure based on that metadata: https://github.com/austinsr1/ab_mover This is awesome, thanks. Will I lose book positions and listen status for moves to the underlying files?
Author
Owner

@clockwinder commented on GitHub (Nov 11, 2024):

@austinsr1 I do have that enabled, but I only see that it saves the series metadata not the per-episode metadata. Unless I'm missing something.

@clockwinder commented on GitHub (Nov 11, 2024): @austinsr1 I do have that enabled, but I only see that it saves the series metadata not the per-episode metadata. Unless I'm missing something.
Author
Owner

@austinsr1 commented on GitHub (Nov 11, 2024):

Things that were listed to were still marked as read. I haven't moved something I was listening to.

@austinsr1 commented on GitHub (Nov 11, 2024): Things that were listed to were still marked as read. I haven't moved something I was listening to.
Author
Owner

@feerlessleadr commented on GitHub (Nov 11, 2024):

Things that were listed to were still marked as read. I haven't moved something I was listening to.

I'll do some testing and will report back

@feerlessleadr commented on GitHub (Nov 11, 2024): > Things that were listed to were still marked as read. I haven't moved something I was listening to. I'll do some testing and will report back
Author
Owner

@austinsr1 commented on GitHub (Nov 11, 2024):

@austinsr1 I do have that enabled, but I only see that it saves the series metadata not the per-episode metadata. Unless I'm missing something.
@clockwinder
I don't listen to podcasts, so I assumed they were stored the same way as the other media, in " metadata.json". If the info isn't in there, it may handle podcasts differently internally.

@austinsr1 commented on GitHub (Nov 11, 2024): > @austinsr1 I do have that enabled, but I only see that it saves the series metadata not the per-episode metadata. Unless I'm missing something. @clockwinder I don't listen to podcasts, so I assumed they were stored the same way as the other media, in " metadata.json". If the info isn't in there, it may handle podcasts differently internally.
Author
Owner

@jeeftor commented on GitHub (Dec 19, 2024):

I would love this feature... - I've been exposing my library to either MusicBrainz Picard and/or Readarr and using it to rewrite the lib - then scan it with audiobookshelf ... quite intensive. Considering the logic already seems to be there for the import I would think its not so hard to add.

@jeeftor commented on GitHub (Dec 19, 2024): I would love this feature... - I've been exposing my library to either MusicBrainz Picard and/or Readarr and using it to rewrite the lib - then scan it with audiobookshelf ... quite intensive. Considering the logic already seems to be there for the import I would think its not so hard to add.
Author
Owner

@tmsholy commented on GitHub (Apr 17, 2025):

I've just changed my naming scheme in Readarr, and I've found out the hard way renaming the files causes audiobooks to go missing, and get re-added as new. It would be nice to be able to update the location and help ABS find the file again. Now I need to re-match all my audiobooks and re-do all of my manual changes.

@tmsholy commented on GitHub (Apr 17, 2025): I've just changed my naming scheme in Readarr, and I've found out the hard way renaming the files causes audiobooks to go missing, and get re-added as new. It would be nice to be able to update the location and help ABS find the file again. Now I need to re-match all my audiobooks and re-do all of my manual changes.
Author
Owner

@jeeftor commented on GitHub (Apr 22, 2025):

This might help

https://github.com/jeeftor/audiobook-organizer

@jeeftor commented on GitHub (Apr 22, 2025): This might help https://github.com/jeeftor/audiobook-organizer
Author
Owner

@Binocularbath commented on GitHub (Dec 12, 2025):

would love this feature

@Binocularbath commented on GitHub (Dec 12, 2025): would love this feature
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf#177