You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Since this is a bit of a grey area, I'm going to be slightly vague:
I love this software and use it every day. I have my own server and have uploaded my own content and have created accounts for family members to do the same with theirs. Without any commentary on what other's choose to do, I have a rule that each item uploaded to my server must have been purchased by the user. As a result, we have a nice little "Co-Op" going for sharing.
With that in mind, I am curious about what others might think about adding a "lending" feature to Audiobookshelf. If enabled on the server, it would allow a user (or users) to "borrow" (a la the library) items for a period of time via request (or perhaps it could be set to auto-approve?). During this checked-out period, other users would be restricted from playing said item. Once the period ends, the item is available to borrow again.
The goal isn't really to stop users from "stealing" items (since they could simply make a copy of the file when they have it checked out), but to try to move closer to the line on my server.
Without looking at the code (I will later this week), it seems like the following tasks would be needed to accomplish this:
An uploaded_by field on items
User-specific folders for uploaded items
The ability to set the uploaded_by field (one-time) for items missing it
A function to move the existing items to their new user-specific folder
borrower_id, borrowed_until field on the item (if doing single-user borrowing) OR
item_id, expires_at and user_id fields on a new borrowers table (if doing multi-user borrowing)
A tab in the item Edit screen visible to admins + the uploader showing:
Current lends (expires_at !=== null)
Borrow requests (expires_at === null)
Options to approve or reject borrow requests + an option to revoke/extend/shorten an existing
lend
An option to auto-approve requests
An option to set the max_borrowers
A button on each item (where uploaded_by.id !== user.id) allowing the user to request to borrow it
An option on each borrowed item to either turn in (same as revoke lend) or request an extension of the borrow time
Updates to the APIs to respect the new fields, give appropriate errors (403)
Additional things to consider:
Should the user's folder be deleted if the account is? With the aim of this request, I vote yes.
How do the mobile apps handle this? I presume most store the synced items in an unobsfucated way. Should they obsfucate borrowed items?
Are the mobile apps responsible for removing expired items? How will they know?
How should the mobile apps handle the borrow feature?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Since this is a bit of a grey area, I'm going to be slightly vague:
I love this software and use it every day. I have my own server and have uploaded my own content and have created accounts for family members to do the same with theirs. Without any commentary on what other's choose to do, I have a rule that each item uploaded to my server must have been purchased by the user. As a result, we have a nice little "Co-Op" going for sharing.
With that in mind, I am curious about what others might think about adding a "lending" feature to Audiobookshelf. If enabled on the server, it would allow a user (or users) to "borrow" (a la the library) items for a period of time via request (or perhaps it could be set to auto-approve?). During this checked-out period, other users would be restricted from playing said item. Once the period ends, the item is available to borrow again.
The goal isn't really to stop users from "stealing" items (since they could simply make a copy of the file when they have it checked out), but to try to move closer to the line on my server.
Without looking at the code (I will later this week), it seems like the following tasks would be needed to accomplish this:
lend
Additional things to consider:
Beta Was this translation helpful? Give feedback.
All reactions