Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated for access to current API #240

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

skittlesvampir
Copy link

@skittlesvampir skittlesvampir commented Aug 21, 2024

I'm not that experienced with JavaScript and especially Firefox addon development, so feel give criticism if my code should be inadequate.

I've tested this code with 5 different libby audiobooks and they all downloaded flawlessly. This pull request should resolve #206 completely, for now.

I'm not that experienced with JavaScript and especially Firefox addon development,
so feel give criticism if my code should be inadequate.
@skittlesvampir
Copy link
Author

Also, is there any possibility of bringing this addon back to the mozilla store?

@melangeaddict
Copy link

melangeaddict commented Aug 27, 2024

Edit: I was trying to load the wrong path. I loaded the correct one in /dist/manifest.json and it started working! Well done. :-)

I pulled your changes, built them, and attempted to run the extension. Clicking the 'Download' button didn't result in any actions, though. Were there any special commands to build besides running 'make'?

@eric10k93
Copy link

eric10k93 commented Aug 29, 2024

EDIT: Nevermind, I figured it out... it was just needing to use make with the Makefile... I was missing all the build tools, so installed those and got it built.

@zorin1
Copy link
Contributor

zorin1 commented Aug 30, 2024

I was able to download one book with the changes. Seems to work BUT I'm not sure if the length of the mp3 is set correctly. Not sure if this has to do with the program or something else going on. mp3split is not getting the length of the mp3 correctly. When I load in the cue file to mp3split it does not get the last few mins of the audiobook. I had to manually delete the the last line in the mp3split split file and add it with the right ending. I need to try with more audiobooks.

@zorin1
Copy link
Contributor

zorin1 commented Aug 30, 2024

I tried another audiobook and it worked fine. It must have just been something messed up with that one book. Hopefully, someone else can try a few books.

@skittlesvampir
Copy link
Author

It must have just been something messed up with that one book.

Could you please try to download the mentioned book using the workflow described by one of the odmpy users:
ping/odmpy#69 (comment)

I must admit that I don't really have the skills to investigate mp3split problems but maybe the issue is on Libby's site? But if you can confirm, that the Overdrive Download Console results in a correct file, I might be able to have another look.

@poehlert
Copy link

So I'm seeing your parsing code in extractBookJson on 174 fail when splitting on '--' fails. I'm not sure why, but a small percentage of books I'm seeing having a different encoding. An example "spine" element:

{
      "path": "%7B788690A8-7408-42EB-854B-382782723FBF%7DFmt425-Part02.mp3?cmpt=eyJzcGluZ-22e0e21503d6cfedd5b66bb1e525561670b6815fSI6MX0%3D-",
      "media-type": "audio/mpeg",
      "audio-duration": 4082.20725,
      "audio-bitrate": 64,
      "-odread-spine-position": 1,
      "-odread-file-bytes": 32657658,
      "-odread-original-path": "{788690A8-7408-42EB-854B-382782723FBF}Fmt425-Part02.mp3"
    },

My guess is in the originating code, these are used for padding and aren't intended to be delimiters? That might make the pad on the first field to be - or --, and the pad on the second field may be empty or -. I was thinking a regex to parse the path may be more useful?

/(.*\.mp3)\?cmpt=([\w+\/%]*)--?([\w%]*)-?/

Would match on the 3 groups you need and cover both forms (and potentially make additional forms easier to deal with if more encodings are found)

const path_split = path.split("?cmpt=");
const parameter = path_split[1].split("--");
parameter[0] = btoa(`{"spine":${i}}`);
parameter[1] = parameter[1].substring(0,40);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This right here fails as not all paths have -- as I noted in my description.

@skittlesvampir
Copy link
Author

@poehlert I added another commit which should address your issue, but my libby doesn't work right now for some reason ("you can't open this magazine using your card", but it's an audiobook?!). Could you please test if this works?

@zorin1
Copy link
Contributor

zorin1 commented Sep 2, 2024

I tested the new patch with 2 audio books, seems to work fine.

@zorin1
Copy link
Contributor

zorin1 commented Sep 2, 2024

It must have just been something messed up with that one book.

Could you please try to download the mentioned book using the workflow described by one of the odmpy users: ping/odmpy#69 (comment)

I must admit that I don't really have the skills to investigate mp3split problems but maybe the issue is on Libby's site? But if you can confirm, that the Overdrive Download Console results in a correct file, I might be able to have another look.

I was using Kim Stanley Robinson Aurora. When I use the overdrive app it breaks it up into individual tracks. With the Libby Downloader it is all in one mp3 files. On linux, I'm using mp3splt-gtk 0.9.2 to split the mp3 file. It cuts off the last part of the last chapter before the credits. If I listen to the big mp3 file that was downloaded, it is fine. The problem seems to be with the mp3splt program where it is not calculating the length of the mp3 files. If I manually change the last splitpoint then it works.

Chapter 7 starts at 14:28.56 and ends at 16:56:03.

mp3splt is not calculating the end length of 1016 mins and 3 seconds.

MediaInfo show it to be 16 h 56 min.
VLC show it as 16:56:21

The issue has to be with mp3splt

@zorin1
Copy link
Contributor

zorin1 commented Sep 2, 2024

It must have just been something messed up with that one book.

Could you please try to download the mentioned book using the workflow described by one of the odmpy users: ping/odmpy#69 (comment)
I must admit that I don't really have the skills to investigate mp3split problems but maybe the issue is on Libby's site? But if you can confirm, that the Overdrive Download Console results in a correct file, I might be able to have another look.

I was using Kim Stanley Robinson Aurora. When I use the overdrive app it breaks it up into individual tracks. With the Libby Downloader it is all in one mp3 files. On linux, I'm using mp3splt-gtk 0.9.2 to split the mp3 file. It cuts off the last part of the last chapter before the credits. If I listen to the big mp3 file that was downloaded, it is fine. The problem seems to be with the mp3splt program where it is not calculating the length of the mp3 files. If I manually change the last splitpoint then it works.

Chapter 7 starts at 14:28.56 and ends at 16:56:03.

mp3splt is not calculating the end length of 1016 mins and 3 seconds.

MediaInfo show it to be 16 h 56 min. VLC show it as 16:56:21

The issue has to be with mp3splt

I tried mp3splt from the command line and it worked fine. Go figure. Just one of those things.

@skittlesvampir
Copy link
Author

When I use the overdrive app it breaks it up into individual tracks. With the Libby Downloader it is all in one mp3 files.

Have you tried disabling "Parse Chapters" that downloads individual files, although I'm not sure if each file corresponds to one chapter

@zorin1
Copy link
Contributor

zorin1 commented Sep 4, 2024

@poehlert @skittlesvampir Do you know of an audiobooks that was failing before the latest patch? I would like to use it for a test to see if I get any issues. I don't have a lot of audiobooks to test with. I think the two PRs are good enough to be approved. The current code is not working at all.

@bookbonobo Do you think you can accept the 2 PRs?

@melangeaddict
Copy link

I pulled your latest changes and downloaded 3 books with no issues. +1 from me.

@JCroese
Copy link

JCroese commented Sep 7, 2024

I tried both commits, and with most books they work, however I found one that does not work with both.

If I look at the URL from the networks tab of the web develope toold I find the following URL for the audio source:
[dewey part] %7BC4DC40D4-5799-494D-89E5-3E207576F914%7DFmt425-Part01.mp3?cmpt=eyJzcGluZSI6MH0%3D--99a7f9d1b137072ae9e62bb76e4574ef2ce08e59

commit: 00bb0f7 gives the flowing error in the pop-up and the extension debugging page:
"TypeError: n[1] is undefined"

here's an example spine element:

{"path":"%7BC4DC40D4-5799-494D-89E5-3E207576F914%7DFmt425-Part01.mp3?cmpt=eyJzcGluZ-99a7f9d1b137072ae9e62bb76e4574ef2ce08e59SI6MH0%3D-",
"media-type":"audio/mpeg",
"audio-duration":3228.55175,
"audio-bitrate":64,
"-odread-spine-position":0,
"-odread-file-bytes":25828414,
"-odread-original-path":"{C4DC40D4-5799-494D-89E5-3E207576F914}Fmt425-Part01.mp3"}

commit: 1141790 gives the following error in the popup:
"Loading state failed"
and in the extension debugging page:
"DOMException: The buffer passed to decodeAudioData contains an unknown content type."

here's an example spine element:
{"path":"%7BC4DC40D4-5799-494D-89E5-3E207576F914%7DFmt425-Part01.mp3?cmpt=eyJzcGluZ-99a7f9d1b137072ae9e62bb76e4574ef2ce08e59SI6MH0%3D-",
"media-type":"audio/mpeg",
"audio-duration":3228.55175,
"audio-bitrate":64,
"-odread-spine-position":0,
"-odread-file-bytes":25828414,
"-odread-original-path":"{C4DC40D4-5799-494D-89E5-3E207576F914}Fmt425-Part01.mp3"}

As you can see the spine elements get decoded the same way. I noticed that it seems compared to the correct URL the end of the spine one seems scrambeled.
original: eyJzcGluZ SI6MH0%3D- -99a7f9d1b137072ae9e62bb76e4574ef2ce08e59
order: 1 : 2 : 3
spine: eyJzcGluZ -99a7f9d1b137072ae9e62bb76e4574ef2ce08e59 SI6MH0%3D-
order: 1 : 3 : 2

Hope this helps

@brad
Copy link

brad commented Sep 9, 2024

Just commenting to add more data points. I used this branch to download 1 4 books, worked almost perfectly. I had one download failure but I had a poor WiFi connection at the time. I'm assuming that was the cause because it work perfectly on the second try closer to the router

@skittlesvampir
Copy link
Author

@JCroese I can't find anything unusual with the data you posted. Could you please send me the MP3 requests from the network tab, both with and without using the extension? My hypothesis is, that the URLs are generated correctly but another error is happening elsewhere in the code.

@mokrates
Copy link

I can second that this works

@eric10k93
Copy link

eric10k93 commented Sep 13, 2024

@JCroese , @skittlesvampir ... I just wanted to chime in on this again. I have now successfully used this for quite a few downloads, but I oddly found two books that give the same errors @JCroese has reported above.

EDIT: I am happy to provide any details I can, but as I'm not a web developer, I'm having a hard time finding where the actual MP3 request is. The lines marked 'media' on the network tab don't appear to have any content (whether on a book that works or not). Is it one of the lines requesting a gzip?

@eric10k93
Copy link

image

Is this one the actual media request? What's strange is I occasionally see a failed line, but then lower down will be a success. This doesn't appear to correspond with the books that work however, as even on the books that work, I occasionally see this error.

@skittlesvampir
Copy link
Author

@eric10k93 The request I'm looking for begins with "dewey-", then has something like "{AEBTD-3243E-122EE}.mp3?cmpt=". I need that request once from downloading with the extension and once how it gets loaded during regular playback.

@skittlesvampir
Copy link
Author

Unrelated, literally every audiobook that I borrow gives the following error when opening:

Access to this magazine is not allowed with your active library card.

I can listen on overdrive.com in the browser but I can access them over libbyapp.com, not even on my phone. I have tried logging out and in again and verifying my card. Have I been shadowbanned?

const parameter_1 = btoa(`{"spine":${i}}`);
const parameter_2 = path_split[4].substring(0, 40);

const parameter_full = encodeURIComponent(`${parameter_1}${path_split[3]}${parameter_2}`);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This part fails as all paths eventually need the "--" in there. For those who have the url "scrambeled" in the decoded spine the regex makes path_split[3] sometimes "-" and other times "--"

I would suggest the following edits:

171 const regex = /(.*\.mp3)\?cmpt=([\w+/%]*)(--?)([\w%]{40})([\w%]*-?)/;
...
176 const parameter_full = encodeURIComponent(`${parameter_1}--${path_split[4]}`);

having the regex in line 171 check for 40 characters avoids the need of line 174
the edit of line 176 fixes the problem however it hard codes the "--" part of the url. There might be a neater and more dynamic way of fixing this. e.g. by checking the contents of path_split[3] or the existence of path_split[5]

Copy link

@JCroese JCroese Sep 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@skittlesvampir, I found where the code went wrong

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@poehlert can you check if this would fix the issue with the book you couldn't download as well?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Skittlesvampir, I was able to download 3 books.

@JCroese
Copy link

JCroese commented Sep 15, 2024

@eric10k93 and @skittlesvampir I started a code review that solves this issue 5 days ago, I just forgot to submit it... sorry, I'm not that familiar with github.

But as I'm quite new to this let me share what I think I learned last week and how I found where the error was. and if I made a mistake please correct me!

So apparently there are (at least?) two kinds of web developer tools windows. One that shows stuff that's going on with the webpage (that's the one that opens with F12) and one that shows what's going on with extension (you can open this via add-ons manager -> Debug Add-ons -> the "inspect" button from the add-on).

When looking at the Networks tab of the "F12 tools" you can search for .mp3 and you'll find a (list of ) link(s) with the following format:
[Dewey part]/[long string 1]Fmt425-Partxx.mp3?cmpt=[longs string 2]--[long string 3]

I think/guess "long string 1" is a book identifier, "long string 2" some account/library/application identifier, and "long string 3" might be some kind of key/pass/cookie etc. code.

When you look at the "Inspect tools" in the Console tab, you can read the messages the extension logs/print. and in the "Network tab" you can see the web request send/received by the extension

Now to some of the code:

in background.ts the function "handleBookMetaWebRequest" (~line 208) catches the response of some specific web requests including the last "case"/"else if" which is the one that contains the ToC en Spine meta data.

Before issue #206 the response of this request was a json file which contained all of this information without encoding/encryption (I guess?). However now part of this json file has a large set of data which is encoded.

The "extractBookJson"(~line 102) function decodes this data to get the ToC en Spine data back, it follows the steps proposed by username1233414125 [How (s)he figured out these steps is still a mystery to me if someone knows the explanation of this I'd love to hear it]

next the "handleTitle" function (~line 131) extracts the required data from the ToC and Spine. In line 136 this function logs some of the source json to the console. when you look at this printed information some times the mp3 urls are shown as:

[Dewey part]/[long string 1]Fmt425-Partxx.mp3?cmpt=[long string 2]--[long string 3]

other times it shows:

[Dewey part]/[long string 1]Fmt425-Partxx.mp3?cmpt=[first part of long string 2]-[long string 3][last part of long string 2]-

in commit 00bb0f7 this second type failed because the code was looking for "--" and since this wasn't there it couldn't find al the parts needed to build the url.

then in commit 1141790 this second type gave a error because even though with the new regex it did find "long string 3" however when building the url it used only "-" instead of "--"which gave an invalid url.

I found this because the networks tab of the "Inspect tools" showed a url that was build like this"

[Dewey part]/[long string 1]Fmt425-Partxx.mp3?cmpt=[long string 2]-[long string 3]

So changing "${path_split[3]}" from line 176 into "--" will fix the problem. As path_split[3] will have the value '-' for the second case and thus generate an incomplete/incorrect url

@zorin1
Copy link
Contributor

zorin1 commented Sep 19, 2024

@JCroese What was the code change that you made? I only see 2 commits or are you waiting for @skittlesvampir to make the change?

path info is "scrambled" in de decoded spine
@JCroese
Copy link

JCroese commented Sep 19, 2024

@zorin1 to avoid duplicating pull request, I made one for the change to @skittlesvampir's repository, when he accepts, he can add that commit to this pull request.

fixed incorrect url generation for mp3 files whose
@skittlesvampir
Copy link
Author

@JCroese Sorry, I didn't have much time lately and didn't see your pull request. It's merged now.

@eric10k93
Copy link

@JCroese, thanks for the tip on debugging the add-on, this is all new to me. I managed to download some of the books that weren't working with this latest code change, but I'm still running into a few that aren't working... if anyone gets the chance to look, this is the response I am getting. I'll keep poking at it myself, but web development is nothing I am familiar with.

I get the response below from [background.ts:136:14](webpack://libby-download-extension/src/background.ts)
Then somewhere after that, in parsing the data, I get the error:
Error: TypeError: n is null

Media Request Response:
Got response {"title":{"main":"In the Shadow of Lightning","subtitle":"","collection":"Glass Immortals"},"creator":[{"name":"Brian McClellan","role":"author","bio":"Brian McClellan is an American epic fantasy author from Cleveland, Ohio. He is known for his acclaimed Powder Mage Universe and essays on the life and business of being a writer. Brian now lives on the side of a mountain in Utah with his wife, Michele, where he writes books and nurses a crippling video game addiction."},{"name":"Damian Lynch","role":"narrator","bio":""}],"description":{"full":"<p><b>From Brian McClellan, author of <i>The Powder Mage </i>trilogy, comes the first novel in the Glass Immortals series, <i>In the Shadow of Lightning</i>, an epic fantasy where magic is a finite resource—and it's running out.<br>\"Excellent worldbuilding and a truly epic narrative combine into Brian's finest work to date. Heartily recommended to anyone who wants a new favorite fantasy series to read.\"—Brandon Sanderson</b><br>Demir Grappo is an outcast—he fled a life of wealth and power, abandoning his responsibilities as a general, a governor, and a son. Now he will live out his days as a grifter, rootless, and alone. But when his mother is brutally murdered, Demir must return from exile to claim his seat at the head of the family and uncover the truth that got her killed: the very power that keeps civilization turning, godglass, is running out.<br>Now, Demir must find allies, old friends and rivals alike, confront the powerful guild-families who are only interested in making the most of the scraps left at the table and uncover the invisible hand that threatens the Empire. A war is coming, a war unlike any other. And Demir and his ragtag group of outcasts are the only thing that stands in the way of the end of life as the world knows it.<br><b>\"Powerful rival families, murderous conspiracies, epic battles, larger-than-life characters, and magic.\"—Fonda Lee, author of The Green Bone Saga<br>\"Engaging, fast-paced and epic.\"—James Islington, author of <i>In The Shadow of What Was Lost</i><br>\"Clever, fun, and by turns beautifully bloody, <i>In the Shadow of Lightning</i> hits like a bolt through a stained glass window.\"—Megan E. O'Keefe, author of <i>Chaos Vector</i></b></p>","short":"<p><b>From Brian McClellan, author of <i>The Powder Mage </i>trilogy, comes the first novel in the Glass Immortals series, <i>In the Shadow of Lightning</i>, an epic fantasy where magic is a finite resource—and it's running out.<br>\"Excellent worldbuilding and a truly epic narrative combine into Brian's finest work to date. Heartily recommended to anyone who wants a new favorite fantasy series to read.\"—Brandon Sanderson</b><br>Demir Grappo is an outcast—he fled a life of wealth and power, abandoning his responsibilities as a general, a governor, and a son. Now he will live out his days as a grifter, rootless, and alone. But when his mother is brutally murdered, Demir must return from exile to claim his seat at the head of the family and uncover the truth that got her killed: the very power that keeps civilization turning, godglass, is running out.<br>Now, Demir must find allies, old friends and rivals alike, confront the powerful guild-families who are only...</p>"},"language":"en","cover":{"front":{"media-type":"image/jpeg","-odread-file-bytes":87106,"-odread-width":510,"-odread-height":680,"-odread-aspect-ratio":0.75,"-odread-color":[1,0,0],"-odread-file-last-modified":"2024-03-25T15:24:19+00:00"}},"nav":{"toc":[{"title":"In the Shadow of Lightning","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part01.mp3"},{"title":"Dedication","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part01.mp3#31"},{"title":"A Brief Glossary of Common Godglass","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part01.mp3#38"},{"title":"Prologue","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part01.mp3#121"},{"title":"Chapter 1","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part01.mp3#2935"},{"title":"Chapter 2","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part02.mp3"},{"title":"Chapter 3","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part02.mp3#1708"},{"title":"Chapter 4","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part03.mp3"},{"title":"Chapter 5","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part03.mp3#1756"},{"title":"Chapter 6","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part04.mp3"},{"title":"Chapter 7","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part04.mp3#1710"},{"title":"Chapter 8","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part05.mp3"},{"title":"Chapter 9","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part05.mp3#1157"},{"title":"Chapter 10","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part05.mp3#2571"},{"title":"Chapter 11","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part06.mp3"},{"title":"Chapter 12","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part06.mp3#1735"},{"title":"Chapter 13","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part06.mp3#3108"},{"title":"Chapter 14","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part07.mp3"},{"title":"Chapter 15","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part07.mp3#2212"},{"title":"Chapter 16","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part08.mp3"},{"title":"Chapter 17","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part08.mp3#1324"},{"title":"Chapter 18","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part08.mp3#2573"},{"title":"Chapter 19","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part09.mp3"},{"title":"Chapter 20","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part09.mp3#1578"},{"title":"Chapter 21","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part09.mp3#2673"},{"title":"Chapter 22","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part10.mp3"},{"title":"Chapter 23","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part10.mp3#1500"},{"title":"Chapter 24","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part10.mp3#3309"},{"title":"Chapter 25","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part11.mp3"},{"title":"Chapter 26","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part11.mp3#1136"},{"title":"Chapter 27","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part11.mp3#2763"},{"title":"Chapter 28","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part12.mp3"},{"title":"Chapter 29","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part12.mp3#1558"},{"title":"Chapter 30","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part12.mp3#2522"},{"title":"Chapter 31","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part13.mp3"},{"title":"Chapter 32","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part13.mp3#1133"},{"title":"Chapter 33","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part13.mp3#2675"},{"title":"Chapter 34","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part14.mp3"},{"title":"Chapter 35","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part14.mp3#944"},{"title":"Chapter 36","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part14.mp3#2084"},{"title":"Chapter 37","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part15.mp3"},{"title":"Chapter 38","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part15.mp3#1375"},{"title":"Chapter 39","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part15.mp3#3479"},{"title":"Chapter 40","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part16.mp3"},{"title":"Chapter 41","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part16.mp3#1689"},{"title":"Chapter 42","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part16.mp3#2720"},{"title":"Chapter 43","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part17.mp3"},{"title":"Chapter 44","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part17.mp3#1149"},{"title":"Chapter 45","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part17.mp3#2262"},{"title":"Chapter 46","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part18.mp3"},{"title":"Chapter 47","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part18.mp3#1320"},{"title":"Chapter 48","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part18.mp3#2383"},{"title":"Chapter 49","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part18.mp3#3427"},{"title":"Chapter 50","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part19.mp3"},{"title":"Chapter 51","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part19.mp3#1348"},{"title":"Chapter 52","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part19.mp3#2818"},{"title":"Chapter 53","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part20.mp3"},{"title":"Chapter 54","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part20.mp3#1288"},{"title":"Chapter 55","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part20.mp3#1848"},{"title":"Chapter 56","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part20.mp3#3116"},{"title":"Chapter 57","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part21.mp3"},{"title":"Chapter 58","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part21.mp3#1110"},{"title":"Chapter 59","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part21.mp3#2482"},{"title":"Chapter 60","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part21.mp3#3670"},{"title":"Chapter 61","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part22.mp3"},{"title":"Chapter 62","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part22.mp3#422"},{"title":"Epilogue","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part22.mp3#2133"},{"title":"Closing","path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part22.mp3#3091"}]},"rendition-format":"audiobook","-odread-buid":"1a9d98f4a62b56463dacacb6db711f9b","-odread-crid":["96c79e87-2f00-423e-bc89-25b9698e4f21"],"spine":[{"path":"%7B96C79E87-2F00-423E-BC89-25B9698E4F21%7DFmt425-Part01.mp3?cmpt=eyJzcGluZ9eb016f6405dd9771c103e6a79aca96833405c3bSI6MH0%3D--","media-type":"audio/mpeg","audio-duration":4607.52975,"audio-bitrate":64,"-odread-spine-position":0,"-odread-file-bytes":36860238,"-odread-original-path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part01.mp3"},{"path":"%7B96C79E87-2F00-423E-BC89-25B9698E4F21%7DFmt425-Part02.mp3?cmpt=eyJzcGluZ714dff2f1e513a64c41cf89167c68c13d33581c7SI6MX0%3D--","media-type":"audio/mpeg","audio-duration":3724.2775,"audio-bitrate":64,"-odread-spine-position":1,"-odread-file-bytes":29794220,"-odread-original-path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part02.mp3"},{"path":"%7B96C79E87-2F00-423E-BC89-25B9698E4F21%7DFmt425-Part03.mp3?cmpt=eyJzcGluZ59f9dff11bc2c7bec0440d19a336c4b74fd23ad9SI6Mn0%3D--","media-type":"audio/mpeg","audio-duration":3196.813,"audio-bitrate":64,"-odread-spine-position":2,"-odread-file-bytes":25574504,"-odread-original-path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part03.mp3"},{"path":"%7B96C79E87-2F00-423E-BC89-25B9698E4F21%7DFmt425-Part04.mp3?cmpt=eyJzcGluZed70959048cd1f012d3f393c35fcb85a1f425717SI6M30%3D--","media-type":"audio/mpeg","audio-duration":3570.808125,"audio-bitrate":64,"-odread-spine-position":3,"-odread-file-bytes":28566465,"-odread-original-path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part04.mp3"},{"path":"%7B96C79E87-2F00-423E-BC89-25B9698E4F21%7DFmt425-Part05.mp3?cmpt=eyJzcGluZ8c80aeab68ed14e190a16d7922201e8182b4310bSI6NH0%3D--","media-type":"audio/mpeg","audio-duration":4462.02775,"audio-bitrate":64,"-odread-spine-position":4,"-odread-file-bytes":35696222,"-odread-original-path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part05.mp3"},{"path":"%7B96C79E87-2F00-423E-BC89-25B9698E4F21%7DFmt425-Part06.mp3?cmpt=eyJzcGluZf9e5cb9457673ebf3b15295d4c0fb7b437a7dedcSI6NX0%3D--","media-type":"audio/mpeg","audio-duration":4195.448125,"audio-bitrate":64,"-odread-spine-position":5,"-odread-file-bytes":33563585,"-odread-original-path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part06.mp3"},{"path":"%7B96C79E87-2F00-423E-BC89-25B9698E4F21%7DFmt425-Part07.mp3?cmpt=eyJzcGluZe8968d196c9bed09b0b530b2d9ea2182df992279SI6Nn0%3D--","media-type":"audio/mpeg","audio-duration":3499.6505,"audio-bitrate":64,"-odread-spine-position":6,"-odread-file-bytes":27997204,"-odread-original-path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part07.mp3"},{"path":"%7B96C79E87-2F00-423E-BC89-25B9698E4F21%7DFmt425-Part08.mp3?cmpt=eyJzcGluZ28a145948c03b5a10ac83dc4ecd0209584a791f8SI6N30%3D--","media-type":"audio/mpeg","audio-duration":4214.7265,"audio-bitrate":64,"-odread-spine-position":7,"-odread-file-bytes":33717812,"-odread-original-path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part08.mp3"},{"path":"%7B96C79E87-2F00-423E-BC89-25B9698E4F21%7DFmt425-Part09.mp3?cmpt=eyJzcGluZbf8a9a9b4567ee5840c438f81a2d708d7a141b83SI6OH0%3D--","media-type":"audio/mpeg","audio-duration":4402.155,"audio-bitrate":64,"-odread-spine-position":8,"-odread-file-bytes":35217240,"-odread-original-path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part09.mp3"},{"path":"%7B96C79E87-2F00-423E-BC89-25B9698E4F21%7DFmt425-Part10.mp3?cmpt=eyJzcGluZd35c2e8f2526ab6287292e7c91f3a7a8112f9905SI6OX0%3D--","media-type":"audio/mpeg","audio-duration":4257.332125,"audio-bitrate":64,"-odread-spine-position":9,"-odread-file-bytes":34058657,"-odread-original-path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part10.mp3"},{"path":"%7B96C79E87-2F00-423E-BC89-25B9698E4F21%7DFmt425-Part11.mp3?cmpt=eyJzcGluZ5ad72f99b7feef5ae6b8e9e8a6d2ca546ca00bd3SI6MTB9--","media-type":"audio/mpeg","audio-duration":4533.733875,"audio-bitrate":64,"-odread-spine-position":10,"-odread-file-bytes":36269871,"-odread-original-path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part11.mp3"},{"path":"%7B96C79E87-2F00-423E-BC89-25B9698E4F21%7DFmt425-Part12.mp3?cmpt=eyJzcGluZ39308eb8228478bc41ecd081ea43568969711c39SI6MTF9--","media-type":"audio/mpeg","audio-duration":4363.885625,"audio-bitrate":64,"-odread-spine-position":11,"-odread-file-bytes":34911085,"-odread-original-path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part12.mp3"},{"path":"%7B96C79E87-2F00-423E-BC89-25B9698E4F21%7DFmt425-Part13.mp3?cmpt=eyJzcGluZde729831e80977d627688dcb5056239fa5254e62SI6MTJ9--","media-type":"audio/mpeg","audio-duration":4336.666,"audio-bitrate":64,"-odread-spine-position":12,"-odread-file-bytes":34693328,"-odread-original-path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part13.mp3"},{"path":"%7B96C79E87-2F00-423E-BC89-25B9698E4F21%7DFmt425-Part14.mp3?cmpt=eyJzcGluZae4f291aa0c35381f29f097fbe40c4774da3a862SI6MTN9--","media-type":"audio/mpeg","audio-duration":3665.76325,"audio-bitrate":64,"-odread-spine-position":13,"-odread-file-bytes":29326106,"-odread-original-path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part14.mp3"},{"path":"%7B96C79E87-2F00-423E-BC89-25B9698E4F21%7DFmt425-Part15.mp3?cmpt=eyJzcGluZd699d819cdeb40d57c66921dbb06ac2ba278ebb4SI6MTR9--","media-type":"audio/mpeg","audio-duration":4615.653875,"audio-bitrate":64,"-odread-spine-position":14,"-odread-file-bytes":36925231,"-odread-original-path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part15.mp3"},{"path":"%7B96C79E87-2F00-423E-BC89-25B9698E4F21%7DFmt425-Part16.mp3?cmpt=eyJzcGluZ6b2c66f20721771bf51d42d1d766d22edb736a51SI6MTV9--","media-type":"audio/mpeg","audio-duration":4053.133,"audio-bitrate":64,"-odread-spine-position":15,"-odread-file-bytes":32425064,"-odread-original-path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part16.mp3"},{"path":"%7B96C79E87-2F00-423E-BC89-25B9698E4F21%7DFmt425-Part17.mp3?cmpt=eyJzcGluZfcf74bac62f86f22787f9a7a63ef37f00ed62786SI6MTZ9--","media-type":"audio/mpeg","audio-duration":3777.071,"audio-bitrate":64,"-odread-spine-position":16,"-odread-file-bytes":30216568,"-odread-original-path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part17.mp3"},{"path":"%7B96C79E87-2F00-423E-BC89-25B9698E4F21%7DFmt425-Part18.mp3?cmpt=eyJzcGluZ016b2030fbd02ea00e98b161658fb9a6246cec33SI6MTd9--","media-type":"audio/mpeg","audio-duration":4651.8595,"audio-bitrate":64,"-odread-spine-position":17,"-odread-file-bytes":37214876,"-odread-original-path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part18.mp3"},{"path":"%7B96C79E87-2F00-423E-BC89-25B9698E4F21%7DFmt425-Part19.mp3?cmpt=eyJzcGluZbff5808e92961d2e1c8067c0d028acc82de62261SI6MTh9--","media-type":"audio/mpeg","audio-duration":3532.12075,"audio-bitrate":64,"-odread-spine-position":18,"-odread-file-bytes":28256966,"-odread-original-path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part19.mp3"},{"path":"%7B96C79E87-2F00-423E-BC89-25B9698E4F21%7DFmt425-Part20.mp3?cmpt=eyJzcGluZ56b19a799c36fe1c74849c858ef7b5df7dee8543SI6MTl9--","media-type":"audio/mpeg","audio-duration":4514.664375,"audio-bitrate":64,"-odread-spine-position":19,"-odread-file-bytes":36117315,"-odread-original-path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part20.mp3"},{"path":"%7B96C79E87-2F00-423E-BC89-25B9698E4F21%7DFmt425-Part21.mp3?cmpt=eyJzcGluZ9ae59e5dc595ebd7eaa867a545ab0c9449d8cdf2SI6MjB9--","media-type":"audio/mpeg","audio-duration":4319.00725,"audio-bitrate":64,"-odread-spine-position":20,"-odread-file-bytes":34552058,"-odread-original-path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part21.mp3"},{"path":"%7B96C79E87-2F00-423E-BC89-25B9698E4F21%7DFmt425-Part22.mp3?cmpt=eyJzcGluZa4728fc869d4aac1ff142b9656141ad7dc42c388SI6MjF9--","media-type":"audio/mpeg","audio-duration":3136.470125,"audio-bitrate":64,"-odread-spine-position":21,"-odread-file-bytes":25091761,"-odread-original-path":"{96C79E87-2F00-423E-BC89-25B9698E4F21}Fmt425-Part22.mp3"}],"-odread-tan":1,"-odread-bank-scope":"title-1a9d98f4a","-odread-bank-verification-token":"93a0ba822fbff460e0da76980bff5aee61c7a70b752d6222","-odread-anchor":null,"-odread-furbish-uri":"/_d/cover/buid/1a9d98f4a62b56463dacacb6db711f9b","-odread-cover-color":[1,0,0],"-odread-cover-ratio":0.75,"-odread-msg-access":"f","-odread-msg-expires":1727654399,"-odread-msg-sync":true,"-odread-bonafides-m":"eyJ0aW1lIjoxNzI3MzAxMjgzLjc3MDk3NiwidGhlbWUiOiJkZXdleSIsImV4cGlyZXMiOjE3Mjc2NTQzOTksImFjY2VzcyI6ImYiLCJ0ZGF0YSI6eyJjb2RleCI6eyJ0aXRsZSI6eyJ0aXRsZUlkIjoiNjUyNDY5NiIsInNsdWciOiI2NTI0Njk2IiwiY292ZXIiOnsiaW1hZ2VVUkwiOiJodHRwczovL2xpYmJ5YXBwLmNvbS9jb3ZlcnMvcmVzaXplP3R5cGU9YXV0byZ3aWR0aD01MzYmcXVhbGl0eT04MCZmb3JjZT10cnVlJmhlaWdodD01MzYmdXJsPSUyRkltYWdlVHlwZS00MDAlMkYxNDkzLTElMkYlMjU3Qjk2Qzc5RTg3LTJGMDAtNDIzRS1CQzg5LTI1Qjk2OThFNEYyMSUyNTdESU1HNDAwLkpQRyIsImNvbG9yIjoiIzAwMDAwMCJ9fSwibG9hbiI6eyJwc25LZXkiOiI2NzA5NTU4Mi02NTI0Njk2Iiwic2x1ZyI6IjY3MDk1NTgyLTY1MjQ2OTYifSwibGlicmFyeSI6eyJrZXkiOiJ1dGFoc29ubGluZWxpYnJhcnktZGF2aXNjb3VudHkiLCJuYW1lIjoiQmVlaGl2ZSBMaWJyYXJ5IENvbnNvcnRpdW0iLCJsb2dvVVJMIjoiaHR0cHM6Ly90aHVuZGVyLmNkbi5vdmVyZHJpdmUuY29tL2xvZ28tcmVzaXplZC8xNTA2PzE1ODk5OTEzOTUiLCJjb2xvcnMiOlsiIzAwNjRkMyIsIiNmNjUxMWQiXX19LCJkZXdleS11cmwiOiJodHRwczovL2xpYmJ5YXBwLmNvbSIsInNwZWMiOiJWMjQiLCJ0aHVuZGVyIjoiaHR0cHM6Ly90aHVuZGVyLmFwaS5vdmVyZHJpdmUuY29tIn0sImdyYW50cyI6WyJyZWFkIl0sImF1dGhfdXJsIjoiaHR0cHM6Ly9zZW50cnkubGliYnlhcHAuY29tL29wZW4vYXV0aC9lZTU1ZWE1Mi04N2UyLTRjOTItOWEzMi03MDAzZDVjNGMwMWMiLCJ1cmkiOiJodHRwczovL2xpc3Rlbi5saWJieWFwcC5jb20iLCJidWlkIjoiMWE5ZDk4ZjRhNjJiNTY0NjNkYWNhY2I2ZGI3MTFmOWIiLCJ0b2tlbiI6IjkzYTBiYTgyMmZiZmY0NjBlMGRhNzY5ODBiZmY1YWVlNjFjN2E3MGI3NTJkNjIyMiIsInN5bmMiOjF9","-odread-bonafides-s":"3605ef58b8359d61f73582acf48ce4d33b8ee2db","-odread-bonafides-d":"eyJvdXRsZXQiOiJsaXN0ZW4iLCJ0b2tlbiI6IjkzYTBiYTgyMmZiZmY0NjBlMGRhNzY5ODBiZmY1YWVlNjFjN2E3MGI3NTJkNjIyMiIsImFjY2VzcyI6ImYiLCJleHBpcmVzIjoxNzI3NjU0Mzk5LCJ0aGVtZSI6ImRld2V5Iiwic3luYyI6MSwicHBhcmFtIjoibGliLTMxNSIsInRkYXRhIjp7ImNvZGV4Ijp7InRpdGxlIjp7InRpdGxlSWQiOiI2NTI0Njk2Iiwic2x1ZyI6IjY1MjQ2OTYiLCJjb3ZlciI6eyJpbWFnZVVSTCI6Imh0dHBzOi8vbGliYnlhcHAuY29tL2NvdmVycy9yZXNpemU/dHlwZT1hdXRvJndpZHRoPTUzNiZxdWFsaXR5PTgwJmZvcmNlPXRydWUmaGVpZ2h0PTUzNiZ1cmw9JTJGSW1hZ2VUeXBlLTQwMCUyRjE0OTMtMSUyRiUyNTdCOTZDNzlFODctMkYwMC00MjNFLUJDODktMjVCOTY5OEU0RjIxJTI1N0RJTUc0MDAuSlBHIiwiY29sb3IiOiIjMDAwMDAwIn19LCJsb2FuIjp7InBzbktleSI6IjY3MDk1NTgyLTY1MjQ2OTYiLCJzbHVnIjoiNjcwOTU1ODItNjUyNDY5NiJ9LCJsaWJyYXJ5Ijp7ImtleSI6InV0YWhzb25saW5lbGlicmFyeS1kYXZpc2NvdW50eSIsIm5hbWUiOiJCZWVoaXZlIExpYnJhcnkgQ29uc29ydGl1bSIsImxvZ29VUkwiOiJodHRwczovL3RodW5kZXIuY2RuLm92ZXJkcml2ZS5jb20vbG9nby1yZXNpemVkLzE1MDY/MTU4OTk5MTM5NSIsImNvbG9ycyI6WyIjMDA2NGQzIiwiI2Y2NTExZCJdfX0sImRld2V5LXVybCI6Imh0dHBzOi8vbGliYnlhcHAuY29tIiwic3BlYyI6IlYyNCIsInRodW5kZXIiOiJodHRwczovL3RodW5kZXIuYXBpLm92ZXJkcml2ZS5jb20ifSwidGltZSI6MTcyNzMwMTI4MywiZ3JhbnRzIjpbInJlYWQiXSwiYXV0aF91cmwiOiJodHRwczovL3NlbnRyeS5saWJieWFwcC5jb20vb3Blbi9hdXRoL2VlNTVlYTUyLTg3ZTItNGM5Mi05YTMyLTcwMDNkNWM0YzAxYyIsImJ1aWQiOiIxYTlkOThmNGE2MmI1NjQ2M2RhY2FjYjZkYjcxMWY5YiIsIl9jIjoiMTcyNzMwMTI4NDAwOSJ9--46c7ebf02b06547707e5678a87e1ce3e15271d9f","-odread-bonafides-p":"lib-315","-odread-uilinks":{"HELPCOMPAT":"http://help.overdrive.com/customer/portal/articles/1481258"}} background.ts:136:14

@mjpking
Copy link

mjpking commented Sep 26, 2024 via email

@JCroese
Copy link

JCroese commented Sep 26, 2024

@eric10k93 it seems like you encountered yet another way of scrambling the url, not yet handled by the previous regex. Because for this url version there is no "-" or "--" in the middle, path_split[4] will be empty and thus the error is raised.

As I have no smart idea right now how to edit the regex, to include this option as well, adding an if statement to catch this version serves as a quick fix. commited here: bc100df

tested on books with all 3 url versions

@eric10k93
Copy link

@JCroese, awesome! I just tested this fix with 3 books I had that were failing and they worked great! Thanks!

Jared Croese and others added 2 commits September 27, 2024 10:37
Added if statement to handle urls ending with "--"
@JCroese
Copy link

JCroese commented Oct 2, 2024

Is it just me or did they change the place of the spine information again? Cause for me the extension is currently not working, the script fails when trying to find the embedded encoded string

@mjpking
Copy link

mjpking commented Oct 4, 2024 via email

@zorin1
Copy link
Contributor

zorin1 commented Oct 8, 2024

@poehlert @skittlesvampir @JCroese Anyone figure out a solution yet?

@JCroese
Copy link

JCroese commented Oct 8, 2024

@zorin1 nothing solid yet. The only thing I might have found is that the html response of the https://dewey-[string1].listen.libbyapp.com/?m=[string2] request has a <script> section which half way through has some encoded data starting with "window.eData=[" that might be some type of comma separated values, However I have know clue at all what type of encoding was used.

@eric10k93
Copy link

eric10k93 commented Oct 22, 2024

Looks to me like they just straight blocked the Firefox browser... I keep getting the error "access to this magazine is not allowed with your active library card"... funny error, since they are audiobooks, not magazines, and I can access everything fine on Edge browser.

EDIT: Scratch that... I get the error regardless of browser.

@skittlesvampir
Copy link
Author

Looks to me like they just straight blocked the Firefox browser... I keep getting the error "access to this magazine is not allowed with your active library card"... funny error, since they are audiobooks, not magazines, and I can access everything fine on Edge browser.

EDIT: Scratch that... I get the error regardless of browser.

@eric10k93 is there any way I can contact you in private?

@eric10k93
Copy link

Looks to me like they just straight blocked the Firefox browser... I keep getting the error "access to this magazine is not allowed with your active library card"... funny error, since they are audiobooks, not magazines, and I can access everything fine on Edge browser.
EDIT: Scratch that... I get the error regardless of browser.

@eric10k93 is there any way I can contact you in private?

I just made sure my email is public on my profile. Feel free to contact me there first.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Loading State Failed
9 participants