[Enhancement]: Add/upload books from remote folders #1439

Closed
opened 2026-04-24 23:45:29 +02:00 by adam · 4 comments
Owner

Originally created by @iconoclasthero on GitHub (Oct 4, 2023).

Describe the feature/enhancement

In the upload dialog screen, you can select local files to upload to the server, however you cannot specify remote paths for the server to query. In the case I am running into at the moment, the server has not/will not populate a newly added book into the library. As it is already in a library path [and I've never had it locally], I would like to tell the server to check that folder for the book rather than having it rescan the entire library of 2200 titles which wastes resources, etc. On the face of it, it seems relatively simple to implement since the add folder to library functions on remote folders.

Originally created by @iconoclasthero on GitHub (Oct 4, 2023). ### Describe the feature/enhancement In the upload dialog screen, you can select _local_ files to upload to the server, however you cannot specify remote paths for the server to query. In the case I am running into at the moment, the server has not/will not populate a newly added book into the library. As it is already in a library path [and I've never had it locally], I would like to tell the server to check that folder for the book rather than having it rescan the entire library of 2200 titles which wastes resources, etc. On the face of it, it seems relatively simple to implement since the add folder to library functions on remote folders.
adam added the enhancement label 2026-04-24 23:45:29 +02:00
adam closed this issue 2026-04-24 23:45:29 +02:00
Author
Owner

@iconoclasthero commented on GitHub (Oct 4, 2023):

Also, this runs into the previous suggestion about having some way to close the "scanning library" notification box, but this is really about not wanting to have abs scan a large portion of my hard drive for one book that isn't being recognized.

@iconoclasthero commented on GitHub (Oct 4, 2023): Also, this runs into the previous suggestion about having some way to close the "scanning library" notification box, but this is really about not wanting to have abs scan a large portion of my hard drive for one book that isn't being recognized.
Author
Owner

@nichwall commented on GitHub (Oct 4, 2023):

How are you currently mounting remote folders? It sounds like you have a local mount of the remote directory/file since it's already in the library path. Can you provide a diagram or something to better illustrate where things are coming from and to?

Or is it that when you upload a book using the web interface, it doesn't show up immediately in the web interface? I've noticed that and just wait a bit/refresh the page/change pages and then the new book shows up.

@nichwall commented on GitHub (Oct 4, 2023): How are you currently mounting remote folders? It sounds like you have a local mount of the remote directory/file since it's already in the library path. Can you provide a diagram or something to better illustrate where things are coming from and to? Or is it that when you upload a book using the web interface, it doesn't show up immediately in the web interface? I've noticed that and just wait a bit/refresh the page/change pages and then the new book shows up.
Author
Owner

@iconoclasthero commented on GitHub (Oct 7, 2023):

Ok, let's say we have 4 entities/devices: There's the Server (S), a local client (LC) which is accessing (S) on the same machine, a remote client (RC) that is accessing the (S) from e.g., a laptop, and a mobile client (MC) that is also accessing (S) from another machine (e.g., a phone). In the event that a folder containing a book is in a path _local to _(S)__, the proposed enhancement provides a way to add a book to a library and the filesystem directory which underlies it but is not yet contained therein.

As an analogy, consider (RC) browsing an existing book on (S): if you go to the cover tab, there's an option to upload a cover from a path local to (RC) to a path on (S) (i.e., local to (S)). However, there's also the option to upload a url and this url can be a remote http:// path or it could be a path local to (S). If you use a local file path for the URL, you're adding a file (i.e., a cover image file) to ABS (both the database and the file system) that is from a path local to (S) but not necessarily previously in ABS/it's file system.

So this enhancement proposes a use case of e.g., the following situation: An audiobook file/folder (F/F) is on a path local to (S). From the upload book dialog, allow for ABS to access paths local to itself, i.e., (S) to be added to the database and moved to an appropriate file system location.

@iconoclasthero commented on GitHub (Oct 7, 2023): Ok, let's say we have 4 entities/devices: There's the Server (S), a local client (LC) which is accessing (S) on the same machine, a remote client (RC) that is accessing the (S) from e.g., a laptop, and a mobile client (MC) that is also accessing (S) from another machine (e.g., a phone). In the event that a folder containing a book is in a path _local to _(S)__, the proposed enhancement provides a way to add a book to a library and the filesystem directory which underlies it but is not yet contained therein. As an analogy, consider (RC) browsing an existing book on (S): if you go to the cover tab, there's an option to upload a cover from a path _local to (RC)_ to a path _on (S)_ (i.e., local to (S)). However, there's also the option to upload a url and this url can be a remote http:// path or it could be a path local to (S). If you use a local file path for the URL, you're adding a file (i.e., a cover image file) to ABS (both the database and the file system) that is from a path local to (S) but not necessarily previously in ABS/it's file system. So this enhancement proposes a use case of e.g., the following situation: An audiobook file/folder (F/F) is on a path local to (S). From the upload book dialog, allow for ABS to access paths local to itself, i.e., (S) to be added to the database and moved to an appropriate file system location.
Author
Owner

@advplyr commented on GitHub (Oct 7, 2023):

The cover tab example you mention will be getting patched soon to not allow changing the path. The only options will be uploading or entering a URI to download from.

There are a few reasons for this but one of them is that allowing arbitrary file paths can be a security concern.

Another reason is that the scanner currently doesn't support covers outside of /metadata/items and the book folder so it doesn't make sense to support arbitrary local file paths.

In your case I think you would be better off using a script that copies your media into the correct library folder. It has been brought up before to have Abs link a separate folder that it copies media from into the main library but right now this is outside the scope of the project.

@advplyr commented on GitHub (Oct 7, 2023): The cover tab example you mention will be getting patched soon to not allow changing the path. The only options will be uploading or entering a URI to download from. There are a few reasons for this but one of them is that allowing arbitrary file paths can be a security concern. Another reason is that the scanner currently doesn't support covers outside of `/metadata/items` and the book folder so it doesn't make sense to support arbitrary local file paths. In your case I think you would be better off using a script that copies your media into the correct library folder. It has been brought up before to have Abs link a separate folder that it copies media from into the main library but right now this is outside the scope of the project.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf#1439