nicohaenggi / safaribooks-downloader Goto Github PK
View Code? Open in Web Editor NEWa SafariBooksOnline downloader that generates respective .epub books for offline and kindle reading
Home Page: https://learning.oreilly.com/
License: MIT License
a SafariBooksOnline downloader that generates respective .epub books for offline and kindle reading
Home Page: https://learning.oreilly.com/
License: MIT License
Unable to display ToC in Edge's built in ToC viewer. Happened once out of two instances of different books
Currently, this application only supports epub for output format.
PDF support?
I want to call safaribooks-downloader <all options>
in a .py file.
I get this error after downloading table of content files
RequestError: Error: connect ETIMEDOUT 151.101.113.132:443
Hello!
I have found that when reading the epub book in Calibre, the book scrolls down the chapters, but the pages move diagonally to the left, then when the page reaches the far left, the next one starts from the right and the process repeats. Have you ran into this before when attempting to read the EPUB books?
I'd love some help if possible!
$ node -v
v8.7.0
$ npm -v
5.4.2
$ npm install
npm WARN deprecated [email protected]: Use mz or fs-extra^3.0 with Promise Support
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN [email protected] No repository field.
added 163 packages in 7.251s
$ safaribooks-downloader --version
-bash: safaribooks-downloader: command not found
$ safaribooks-downloader -d -b 9781484224427 -u yyy -p xxx -o testbook.epub
[safari-downloader] starting application...
{ request:
{ debugId: 1,
uri: 'https://www.safaribooksonline.com/oauth2/access_token/',
method: 'POST',
headers:
{ host: 'www.safaribooksonline.com',
'content-type': 'application/x-www-form-urlencoded',
accept: 'application/json',
'content-length': 144 },
body:
'client_id=446a8a270214734f42a7&client_secret=f52b3e30b68c1820adb08609c799cb6da1c29975&grant_type=password&username=yyy&password=xxx' } }
{ response:
{ debugId: 1,
headers:
{ 'content-type': 'text/html',
location: 'https://www.oreilly.com/oauth2/access_token/',
'content-length': '0',
'accept-ranges': 'bytes',
date: 'Fri, 12 Apr 2019 10:02:08 GMT',
via: '1.1 varnish',
connection: 'close',
'x-client-ip': '159.255.187.94',
'x-served-by': 'cache-hhn1549-HHN',
'x-cache': 'MISS',
'x-cache-hits': '0',
'x-timer': 'S1555063328.898212,VS0,VE152' },
statusCode: 302,
body: undefined } }
[safari-downloader] StatusCodeError: 302 - undefined
After a few download that working properly, i get this error message every time i try to download.
undefined:1
SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
at Object.<anonymous> (/home/user_name/SafariBooks-Downloader/lib/cli/index.js:27:28)
at Module._compile (internal/modules/cjs/loader.js:736:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:747:10)
at Module.load (internal/modules/cjs/loader.js:628:32)
at tryModuleLoad (internal/modules/cjs/loader.js:568:12)
at Function.Module._load (internal/modules/cjs/loader.js:560:3)
at Module.require (internal/modules/cjs/loader.js:665:17)
at require (internal/modules/cjs/helpers.js:20:18)
at Object.<anonymous> (/home/user_name/SafariBooks-Downloader/index.js:11:18)
at Module._compile (internal/modules/cjs/loader.js:736:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:747:10)
at Module.load (internal/modules/cjs/loader.js:628:32)
at tryModuleLoad (internal/modules/cjs/loader.js:568:12)
at Function.Module._load (internal/modules/cjs/loader.js:560:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:801:12)
at executeUserCode (internal/bootstrap/node.js:526:15)
at startMainThreadExecution (internal/bootstrap/node.js:439:3)
I have an account with ACM with which I can use to access Safari Books, but I can't use it with the downloader. Probably because of the fact that I get redirected to enter my ACM credentials.
Hy guys, is there is a way to setup a proxy, problems with conexion. thanks,
{ request:
{ debugId: 1,
uri: 'https://www.safaribooksonline.com/oauth2/access_token/',
method: 'POST',
headers:
{ host: 'www.safaribooksonline.com',
'content-type': 'application/x-www-form-urlencoded',
accept: 'application/json',
'content-length': 164 },
body:
{ response:
{ debugId: 1,
headers:
{ 'content-type': 'text/html',
location: 'https://www.oreilly.com/oauth2/access_token/',
'content-length': '0',
'accept-ranges': 'bytes',
date: 'Mon, 01 Apr 2019 20:44:10 GMT',
via: '1.1 varnish',
connection: 'close',
'x-client-ip': '200.87.95.220',
'x-served-by': 'cache-scl19420-SCL',
'x-cache': 'MISS',
'x-cache-hits': '0',
'x-timer': 'S1554151450.906593,VS0,VE191' },
statusCode: 302,
body: undefined } }
[safari-downloader] StatusCodeError: 302 - undefined
Very sorry to come back over here for answer, pardon me /\
Just one quick question.
Does an epub file require internet connection for all of the (including images, links etc) contents to load?
get-safari 9781785280849 "Scala and Spark for Big Data Analytics" ✔ 5653 01:20:42
[safari-downloader] starting application...
[safari-downloader] the user "[email protected]" was successfully authorized...
[safari-downloader] downloaded meta files...
[safari-downloader] downloaded table of content files...
[safari-downloader] StatusCodeError: 503 - "\n<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n\n<!DOCTYPE html>\n<html lang='en'>\n<head>\n<title>Site unavailable</title>\n<meta charset='UTF-8'>\n<meta name='description' content='Error page for Safari'/>\n<link href='https://fonts.googleapis.com/css?family=Source+Sans Pro:200italic,200,300italic,300,400italic,400,600italic,600,700italic,700,900italic,900' rel='stylesheet' type='text/css'>\n<link href='https://storage.googleapis.com/safari-fastly-objects/css/error.css' rel='stylesheet' type='text/css'>\n<meta name='viewport' content='width=device-width, initial-scale=1.0'>\n<script>\n (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),\n m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n })(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n\n ga('create', 'UA-39299553-7', 'auto');\n ga('send', 'pageview');\n ga('send', 'event', 'Error', 'Varnish', '900', {'nonInteraction': 1});\n</script>\n<style>\n body {\n margin: 0;\n }\n header {\n background-color: #b9002d;\n padding:7px 0 6px 10px;\n margin-bottom: 15px;\n text-align: left;\n }\n header svg {\n fill: #fff;\n display: block;\n width: 73px;\n height: 13px;\n }\n h1 {\n font-size: 3em;\n max-width: 800px;\n line-height: 1em;\n margin-bottom: 20px;\n }\n h2 {\n font-size: 2em;\n max-width: 800px;\n margin-bottom: 40px;\n }\n @media (max-width: 600px) {\n h1 {\n font-size: 2em;\n max-width: 75%;\n }\n h2 {\n font-size: 1.5em;\n }\n }\n h1,\n h2 {\n font-family: 'Source Sans Pro', Helvetica, Arial, sans-serif;\n font-weight: 200;\n color: #695545;\n padding: 0 20px 0;\n }\n a, a:link, a:active, a:hover, a:visited {\n color: #4a3c31;\n }\n</style>\n</head>\n<body>\n<header>\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 60 10\" width=\"78\" height=\"13\"><desc>O'Reilly logo</desc><polygon points=\"28.09 1.96 28.09 0.42 21.68 0.42 21.68 9.64 28.09 9.64 28.09 8.11 23.22 8.11 23.22 5.8 27.86 5.8 27.86 4.27 23.22 4.27 23.22 1.96 28.09 1.96\"></polygon><polygon points=\"32.85 9.64 32.85 0.42 34.39 0.42 34.39 8.11 38.82 8.11 38.82 9.64 32.85 9.64\"></polygon><polygon points=\"40.07 9.64 40.07 0.42 41.61 0.42 41.61 8.11 46.04 8.11 46.04 9.64 40.07 9.64\"></polygon><rect x=\"29.71\" y=\"0.42\" width=\"1.54\" height=\"9.22\"></rect><path d=\"M1.59,6.28a4.8,4.8,0,1,1,4.8,4.8,4.8,4.8,0,0,1-4.8-4.8M4.09,4A3.27,3.27,0,1,0,6.4,3,3.27,3.27,0,0,0,4.09,4\" transform=\"translate(-1.59 -1.2)\"></path><path d=\"M19.82,6.89A2.69,2.69,0,0,0,19,1.62H14.41v9.22h1.54V7h2.14l2.32,3.84H22.2ZM15.95,5.47V3.16H19a1.15,1.15,0,0,1,0,2.31h-3.1Z\" transform=\"translate(-1.59 -1.2)\"></path><path d=\"M13.32,2.61a1.13,1.13,0,1,1-1.13-1.13,1.13,1.13,0,0,1,1.13,1.13\" transform=\"translate(-1.59 -1.2)\"></path><polygon points=\"52.9 0.42 51.03 0.42 48.66 3.85 46.3 0.42 44.43 0.42 47.89 5.44 47.89 9.64 49.43 9.64 49.43 5.44 52.9 0.42\"></polygon><path d=\"M58.31,1.2a2.41,2.41,0,1,0,2.41,2.42A2.42,2.42,0,0,0,58.31,1.2m0,4.44a2,2,0,1,1,2-2,2,2,0,0,1-2,2\" transform=\"translate(-1.59 -1.2)\"></path><path d=\"M59.4,3.09a0.72,0.72,0,0,0-.72-0.72H57.32V4.83h0.41v-1h0.69l0.49,1h0.46l-0.51-1a0.71,0.71,0,0,0,.54-0.69m-1.67-.31h0.95a0.31,0.31,0,0,1,.31.31,0.31,0.31,0,0,1-.31.3H57.73V2.78Z\" transform=\"translate(-1.59 -1.2)\"></path></svg>\n</header>\n<section>\n\n <h1>Houston, we have a problem.</h1>\n\n <h2>Sorry for the inconvenience. Please try again. For additional help, please contact our customer service team at <a href=\"tel:+1-800-889-8969\" aria-label=\"1. 8 0 0. 8 8 9. 8 9 6 9.\" style=\"white-space:nowrap;\">1-800-889-8969</a>, <a href=\"tel:+1-707-827-7019\" aria-label=\"7 0 7. 8 2 7. 7 0 1 9.\" style=\"white-space:nowrap;\">707-827-7019</a>, or <a href=\"mailto:[email protected]\">[email protected]</a></h2>\n\n <img src='https://storage.googleapis.com/safari-fastly-objects/img/cog.png' />\n </section>\n</body>\n</html>\n"
It works for other books, just this one is buggy.
Hello I am getting an error safari-downloader] StatusCodeError: 400 - {"error":"invalid_grant","error_description":"Invalid credentials given."}
I have corporate account on safari - it means when sign in into safari online I can only fill in username/email and immediately I am redirected to corporate sign in page to authorise - can it be solved somehow in safari downloader?
First of all thank you for putting the time and effort to make this tool and share it with the community.
One of the main issues I see is to be able to follow the chapters from the compressed file. Obviously we don’t have a way to sort the files e.g by download time as the time stamp will likely be all the same.
So I am thinking if you have had considered to make something for this,
Many thanks,
Kind regards,
Federico.
[safari-downloader] starting application...
[safari-downloader] the user "ccuty_07" was successfully authorized...
[safari-downloader] downloaded meta files...
[safari-downloader] downloaded table of content files...
[safari-downloader] downloaded chapter files...
[safari-downloader] downloaded stylesheet files...
events.js:163
throw er; // Unhandled 'error' event
^
Error: EISDIR: illegal operation on a directory, open '.'
I got this error while downloading few of the books
[safari-downloader] downloaded meta files...
[safari-downloader] downloaded table of content files...
[safari-downloader] downloaded chapter files...
[safari-downloader] an error occurred while fetching stylesheets. there are 3 different stylesheets. only supporting one. the layout may be different from the one online. sorry for that.
[safari-downloader] downloaded stylesheet files...
[safari-downloader] an error occurred while trying to download all the image assets (err: RequestError: getaddrinfo ENOTFOUND www.safaribooksonline.com www.safaribooksonline.com:443)
In youtube-dl we can download multiple video with a batch file.
Is there anything like that in this application.
The epub format is not valid according to https://github.com/idpf/epubcheck and http://validator.idpf.org/application/validate.
[safari-downloader] the user "[email protected]" was successfully authorized...
[safari-downloader] downloaded meta files...
[safari-downloader] downloaded table of content files...
[safari-downloader] downloaded chapter files...
[safari-downloader] an error occurred while fetching stylesheets. there are 3 different stylesheets. only supporting one. the layout may be different from the one online. sorry for that.
[safari-downloader] downloaded stylesheet files...
[safari-downloader] epub successfully saved. exiting...
I am trying with correct credentials but its giving me Invalid Credentials Given
Error.
StatusCodeError: 400 - {"error":"invalid_grant","error_description":"Invalid credentials given."}
I have a SSO account setup with Safari, so I can't specify a password. When logging into Safari, after typing in my email I am redirected to my SSO screen to login with my credentials. Ultimately would love some form of being able to specify that I use SSO and have SafariBooks-Downloader pop up a browser window for me to log in and capture the cookie returned for subsequent requests.
figured it out
I'm trying to download a book with the help of the guidelines mentioned in the documentation. Below is the code which I'm running:
safaribooks-downloader -b 97777777777777 -u [email protected] -p password -o ~/book.epub
I'm getting the below error:
[safari-downloader] starting application...
[safari-downloader] StatusCodeError: 400 - {"error":"invalid_grant","error_description":"Invalid credentials given."}
As per the error description, it's not the case, as I'm giving the correct credentials.
Note: The Safari-Books Online account is a Personal Trial Account.
It would be great if the app had an option to list the books (titles, ids) from the queue, saving a trip to the website.
P.S: Thanks for making a very neat and useable tool!
$ safaribooks-downloader -b 9781492054498 -u [email protected] -p xxxxx -o testbook.epub
[safari-downloader] starting application...
[safari-downloader] the user "[email protected]" was successfully authorized...
[safari-downloader] StatusCodeError: 403 - {"detail":"You do not have permission to perform this action."}
i checked my account and i can open any book by webpage
attempting to execute the following results in StatusCodeError: 302 - undefined
This is caused by the incorrect baseurl in index.js (as resolved by #54)
safaribooks-downloader -b 9781449368098 -u removed -p removed -o E:\DATA\EBOOKS\testbook.epub
C:\dev\SafariBooks-Downloader-master>safaribooks-downloader -b 9781787125933 -o "Python Machine Learning.epub"
[safari-downloader] starting application...
[safari-downloader] the user "[email protected]" was successfully authorized...
[safari-downloader] downloaded meta files...
[safari-downloader] downloaded table of content files...
[safari-downloader] downloaded chapter files...
[safari-downloader] downloaded stylesheet files...
[safari-downloader] an error occurred while trying to download all the image assets (err: RequestError: connect ETIMEDOUT 151.101.13.132:443)
Some books use image names like inline001.gif in every chapter, and that causes problems, as they overwrite each other.
I have made a quick fix, that seems to work, but it is not very elegant.
--- a/lib/ebook-writer/index.js
+++ b/lib/ebook-writer/index.js
@@ -91,7 +91,7 @@ function _writeChapters(that) {
var newLocation = image;
if(pathArray.length > 1) {
// ### overwriting new path
newLocation = pathArray[pathArray.length -1];
newLocation = chapter.fileName+pathArray[pathArray.length -1];
}
chapterContent = chapterContent.replace(re, `"images/${newLocation}"`);
newLocation = pathArray[pathArray.length -1];
newLocation = chapter.fileName+pathArray[pathArray.length -1];
}
images.push({ baseUrl: baseUrl, file: image, media: mime.lookup(image), path: newLocation });
safaribooks-downloader -b 9781484224427 -u nicohaenggi -p MySuperSecurePassword -o /Users/wasuser/Desktop/was.epub
[safari-downloader] starting application...
[safari-downloader] RequestError: Error: certificate is not yet valid
When trying to download immediately the app throws error
Hi I am getting this error for some books (e.g. 9781787281868, 9781788398237, 9781787128453) some others works fine.
[safari-downloader] downloaded meta files... [safari-downloader] downloaded table of content files... [safari-downloader] StatusCodeError: 503 - "\n<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n\n<!DOCTYPE html>\n<html lang='en'>\n<head>\n<title>Site unavailable</title>\n<meta charset='UTF-8'>\n<meta name='description' content='Error page for Safari'/>\n<link href='https://fonts.googleapis.com/css?family=Source+Sans Pro:200italic,200,300italic,300,400italic,400,600italic,600,700italic,700,900italic,900' rel='stylesheet' type='text/css'>\n<link href='https://storage.googleapis.com/safari-fastly-objects/css/error.css' rel='stylesheet' type='text/css'>\n<meta name='viewport' content='width=device-width, initial-scale=1.0'>\n<script>\n (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),\n m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n })(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n\n ga('create', 'UA-39299553-7', 'auto');\n ga('send', 'pageview');\n ga('send', 'event', 'Error', 'Varnish', '503', {'nonInteraction': 1});\n</script>\n<style>\n body {\n margin: 0;\n }\n header {\n background-color: #b9002d;\n padding:7px 0 6px 10px;\n margin-bottom: 15px;\n text-align: left;\n }\n header svg {\n fill: #fff;\n display: block;\n width: 73px;\n height: 13px;\n }\n h1 {\n font-size: 3em;\n max-width: 800px;\n line-height: 1em;\n margin-bottom: 20px;\n }\n h2 {\n font-size: 2em;\n max-width: 800px;\n margin-bottom: 40px;\n }\n @media (max-width: 600px) {\n h1 {\n font-size: 2em;\n max-width: 75%;\n }\n h2 {\n font-size: 1.5em;\n }\n }\n h1,\n h2 {\n font-family: 'Source Sans Pro', Helvetica, Arial, sans-serif;\n font-weight: 200;\n color: #695545;\n padding: 0 20px 0;\n }\n a, a:link, a:active, a:hover, a:visited {\n color: #4a3c31;\n }\n</style>\n</head>\n<body>\n<header>\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 60 10\" width=\"78\" height=\"13\"><desc>O'Reilly logo</desc><polygon points=\"28.09 1.96 28.09 0.42 21.68 0.42 21.68 9.64 28.09 9.64 28.09 8.11 23.22 8.11 23.22 5.8 27.86 5.8 27.86 4.27 23.22 4.27 23.22 1.96 28.09 1.96\"></polygon><polygon points=\"32.85 9.64 32.85 0.42 34.39 0.42 34.39 8.11 38.82 8.11 38.82 9.64 32.85 9.64\"></polygon><polygon points=\"40.07 9.64 40.07 0.42 41.61 0.42 41.61 8.11 46.04 8.11 46.04 9.64 40.07 9.64\"></polygon><rect x=\"29.71\" y=\"0.42\" width=\"1.54\" height=\"9.22\"></rect><path d=\"M1.59,6.28a4.8,4.8,0,1,1,4.8,4.8,4.8,4.8,0,0,1-4.8-4.8M4.09,4A3.27,3.27,0,1,0,6.4,3,3.27,3.27,0,0,0,4.09,4\" transform=\"translate(-1.59 -1.2)\"></path><path d=\"M19.82,6.89A2.69,2.69,0,0,0,19,1.62H14.41v9.22h1.54V7h2.14l2.32,3.84H22.2ZM15.95,5.47V3.16H19a1.15,1.15,0,0,1,0,2.31h-3.1Z\" transform=\"translate(-1.59 -1.2)\"></path><path d=\"M13.32,2.61a1.13,1.13,0,1,1-1.13-1.13,1.13,1.13,0,0,1,1.13,1.13\" transform=\"translate(-1.59 -1.2)\"></path><polygon points=\"52.9 0.42 51.03 0.42 48.66 3.85 46.3 0.42 44.43 0.42 47.89 5.44 47.89 9.64 49.43 9.64 49.43 5.44 52.9 0.42\"></polygon><path d=\"M58.31,1.2a2.41,2.41,0,1,0,2.41,2.42A2.42,2.42,0,0,0,58.31,1.2m0,4.44a2,2,0,1,1,2-2,2,2,0,0,1-2,2\" transform=\"translate(-1.59 -1.2)\"></path><path d=\"M59.4,3.09a0.72,0.72,0,0,0-.72-0.72H57.32V4.83h0.41v-1h0.69l0.49,1h0.46l-0.51-1a0.71,0.71,0,0,0,.54-0.69m-1.67-.31h0.95a0.31,0.31,0,0,1,.31.31,0.31,0.31,0,0,1-.31.3H57.73V2.78Z\" transform=\"translate(-1.59 -1.2)\"></path></svg>\n</header>\n<section>\n\n <h1>Houston, we have a problem.</h1>\n\n <h2>Sorry for the inconvenience. Please try again. For additional help, please contact our customer service team at <a href=\"tel:+1-800-889-8969\" aria-label=\"1. 8 0 0. 8 8 9. 8 9 6 9.\" style=\"white-space:nowrap;\">1-800-889-8969</a>, <a href=\"tel:+1-707-827-7019\" aria-label=\"7 0 7. 8 2 7. 7 0 1 9.\" style=\"white-space:nowrap;\">707-827-7019</a>, or <a href=\"mailto:[email protected]\">[email protected]</a></h2>\n\n <img src='https://storage.googleapis.com/safari-fastly-objects/img/cog.png' />\n </section>\n</body>\n</html>\n"
Hi,
Just recently books started returning 404:
$ safaribooks-downloader -u user -p "password" -o ./books/book.epub -b id
[safari-downloader] starting application...
[safari-downloader] the user "[email protected]" was successfully authorized...
[safari-downloader] StatusCodeError: 404 - {}
This is happening for all books I try.
Hi, great work :) I wanted to ask if there is the possibility to embed the images of the book into the epub file?
Book id 9781457102417
Error code SyntaxError: Invalid regular expression: /"[^"]*images/9.6%20(Context%20Menu%20Set%20as%20Ma.jpg"/: Unterminated group
Hello,
Whose clientid and secret are being used in the application ? if you want to use your own, how do obtain one ?
from safari/index.js
this.clientSecret = "f52b3e30b68c1820adb08609c799cb6da1c29975";
this.clientId = "446a8a270214734f42a7";
thanks
It said epub successfully saved.exiting...
but not able to find the downloaded file in the location I specified..
I am running in a for
loop from inside a python script, it is stuck after few downloads.
Is there a limit on the usage ?
When I complete downloaded the book and open it with Microsoft Edge , only show the message " We couldn't open the book" . What happened ?
Hi,
My account uses single sign on. So when I am giving credentials it is saying invalid credentials.
Request your support in how to troubleshoot this issue.
I got this error. I am currently using the trial accounts.
[safari-downloader] starting application...
[safari-downloader] the user "****@********" was successfully authorized...
[safari-downloader] downloaded meta files...
[safari-downloader] downloaded table of content files...
[safari-downloader] RequestError: Error: getaddrinfo ENOTFOUND www.safaribooksonline.com www.safaribooksonline.com:443
I believe it should be possible to download a book without credentials if it is possible to view it without credentials - solely based on IP address. Just providing your script with fake credentials does not work for obvious reasons. Do you think adding an option to not use credentials? (I'm not sure if it makes a difference. I was trying to download a book from the proquest.safaribooksonline.com subdomain)
I have executed the following command:
node index.js -b 9781787286382 -u [email protected] -p mypassword -o .
The output is:
[safari-downloader] starting application...
[safari-downloader] the user "[email protected]" was successfully authorized...
[safari-downloader] downloaded meta files...
[safari-downloader] downloaded table of content files...
[safari-downloader] RequestError: Error: getaddrinfo EAI_AGAIN www.safaribooksonline.com:443
Operating System: Linux my-uname 4.4.0-109-generic #132-Ubuntu SMP Tue Jan 9 19:52:39 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
NPM version: 3.5.2
Nodejs version: 4.2.6
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.