Stream your DRM-free audiobooks to devices yourselves, without the cloud's chains.
See full article...
See full article...
Wanting DRM-free audiobooks isn't about not paying the writers. It's about being able to listen to what I paid for on any device I want to (e.g. in my car), and still being able to listen to them after Amazon kills Audible.I hate the concept of DRM, but honestly it's just not an issue for me. Writers of books, just like developers of apps, should get paid for every single copy.
It always amazes me that so many folks (I'm a public library employee) have not only the attention span but the multi-tasking brain required to injest audiobooks. I barely have the time to read myself, let alone listen to someone do it at a snail's pace.
Maybe after I retire, I guess?
So I've gotten further, with the help of chatGPTSo, quick networking 101 basics...
Routing gets involved any time different networks need to talk to each other. The most common one that people see at a home environment is when their local network needs to talk to the internet. But basically, if you are trying to talk across different networks, you need routing involved. Now, most home networks are at 192.168.0.X or 192.168.1.X, the config I sent you for wireguard used 192.168.100.X. Those are all different networks. So for the .100.X to be able to talk to .1.X, there needs to be a defined path for those 2 networks to talk to each other, which is where the routing comes in. Now, routing needs to happen at a place that both of those networks can access. Since the .100.X network only sees the computer that wireguard is installed on, and your LAN network also sees that computer, that is where the routing needs to happen. It doesn't happen at your router as the Wireguard network can't actually reach your router. This means that you need to configure routing to happen between those 2 networks on your Wireguard computer. Without routing, all Wireguard will see is the computers that are a part of the tunnel, using their Wireguard IP addresses.
The only time your router would get involved is if you were to run one that has Wireguard built into it. At which point configuration becomes a bit easier as the router is already configured to route, so it is just keeping track of one more network.
Adding a DNS entry only means that your phone will switch from the default DNS provider (generally either whatever your cell provider gives you, or something like Googles 8.8.8.8) to whatever you specify. You generally only need to specify the DNS for Wireguard if you want that to be different for the tunnel. For example, I run my own DNS in my house, it has records for my internal services. So if I want to continue to reference the internal servers by name, I have to specify the DNS for my house install so I can continue to use those over Wireguard, since those aren't available on the public DNS records anywhere.
New-NetNat -Name "WireGuardNAT" -InternalIPInterfaceAddressPrefix 10.254.0.0/24
NAT is certainly a way to do that. Not the way I'd have done it. NAT when you don't have to sucks. The alternative would require you to configure a route on your router to send traffic destined for your wg subnet to your host running wg so it can then route it properly. This is another reason why running your VPNs on your router makes a lot of sense, though not something I'd recommend with consumer class gear.So I've gotten further, with the help of chatGPT
I don't know if all of these steps are necessary or potentially harmful.. I don't exactly know what these things do.
In case anyone's following along.. let me try to document this:
1. Set "IPEnableRouter" to 1 in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters in regedit.
2. Turn on Routing and Remote Access in services.msc.
3. Add my router's IP address as the DNS in both the server and client configuration for wireguard.
4. Turn on NAT by running the following command in an elevated powershell terminal:
Code:New-NetNat -Name "WireGuardNAT" -InternalIPInterfaceAddressPrefix 10.254.0.0/24
End result is 192.168.1.X addresses work over VPN, as do internet addresses. But local hostnames (mycomputer.local, etc.) still do not. Verified the internet is going over VPN by checking my IP address and doing a DNS leak test.. as well as watching a tv program my cable provider (yeah, I know..) restricts to "in home" wifi (dipshits).
Only suggestions chatgpt gave for local hostnames is to either flash my router with a CFW (since it doesn't appear like it supports "DNS relay") or run my own DNS server. Both of those options are a bridge too far, for now. What I have is "good enough" to not want to go down that rabbit hole.
Of course, all of this is overkill to accomplish the original goal of being able access my audiobooks outside my home network.. but I was willing to put in the effort because, as I've alluded to, I have other uses for VPNing into my home network.. (especially since teamviewer has so completely shit the bed as to be absolutely unusable from my laptop.. maybe I shouldn't have told them off when filling out the "commercial use" bullshit for the 759th time because they're fucking stupid.. but that's going off on a tangent..)
.local domains will not cross the router barrier, so those will never work. But if you have a static IP on the APB computer, you should be able to use that in the remote book app, and it should connect both locally and over vpn.So I've gotten further, with the help of chatGPT
I don't know if all of these steps are necessary or potentially harmful.. I don't exactly know what these things do.
In case anyone's following along.. let me try to document this:
1. Set "IPEnableRouter" to 1 in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters in regedit.
2. Turn on Routing and Remote Access in services.msc.
3. Add my router's IP address as the DNS in both the server and client configuration for wireguard.
4. Turn on NAT by running the following command in an elevated powershell terminal:
Code:New-NetNat -Name "WireGuardNAT" -InternalIPInterfaceAddressPrefix 10.254.0.0/24
End result is 192.168.1.X addresses work over VPN, as do internet addresses. But local hostnames (mycomputer.local, etc.) still do not. Verified the internet is going over VPN by checking my IP address and doing a DNS leak test.. as well as watching a tv program my cable provider (yeah, I know..) restricts to "in home" wifi (dipshits).
Only suggestions chatgpt gave for local hostnames is to either flash my router with a CFW (since it doesn't appear like it supports "DNS relay") or run my own DNS server. Both of those options are a bridge too far, for now. What I have is "good enough" to not want to go down that rabbit hole.
Of course, all of this is overkill to accomplish the original goal of being able access my audiobooks outside my home network.. but I was willing to put in the effort because, as I've alluded to, I have other uses for VPNing into my home network.. (especially since teamviewer has so completely shit the bed as to be absolutely unusable from my laptop.. maybe I shouldn't have told them off when filling out the "commercial use" bullshit for the 759th time because they're fucking stupid.. but that's going off on a tangent..)
I'm assuming you're referring to "Chokepoint Capitalism". I happen to have listened to that while angry @ Audible over a multi-month inability to play books on my phone. I bought the book on Libro.fm as an experiment, and haven't looked back since. Cancelled Audible and for player, I use Smart Audiobook Player, though the Libro.fm app works. More features in Smart - time-based sleep timer on/off, shake to reset sleep timer, additional audio options.Hopefully, Cory Doctorow's message will gain more traction, and the countries US is now imposing tariffs on will suspend their anti-circumvention laws. US has originally forced these laws on others in exchange for free trade agreements it is now choosing not to honor, after all.
I know, right? Speaks to both their app and their customer support being shit.So ... you can setup a home server with lots of arcane Linux requirements and have remote access but can't get Audible to work on your phone? Hmmmmm ....
There is an option for a “static route” in my router. Would that be what you’re referring to, or something else entirely?NAT is certainly a way to do that. Not the way I'd have done it. NAT when you don't have to sucks. The alternative would require you to configure a route on your router to send traffic destined for your wg subnet to your host running wg so it can then route it properly.
There actually is an option to run a VPN off my router.. I tried it briefly once, but abandoned it because the performance was so poor as to be basically unusable.This is another reason why running your VPNs on your router makes a lot of sense, though not something I'd recommend with consumer class gear.
Yes, I’ve already done this.But really the "right" solution at this scale is give your host a static IP or a DHCP reservation so it always has the same IP and use the IP instead of the the hostname.
Ha ha.. that’s cuteIt's one host, so it's not a big deal to remember the IP. If you're just using it for this one app anyway, just set it and forget it.
Yeah, that's how you would configure a route on your router.There is an option for a “static route” in my router. Would that be what you’re referring to, or something else entirely?
View attachment 105265
There actually is an option to run a VPN off my router.. I tried it briefly once, but abandoned it because the performance was so poor as to be basically unusable.
Yes, I’ve already done this.
Ha ha.. that’s cute.
Reality is.. more complicated.. than that.
For future reference.. what value would I put in each field?Yeah, that's how you would configure a route on your router.
Destination address is the network address of your wg network. 192.168.100.0 was it?For future reference.. what value would I put in each field?
The terminology isn't completely clear to me.
I use Plex and Prologue - a perfect pairing!I can also recommend this setup:
- OpenAudible - to download Audible library DRM free
- Plex - to store and host the media
- Prologue - incredible iOS and Watch app to stream your audiobooks
Doctorow has been advocating for dropping anticircumvention laws in response to tariffs, for a while. Here are two of his blog posts on this:I'm assuming you're referring to "Chokepoint Capitalism". I happen to have listened to that while angry @ Audible over a multi-month inability to play books on my phone. I bought the book on Libro.fm as an experiment, and haven't looked back since. Cancelled Audible and for player, I use Smart Audiobook Player, though the Libro.fm app works. More features in Smart - time-based sleep timer on/off, shake to reset sleep timer, additional audio options.
Thing is, I would never have even known about "Audiblegate" had I not heard Cory and Rebecca on the Decoder podcast mentioning it and "Chokepoint Capitalism".
If you're on iOS, give Prologue a try. It is a Plex audiobook player.I can't get mine to even recognize any of the titles. It just says "various authors" and I wonder if it is because I have downloaded them myself? It is the only gripe I have with Plex, which I use for everything else.
Can you use DNS verification for your LetsEncrypt certs?Yeah I ripped all my audible books, about a 112, last year and put them on audiobookshelf on my NAS. It legit is a solid product. The only real down side is that I can't easily secure the connection with SSL. And I'm not doing a reverse proxy as Lets Encrypt requires port 80 to be open to authenticate during the renewal process, and I'm never opening port 80 up.
Instead I just VPN into my network. It just sucks as I can't share my collection with my GF. It is legit the ONLY thing keeping me on Plex. Having a secure connection out of the box makes things super easy.
This is probably worth another article, but the way I'm tackling this particular problem is with a local instance of Wireguard and a VPN profile on my mobile devices. When I'm out and about or in the car or whatever, I can tap the "VPN" shortcut on my iOS home screen, and boom—Plappa is now able to see Audiobookshelf, and streaming works just as well as it does at home.
Thanks for the sanctimonious conclusion jumping, but no, I've tried. Not only that, I work for a public library system, so I'm quite familiar with not only the average length of an audiobook but also with my very own experiences with them.There's a lot of problems with this statement, but I'm going to go out on a limb and guess that you've never even tried to listen to an audiobook.
There's countless studies showing that repetitive, menial labour actually boosts our cognitive capabilities.
Going to the gym, exercise, chores, etc, are the optimal times to read a book.
Try it sometime, and revel in the knowledge that you're never to busy to "read"
At least with Plappa (the playback app I'm using), if you pay $5 for the lifetime version, you also gain the ability to download audiobooks to your device and play them locally. That obviates the need for figuring out a streaming solution.When I started reading this article I got excited because this was the major problem that kept me from using audiobookshelf when it first launched. Disappointing to see you still need a bunch of third-party software to use what I personally view as the only purpose of this entire scheme. For now I'll stick with my method of keeping a couple dozen audiobooks on my phone and my whole collection on my keychain flash drive.
Agreed. You might be interested in a recent episode of the Law Bytes podcast.As far as I'm concerned, Canada should declare all US intellectual property to be null and void. Patents, copyrights.. everything is public domain now.
#ElbowsUp
https://www.michaelgeist.ca/2025/02/law-bytes-podcast-episode-226/Professor Richard Gold of McGill University’s Faculty of Law specializes in intellectual property. On last week’s Law Bytes episode, I referenced his proposal to consider suspending patents in key sectors such as pharmaceuticals and AI as a mechanism to counter US pressure. He joins me on the Law Bytes podcast to expand on his idea, explaining why there would be benefits for Canadian firms and frustration on U.S. firms that could spark domestic support to counter potential measures targeting Canada.
I mean, you probably want your VPN to be a separate thing from your audio book server. Not all ABS instances will need to be accessed via VPN, the ABS devs aren't cryptographic experts and would likely just introduce security vulnerabilities if they tried to implement their own, and if you are running other services (like video streaming, home automation, etc) in addition to ABS, you don't want to have to manage a VPN for each service and have to do a port forward for each VPN to access the services.When I started reading this article I got excited because this was the major problem that kept me from using audiobookshelf when it first launched. Disappointing to see you still need a bunch of third-party software to use what I personally view as the only purpose of this entire scheme. For now I'll stick with my method of keeping a couple dozen audiobooks on my phone and my whole collection on my keychain flash drive.
I have done this in Plex and a drawback is that it doesn't preserve chapters after trying for a few hours to import them into the file, it doesn't offer them up in Plex or plexamp. - when you have a 10hr book its a nuisance to skip the whole file.If you're already running Plex, can't you host on Plex and run it through PlexAmp? Also supports streaming outside the LAN.
I have my instance secured with Traefik, which is using the ACME DNS-01 challenge to authenticate.Yeah I ripped all my audible books, about a 112, last year and put them on audiobookshelf on my NAS. It legit is a solid product. The only real down side is that I can't easily secure the connection with SSL. And I'm not doing a reverse proxy as Lets Encrypt requires port 80 to be open to authenticate during the renewal process, and I'm never opening port 80 up.
Instead I just VPN into my network. It just sucks as I can't share my collection with my GF. It is legit the ONLY thing keeping me on Plex. Having a secure connection out of the box makes things super easy.
I can vouch for the podcast integration. According to my stats, I'm at about 85,000 minutes listened, probably half podcasts and half audiobooks.This is cool, thank you Lee. I'm the opposite, in that I'm way more into podcasts than audiobooks, but may give it a try for that.
There is a docker image for Calibre from the LinuxServer.io team, which containerizes the desktop app into a hosted KasmVNC instance that can be accessed via HTTP/S. Kavita looks to be well supported, but I haven't used it.I really wish there was a good solution like this for ebooks. I use Plex for my media, but they don't support ebooks. I know about Calibre, but its Linux support isn't great and all my servers are Linux.
Edit: This caused me to re-search this and I discovered there's an alternative to Calibre called "Kavita." I think I'll give it a look: https://www.kavitareader.com/
There is also a docker image for Calibre-Web, which is a companion application that hosts the content from Calibre in a website form, with support for reading eBook formats in-browser. You can use Calibre to convert them to PDFs, open them in the browser, and have it read aloud. Not the easiest workaround, but it will work.What I actually want, is some way to get Edge voices to read my Kindle Library. I adore the Ava voice and want it to read me all my kindle books. Can't get kindle pages to work with edge though.
I'm interested! Tasker is great.Not sure if anyone is interested, but on Android I have this automated with Tasker. As soon as my home wifi is disconnected Tasker connects to my Wireguard VPN docker container running in my LAN's subnet. I always have access to my self-hosted services on my phone. And when I reconnect to my wifi, it auto disconnects the VPN.
If you are okay bypassing drm....What I actually want, is some way to get Edge voices to read my Kindle Library. I adore the Ava voice and want it to read me all my kindle books. Can't get kindle pages to work with edge though.