Register Guidelines E-Books Today's Posts Search

Go Back   MobileRead Forums > E-Book Software > Calibre > Plugins

Notices

Reply
 
Thread Tools Search this Thread
Old 04-29-2024, 05:36 PM   #136
thebishdad
Junior Member
thebishdad began at the beginning.
 
thebishdad's Avatar
 
Posts: 4
Karma: 10
Join Date: Apr 2024
Location: United States
Device: Kindle Scribe, Kindle Paperwhite, Kobo Libre 2
Quote:
Originally Posted by spicefather View Post
I've been playing around with this a little bit and it looks like as Pjama suggested, they changed their security a little bit. I tried generating a new auth token in the app via the clone code and that didn't work for me, but I did the same in my browser and copied its auth token into this plugin's config and that worked perfectly.
No promises on timeline since I have limited time to work on this, but I'm going to see if I can work the newer token generation method into the plugin. Alternatively if anyone is interested in working on it I'm happy to share my findings so far.

If anyone needs to get their plugin working, you can follow the steps below. I don't know how long this lasts for, so you may end up needing to redo it after some hours/days. Also the instructions are based on Firefox, hopefully they apply to other browsers as well but if not just ask and someone will try to help out.

1. In your browser, open your dev console (ctrl-shift-I or F12 for me).
2. Go to the network tab, click the cog at the top-right and make sure "Persist Logs" is on.
3. Go to https://libbyapp.com/.
4. In the dev console, type "sentry" into the filter bar.
5. Click on the furthest-down entry that is a "GET" request.
6. In the right panel, go into the "Request Headers" and find "Authorization" -- its format should be "Bearer" followed by a long string of characters. Copy just the long string.
7. Make sure Calibre is closed, and open the plugin config file (%APPDATA%\calibre\plugins\overdrive_libby.json on Windows, unsure Mac/Linux paths).
8. Find the line for "libby_token", and replace its value with the one you copied in step 6.
9. Open Calibre and the plugin should work as expected now.

Hopefully this is helpful to people.
Thank you, but I can't seem to get it to work. I was able to follow the steps but just keep getting an error after. I've tried with chrome and Firefox. Maybe I've just got bad luck today lol.

Last edited by thebishdad; 04-29-2024 at 05:40 PM.
thebishdad is offline   Reply With Quote
Old 04-29-2024, 05:54 PM   #137
sgmoore
Connoisseur
sgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfolded
 
Posts: 59
Karma: 52636
Join Date: Mar 2021
Device: Kindle Voyage
Quote:
Originally Posted by spicefather View Post

Hopefully this is helpful to people.
It is indeed.
I tried downloading both an ebook and a magazine and both worked. (I'm sure DaySleeper will be glad to hear that).

Quote:
I don't know how long this lasts for, so you may end up needing to redo it after some hours/days.
I'm hoping this won't be a problem. Every time you open the plugin it seems to generate a new token which is saved back to the overdrive_libby.json settings file and the new token still works even after you close and restart calibre.
sgmoore is offline   Reply With Quote
Old 04-29-2024, 06:02 PM   #138
sgmoore
Connoisseur
sgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfolded
 
Posts: 59
Karma: 52636
Join Date: Mar 2021
Device: Kindle Voyage
Quote:
Originally Posted by thebishdad View Post
Thank you, but I can't seem to get it to work. I was able to follow the steps but just keep getting an error after. I've tried with chrome and Firefox. Maybe I've just got bad luck today lol.
If you deleted the old token, you may have also deleted the comma at the end of the line, or maybe you are missing the quotation marks around it

The line should look something like

Code:
  "libby_token": "eyJ0eX",
except the token will be hundreds of characters long.
sgmoore is offline   Reply With Quote
Old 04-29-2024, 06:16 PM   #139
thebishdad
Junior Member
thebishdad began at the beginning.
 
thebishdad's Avatar
 
Posts: 4
Karma: 10
Join Date: Apr 2024
Location: United States
Device: Kindle Scribe, Kindle Paperwhite, Kobo Libre 2
Quote:
Originally Posted by sgmoore View Post
If you deleted the old token, you may have also deleted the comma at the end of the line, or maybe you are missing the quotation marks around it

The line should look something like

Code:
  "libby_token": "eyJ0eX",
except the token will be hundreds of characters long.
Hmm...I redid it and it worked lol. .I had the quotes and comma and all....maybe I had an extra space mixed in. Thank you
thebishdad is offline   Reply With Quote
Old 04-29-2024, 09:12 PM   #140
adinab
Junior Member
adinab began at the beginning.
 
Posts: 3
Karma: 10
Join Date: Apr 2024
Device: Kindle Paperwhite 2021
Quote:
Originally Posted by spicefather View Post
I've been playing around with this a little bit and it looks like as Pjama suggested, they changed their security a little bit. I tried generating a new auth token in the app via the clone code and that didn't work for me, but I did the same in my browser and copied its auth token into this plugin's config and that worked perfectly.
No promises on timeline since I have limited time to work on this, but I'm going to see if I can work the newer token generation method into the plugin. Alternatively if anyone is interested in working on it I'm happy to share my findings so far.

If anyone needs to get their plugin working, you can follow the steps below. I don't know how long this lasts for, so you may end up needing to redo it after some hours/days. Also the instructions are based on Firefox, hopefully they apply to other browsers as well but if not just ask and someone will try to help out.

1. In your browser, open your dev console (ctrl-shift-I or F12 for me).
2. Go to the network tab, click the cog at the top-right and make sure "Persist Logs" is on.
3. Go to https://libbyapp.com/.
4. In the dev console, type "sentry" into the filter bar.
5. Click on the furthest-down entry that is a "GET" request.
6. In the right panel, go into the "Request Headers" and find "Authorization" -- its format should be "Bearer" followed by a long string of characters. Copy just the long string.
7. Make sure Calibre is closed, and open the plugin config file (%APPDATA%\calibre\plugins\overdrive_libby.json on Windows, unsure Mac/Linux paths).
8. Find the line for "libby_token", and replace its value with the one you copied in step 6.
9. Open Calibre and the plugin should work as expected now.

Hopefully this is helpful to people.
Thank you so much! This worked for me. The path for the plugin config file for Mac would be /Users/USERNAME/Library/Preferences/calibre/plugins/overdrive_libby.json
To get to it you could also open Calibre, go to Preferences, Miscellaneous, Open Calibre Configuration Folder, then close the app when the folder opens.

And if you're using Chrome for the first steps, instead of Persist Logs, it's called Preserve Logs. So tick that and then the GET request should have an icon that looks like this: {;} and the name showed up for me as counts?cards= string of numbers and symbols

Last edited by adinab; 04-29-2024 at 09:13 PM. Reason: Additional detail for help purposes
adinab is offline   Reply With Quote
Old 04-29-2024, 11:28 PM   #141
DaySleeper
Connoisseur
DaySleeper shares his or her toysDaySleeper shares his or her toysDaySleeper shares his or her toysDaySleeper shares his or her toysDaySleeper shares his or her toysDaySleeper shares his or her toysDaySleeper shares his or her toysDaySleeper shares his or her toysDaySleeper shares his or her toysDaySleeper shares his or her toysDaySleeper shares his or her toys
 
Posts: 56
Karma: 5532
Join Date: Jul 2017
Device: MoonReader+ Android app on Samsung Galaxy S6 Lite and otherst
Does it have to recognize me or my location? For some reason it's sending me to North Carolina (which is not where I am). Under Headers, there's a section labeled "Resonse Headers," but nothing with "authorization." Do I need to have logged in (and if so, how? There's a "sign in with my card" option, but since I'm not in North Carolina, there's nothing I can sign in to.
DaySleeper is offline   Reply With Quote
Old 04-29-2024, 11:56 PM   #142
miss_p1nky
Enthusiast
miss_p1nky will become famous soon enoughmiss_p1nky will become famous soon enoughmiss_p1nky will become famous soon enoughmiss_p1nky will become famous soon enoughmiss_p1nky will become famous soon enoughmiss_p1nky will become famous soon enough
 
Posts: 48
Karma: 636
Join Date: Aug 2022
Location: Indonesia
Device: Moon+ Reader Pro
I got Unicode error, can someone kindly help?

Quote:
calibre, version 7.9.0
ERROR: Unhandled exception: <b>UnicodeEncodeError</b>: Error synchronizing data

calibre 7.9 embedded-python: True
Windows-10-10.0.19045-SP0 Windows ('64bit', 'WindowsPE')
('Windows', '10', '10.0.19045')
Python 3.11.5
Windows: ('10', '10.0.19045', 'SP0', 'Multiprocessor Free')
Interface language: None
EXE path: C:\Program Files\Calibre2\calibre.exe
Successfully initialized third party plugins: ACSM Input (0, 1, 0) && DeDRM (10, 0, 3) && ACSM Input Plugin GUI Extension (0, 1, 0) && Find Duplicates (1, 10, 9) && KindleUnpack - The Plugin (0, 83, 1) && Modify ePub (1, 8, 3) && OverDrive Libby (0, 1, 9)
Traceback (most recent call last):
File "calibre_plugins.overdrive_libby.workers", line 381, in run
File "calibre_plugins.overdrive_libby.libby.client" , line 633, in sync
File "calibre_plugins.overdrive_libby.libby.client" , line 520, in send_request
File "urllib\request.py", line 519, in open
File "urllib\request.py", line 536, in _open
File "urllib\request.py", line 496, in _call_chain
File "urllib\request.py", line 1391, in https_open
File "urllib\request.py", line 1348, in do_open
File "http\client.py", line 1286, in request
File "http\client.py", line 1327, in _send_request
File "http\client.py", line 1259, in putheader
UnicodeEncodeError: 'latin-1' codec can't encode character '\u2026' in position 512: ordinal not in range(256)
Thinking it was because a '...' in the middle of the string, I replaced it and now got

Quote:
calibre, version 7.9.0
ERROR: Unhandled exception: <b>ClientForbiddenError</b>: Error synchronizing data<p>HTTP Error 403: Forbidden</p>

calibre 7.9 embedded-python: True
Windows-10-10.0.19045-SP0 Windows ('64bit', 'WindowsPE')
('Windows', '10', '10.0.19045')
Python 3.11.5
Windows: ('10', '10.0.19045', 'SP0', 'Multiprocessor Free')
Interface language: None
EXE path: C:\Program Files\Calibre2\calibre.exe
Successfully initialized third party plugins: ACSM Input (0, 1, 0) && DeDRM (10, 0, 3) && ACSM Input Plugin GUI Extension (0, 1, 0) && Find Duplicates (1, 10, 9) && KindleUnpack - The Plugin (0, 83, 1) && Modify ePub (1, 8, 3) && OverDrive Libby (0, 1, 9)
Traceback (most recent call last):
File "calibre_plugins.overdrive_libby.libby.client" , line 520, in send_request
File "urllib\request.py", line 525, in open
File "urllib\request.py", line 634, in http_response
File "urllib\request.py", line 563, in error
File "urllib\request.py", line 496, in _call_chain
File "urllib\request.py", line 643, in http_error_default
urllib.error.HTTPError: HTTP Error 403: Forbidden

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "calibre_plugins.overdrive_libby.workers", line 381, in run
File "calibre_plugins.overdrive_libby.libby.client" , line 633, in sync
File "calibre_plugins.overdrive_libby.libby.client" , line 540, in send_request
File "calibre_plugins.overdrive_libby.libby.errors" , line 143, in process
calibre_plugins.overdrive_libby.libby.errors.Clien tForbiddenError: <calibre_plugins.overdrive_libby.libby.errors.Clie ntForbiddenError; http_status=403, msg='HTTP Error 403: Forbidden', error_response='{"result":"missing_chip"}''>

Last edited by miss_p1nky; 04-29-2024 at 11:59 PM.
miss_p1nky is offline   Reply With Quote
Old 04-30-2024, 01:25 AM   #143
mikeage
Member
mikeage began at the beginning.
 
Posts: 21
Karma: 14
Join Date: Sep 2009
Device: Kindle 2
Quote:
Originally Posted by spicefather View Post
If anyone needs to get their plugin working, you can follow the steps below. I don't know how long this lasts for, so you may end up needing to redo it after some hours/days.
Looking at the details via jwt.io, it looks like the token is valid for 7 days.
mikeage is offline   Reply With Quote
Old 04-30-2024, 02:21 AM   #144
sgmoore
Connoisseur
sgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfolded
 
Posts: 59
Karma: 52636
Join Date: Mar 2021
Device: Kindle Voyage
Quote:
Originally Posted by DaySleeper View Post
Does it have to recognize me or my location? For some reason it's sending me to North Carolina (which is not where I am). Under Headers, there's a section labeled "Resonse Headers," but nothing with "authorization." Do I need to have logged in (and if so, how? There's a "sign in with my card" option, but since I'm not in North Carolina, there's nothing I can sign in to.
You do need to be logged in.

If you see the hamburger menu in the middle at the bottom, then clicking on this should allow you to add a library and once you add your library it will ask you to sign in with your card.

Otherwise, if you open a new private browser window, it should ask for your library and card details when you open libbyapp.com
sgmoore is offline   Reply With Quote
Old 04-30-2024, 02:29 AM   #145
sgmoore
Connoisseur
sgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfoldedsgmoore reads XML... blindfolded
 
Posts: 59
Karma: 52636
Join Date: Mar 2021
Device: Kindle Voyage
Quote:
Originally Posted by miss_p1nky View Post
I got Unicode error, can someone kindly help?



Thinking it was because a '...' in the middle of the string, I replaced it and now got
What browser are you using?

I suspect your browser is just showing you part of the token (which the ... to indicate that it is skipping part of it).

The full token is very long (mine is 976 characters)
sgmoore is offline   Reply With Quote
Old 04-30-2024, 03:27 AM   #146
miss_p1nky
Enthusiast
miss_p1nky will become famous soon enoughmiss_p1nky will become famous soon enoughmiss_p1nky will become famous soon enoughmiss_p1nky will become famous soon enoughmiss_p1nky will become famous soon enoughmiss_p1nky will become famous soon enough
 
Posts: 48
Karma: 636
Join Date: Aug 2022
Location: Indonesia
Device: Moon+ Reader Pro
Quote:
Originally Posted by sgmoore View Post
What browser are you using?

I suspect your browser is just showing you part of the token (which the ... to indicate that it is skipping part of it).

The full token is very long (mine is 976 characters)
Firefox. OK I'll try with Chrome.

============

EDIT: Using Firefox works. Turned out blocking the strings manually is not a good idea. I used the right-click button and everything got copied in complete. Plugin now works again. Thanks to everyone.

Last edited by miss_p1nky; 04-30-2024 at 03:35 AM.
miss_p1nky is offline   Reply With Quote
Old 04-30-2024, 04:38 AM   #147
DaySleeper
Connoisseur
DaySleeper shares his or her toysDaySleeper shares his or her toysDaySleeper shares his or her toysDaySleeper shares his or her toysDaySleeper shares his or her toysDaySleeper shares his or her toysDaySleeper shares his or her toysDaySleeper shares his or her toysDaySleeper shares his or her toysDaySleeper shares his or her toysDaySleeper shares his or her toys
 
Posts: 56
Karma: 5532
Join Date: Jul 2017
Device: MoonReader+ Android app on Samsung Galaxy S6 Lite and otherst
Quote:
Originally Posted by sgmoore View Post
You do need to be logged in.

If you see the hamburger menu in the middle at the bottom, then clicking on this should allow you to add a library and once you add your library it will ask you to sign in with your card.

Otherwise, if you open a new private browser window, it should ask for your library and card details when you open libbyapp.com
Ok, I was able to do the signin from the hamburger menu, and obtained a token. Unfortunately, when I plugged it into the json file, I got a number of error messages regarding not recognizing my cards (I have cards at 3 different libraries; I logged into one of them to be able to get the token). I had to use task manager to escape, then restored the json from the backup I made before trying this.

I went back in and logged into the other libraries, then got a new token & put it into the restored json. No more errors loading the plugin, but still getting the download error.
DaySleeper is offline   Reply With Quote
Old 04-30-2024, 05:08 PM   #148
Pjama
Guru
Pjama ought to be getting tired of karma fortunes by now.Pjama ought to be getting tired of karma fortunes by now.Pjama ought to be getting tired of karma fortunes by now.Pjama ought to be getting tired of karma fortunes by now.Pjama ought to be getting tired of karma fortunes by now.Pjama ought to be getting tired of karma fortunes by now.Pjama ought to be getting tired of karma fortunes by now.Pjama ought to be getting tired of karma fortunes by now.Pjama ought to be getting tired of karma fortunes by now.Pjama ought to be getting tired of karma fortunes by now.Pjama ought to be getting tired of karma fortunes by now.
 
Pjama's Avatar
 
Posts: 694
Karma: 2345678
Join Date: Apr 2016
Location: USA
Device: Scribe, Oasis, Clara 2E, Libra 2, Libra Colour
Quote:
Originally Posted by spicefather View Post
I've been playing around with this a little bit and it looks like as Pjama suggested, they changed their security a little bit. I tried generating a new auth token in the app via the clone code and that didn't work for me, but I did the same in my browser and copied its auth token into this plugin's config and that worked perfectly.
No promises on timeline since I have limited time to work on this, but I'm going to see if I can work the newer token generation method into the plugin. Alternatively if anyone is interested in working on it I'm happy to share my findings so far.

If anyone needs to get their plugin working, you can follow the steps below. I don't know how long this lasts for, so you may end up needing to redo it after some hours/days. Also the instructions are based on Firefox, hopefully they apply to other browsers as well but if not just ask and someone will try to help out.

1. In your browser, open your dev console (ctrl-shift-I or F12 for me).
2. Go to the network tab, click the cog at the top-right and make sure "Persist Logs" is on.
3. Go to https://libbyapp.com/.
4. In the dev console, type "sentry" into the filter bar.
5. Click on the furthest-down entry that is a "GET" request.
6. In the right panel, go into the "Request Headers" and find "Authorization" -- its format should be "Bearer" followed by a long string of characters. Copy just the long string.
7. Make sure Calibre is closed, and open the plugin config file (%APPDATA%\calibre\plugins\overdrive_libby.json on Windows, unsure Mac/Linux paths).
8. Find the line for "libby_token", and replace its value with the one you copied in step 6.
9. Open Calibre and the plugin should work as expected now.

Hopefully this is helpful to people.
Wow! I wish I'd checked back here sooner, sounds amazing, thanks so much!
Pjama is offline   Reply With Quote
Old 04-30-2024, 07:15 PM   #149
Bennelong
Member
Bennelong is a splendid one to beholdBennelong is a splendid one to beholdBennelong is a splendid one to beholdBennelong is a splendid one to beholdBennelong is a splendid one to beholdBennelong is a splendid one to beholdBennelong is a splendid one to beholdBennelong is a splendid one to beholdBennelong is a splendid one to beholdBennelong is a splendid one to beholdBennelong is a splendid one to behold
 
Posts: 15
Karma: 19930
Join Date: Mar 2013
Device: Kindle
Does not work.
Bennelong is offline   Reply With Quote
Old 04-30-2024, 08:00 PM   #150
Pjama
Guru
Pjama ought to be getting tired of karma fortunes by now.Pjama ought to be getting tired of karma fortunes by now.Pjama ought to be getting tired of karma fortunes by now.Pjama ought to be getting tired of karma fortunes by now.Pjama ought to be getting tired of karma fortunes by now.Pjama ought to be getting tired of karma fortunes by now.Pjama ought to be getting tired of karma fortunes by now.Pjama ought to be getting tired of karma fortunes by now.Pjama ought to be getting tired of karma fortunes by now.Pjama ought to be getting tired of karma fortunes by now.Pjama ought to be getting tired of karma fortunes by now.
 
Pjama's Avatar
 
Posts: 694
Karma: 2345678
Join Date: Apr 2016
Location: USA
Device: Scribe, Oasis, Clara 2E, Libra 2, Libra Colour
Quote:
Originally Posted by adinab View Post
Thank you so much! This worked for me. The path for the plugin config file for Mac would be /Users/USERNAME/Library/Preferences/calibre/plugins/overdrive_libby.json
To get to it you could also open Calibre, go to Preferences, Miscellaneous, Open Calibre Configuration Folder, then close the app when the folder opens.

And if you're using Chrome for the first steps, instead of Persist Logs, it's called Preserve Logs. So tick that and then the GET request should have an icon that looks like this: {;} and the name showed up for me as counts?cards= string of numbers and symbols
Thanks for this info as well - I got the config file from Calibre using your way.

I am also adding some instructions for Safari on Mac - in the Dev Tools console, press Network, then press the hamburger menu on the left and check Preserve Log.

Also, to edit the json file, open it in Text Edit or similar - took me a while to figure that out.

I set it all up and can see everything in the Libby plug-in again! However, it still does not like downloading my magazines - frustrating, as I can see them in the list, but not get to them. It works for books, but not for the magazines (which are the only reason I'm using this plugin).

Here is my latest error message:

Spoiler:
calibre, version 7.9.0
ERROR: Unhandled exception: <b>KeyError</b>: Failed to download e-book

calibre 7.9 embedded-python: True
macOS-14.4.1-arm64-arm-64bit Darwin ('64bit', '')
('Darwin', '23.4.0', 'Darwin Kernel Version 23.4.0: Fri Mar 15 00:10:42 PDT 2024; root:xnu-10063.101.17~1/RELEASE_ARM64_T6000')
Python 3.11.5
OSX: ('14.4.1', ('', '', ''), 'arm64')
Interface language: None
EXE path: /Applications/calibre.app/Contents/MacOS/calibre
Successfully initialized third party plugins: Gather KFX-ZIP (from KFX Input) (1, 48, 0) && DeDRM (10, 0, 3) && Package KFX (from KFX Input) (1, 48, 0) && Check Books (0, 1, 8) && EpubCheck (0, 2, 5) && Find Duplicates (1, 10, 8) && KFX metadata reader (from KFX Input) (1, 48, 0) && KFX Input (1, 48, 0) && Set KFX metadata (from KFX Output) (1, 61, 0) && KFX Output (1, 61, 0) && KePub Input (3, 4, 3) && KePub Metadata Reader (3, 4, 3) && KePub Metadata Writer (3, 4, 3) && Kindle hi-res covers (0, 5, 1) && KindleUnpack - The Plugin (0, 83, 1) && Kobo Utilities (2, 16, 13) && KoboTouchExtended (3, 6, 7) && Modify ePub (1, 8, 2) && Obok DeDRM (7, 1, 0) && OverDrive Libby (0, 1, 9) && Quality Check (1, 12, 0) && Save To Format (0, 0, 6)
Traceback (most recent call last):
File "calibre/gui2/threaded_jobs.py", line 85, in start_work
File "calibre_plugins.overdrive_libby.magazine_download ", line 387, in __call__
downloaded_filepath = self._custom_download(
^^^^^^^^^^^^^^^^^^^^^^
File "calibre_plugins.overdrive_libby.magazine_download ", line 467, in _custom_download
download_base, openbook, rosters = libby_client.process_ebook(loan)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "calibre_plugins.overdrive_libby.libby.client" , line 822, in process_ebook
openbook = self.send_request(meta["urls"]["openbook"])
~~~~~~~~~~~~^^^^^^^^^^^^
KeyError: 'openbook'
Pjama is offline   Reply With Quote
Reply


Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
[GUI Plugin] Overdrive Link jhowell Plugins 1264 05-01-2024 12:08 PM
No Local Public Library. Overdrive/Libby Possible? enuddleyarbl Kobo Reader 2 06-08-2023 07:23 PM
Library borrowing: Overdrive vs. Libby haertig General Discussions 83 01-30-2023 04:21 PM
Libby, the new Overdrive App Cosimo News 30 12-02-2017 09:42 AM
Overdrive's Libby Loves2Read4Fun General Discussions 2 12-20-2016 01:32 PM


All times are GMT -4. The time now is 11:06 AM.


MobileRead.com is a privately owned, operated and funded community.