Realized my family was spending more than $200/mo on streaming and other media sources. Been a while, but I’m sailing the high seas again. Ethically, I agree with “Piracy.” Fuck Disney with a cactus. Functionally, it’s a service problem for me.
Currently running Readarr, Calibre, Sabnzbd, Qbittorrent. Have Drunkenslug, NZBgeek, 1337x, TPB as indexers.
My results aren’t great for books. Lot of titles aren’t automatically found. Readarr and Calibre integration is janky. My indexers don’t have a lot of titles.
I can manually search on Anna’s Archive or Libgen and find what I want. However, for the rest of my family to really use it, it needs to be easy like the rest of my setup.
Lazylibrarian?
Can someone please recommend a toolchain for automated book grabbing?
I don’t mind spending a few bucks a month/year for quality and ease of use.
Automated no. Maybe partially, but fairly easy to get up and running with the added bonus of being as close to “legal” as it gets. Read until the end for a more subversive option.
Libby. I cannot recommend a public library card and Libby enough. For avid readers you can probably just stop there. The loan times vary location to location, but if you are someone that reads a good amount each day you can probably get through whatever book before you have to return it.
Here’s the secret sauce tho. You can specify you’d like to read a book from Libby in a different app. This spits out an Adobe Digital Editions DRM locked book. Once opened in ADE the file is now a “normal” .epup but still time locked with DRM. Enter calibre and it’s plug-in support. My current setup is using an older version and a no longer maintained plugin, but that’s because I’m lazy and haven’t updated things. There is now a new maintainer of the project. noDRM’s DeDRM tool seems like the current standard and includes all necessary info I believe. Once you have the plug-in installed it’s simply a matter of dropping the .epub from ADE into your calibre library and then you have it forever.
As far as making this easy for you family, I would say direct them to Libby for general use, and then if they longer to read something resort to more drastic measures.
Kind of a grey area as I simply think of it as “extending” my loan while still being polite to the people waiting for the book behind me. I mean it’s not actually a grey area, like it’s not technically allowed, but I feel it’s very much in the spirit of public libraries and free access.
As far as automation goes I’m fairly confident I could write a script to get the download from Libby as I can post all the necessary requests from a command line if I want. The problem comes up with Adobe Digital Editions. This does not have any sort of command line interface as far as I know, and unlike calibre a file must be specifically imported through the GUI rather than simply dropped into a folder.
The true cheat code is z-lib, which when set up fully can be interfaced with a telegram bot that can be customized and automated all you want. In my opinion once the telegram bot is set up it’s easy enough for anyone. You put a book you’re looking for into the message box, the bot sends you search results back, tap the file you want and it sends it to you right in the chat. I use it all the time when book recommendations come up in conversation. I’ll search for it on my phone, tap the right one and have the .epub waiting for me on my ereader.
I’ve also got a system for ripping audiobooks from Libby, but it’s way more complicated and marginally more capable of being automated.
Cheers for the write up, lots of good info here
Woahh, what? I’d love to learn how you do this. VLC? Where did you learn how to do this? Is there a write-up that you might point me to? Idc if it is complicated and technical. I’d love to learn how to do this.
Edit: Nevermind. I figured it out. Thanks for letting me know this was possible. I had no idea. Audiobooks are hard to find so this is fantastic. Easy to bind those mp3’s into a single m4b with chapter markers. I’ll do that from now on. This is great!
Woah, what system did you find? Sounds way simpler than what I’ve figured out. I’ve read posts about capturing traffic from the network tab of the web inspector but I got really mixed results. That does work, but it was enough of a pain that I explored other options.
The system I eventually found was on Android Libby store files from audiobook unencrypted. They try to hide them by splitting books up into lots of files with random names and distributing them across random folders within its data folder. It even includes some junk folders and files to try and throw you off. None of these files have files types/extensions and Libby tacks on .mp3 when it comes time to play them.
How this can be exploited: I have an android device but this can also be done with Windows Subsystem for Android, or really any other android emulator. I have targeted the parent folder to all that with Syncthing and set it as a one way sync. This way whenever audiobook files are added they are copied to one of my other devices and because it’s one way sync when my loan expires those files disappear from the Android instance, but persist on the device I’ve copied them to. Next step is filtering out all the junk files. This is shockingly easy as I just click into the windows file browser search bar and hit enter. This serves to show a list of any file of any name of any type in all sub folders. Then I just sort the results by size. Libby doesn’t bother to make the junk files the same size as the “mp3s” (remember they don’t say .mp3 yet) so it’s easy to just truncate the list when the files stop being in the kilobytes and start being megabytes.
What’s left is a list of file that want to be .mp3. I use a command line based batch renaming tool to add all the endings, and then begins the painful task of listening to each file to find where in the book it’s supposed to go. The splits do not line up with chapters, so it’s sometimes handy to have an ebook copy to search for phrases. I put them in order then load them all into audacity, merge and then use the detect silence tool set to between 2 and 4 seconds to try and detect the chapter breaks. I’ll manually clean up any misplaced breaks, export as individual files and then finally use one of the many audiobook binding tools out there to bundle it all back together. Though I mostly do that when I’m sharing the book with others. My préférée audiobook listening platform tales individual files very nicely, so I can save a step if it’s only for myself.
Your system is really creative. Especially the 1-way syncthing with disappearing files on the host vm after the audiobook gets returned. That’s pretty cool tbh.
So I used Firefox and logged into mylibrary. overdrive .com and then checkout/play an audiobook in the browser. While it’s playing went to
More Tools
→Web developer tools
→Network
and filter byMedia
. The mp3s pop up there. Copy/paste the super long url of the mp3 media file into a new browser window and download. When you’ve finished downloading it, play it locally on your machine and your audio player will tell you how long the file lasts. Then click to the corresponding chapter to download the next mp3 file in the grouping. So for example, if the first mp3 lasts 1hr5 min, look at the audiobook and you’ll see that Chapter 5 ends at 1hr5min. So you click on Chapter 6 in your browser to begin downloading the next mp3 file. Repeat as needed until you’ve downloaded all the files in the book. I usually rename the files File 1, File 2 and so on so I know the order. The book I did yesterday had a total of 3 mp3 files.Then you can put those mp3s into an M4B container with the proper chapter breaks (chapter breaks are conveniently timestamped in the audiobook web UI). You can screenshot and refer back to it later. If you want, put in some cover art into that container too :)
Yeah okay. That is the system I tried first. Glad it worked for you so cleanly. My network tab was inconsistent of grabbing stuff for some reason, but Libby also doesn’t seem to work through certain VPNs so seems like it’s all somewhat sensitive. Maybe I’ll give it a shot again!