{"id":16445654,"url":"https://github.com/jenni/obooks","last_synced_at":"2025-04-05T03:09:37.501Z","repository":{"id":37879052,"uuid":"216192312","full_name":"jenni/obooks","owner":"jenni","description":"O'Books :books::sparkles: Download books from O'Reilly | Safaribooks","archived":false,"fork":false,"pushed_at":"2024-10-30T18:15:36.000Z","size":185,"stargazers_count":132,"open_issues_count":13,"forks_count":21,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-29T02:06:04.540Z","etag":null,"topics":["ebooks","epub","hacktoberfest","oreilly","oreilly-books","oreilly-books-downloader","safaribooks","safaribooksonline"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jenni.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-19T11:00:51.000Z","updated_at":"2025-02-13T21:33:55.000Z","dependencies_parsed_at":"2024-10-30T19:32:52.372Z","dependency_job_id":null,"html_url":"https://github.com/jenni/obooks","commit_stats":{"total_commits":68,"total_committers":7,"mean_commits":9.714285714285714,"dds":"0.42647058823529416","last_synced_commit":"968ec8bb5e43b3489323d36607e5f72d7388104b"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenni%2Fobooks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenni%2Fobooks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenni%2Fobooks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenni%2Fobooks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jenni","download_url":"https://codeload.github.com/jenni/obooks/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247280272,"owners_count":20912967,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ebooks","epub","hacktoberfest","oreilly","oreilly-books","oreilly-books-downloader","safaribooks","safaribooksonline"],"created_at":"2024-10-11T09:44:59.100Z","updated_at":"2025-04-05T03:09:37.483Z","avatar_url":"https://github.com/jenni.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# O'BOOKS :books::sparkles:\n\n  \n\nCLI to download and generate books from [O'Reilly](https://www.oreilly.com/) | Safaribooks.\n\n\n\n_This package is exclusively intended for personal use. Its purpose is to complement your O'Reilly membership facilitating content in the format of `.epub` to read on your e-reader._\n\n\n# USAGE\n\nYou need to hold an active account in [O'Reilly](https://www.oreilly.com/) | Safaribooks to be able to download books.\n\n## DOCKER\n\n```\n$ docker pull jennyfive/obooks\n$ docker run -it --rm -v \"$(pwd)/obooks/:/usr/app/books/\" jennyfive/obooks -b \"\u003cBOOK ID\u003e\" -c \"\u003cCOOKIES\u003e\"\n```\n\nThe book will be available in the new `obooks` folder in the current directory.\n\n## CLI\n  \n\n\t$ ./cli.js -b \"\u003cBOOKID\u003e\" -c \"\u003cOREILLY_COOKIE\u003e\"\n\n  \n\nThe downloaded books will be stored in the folder `obooks/books` inside the cloned project.\n\n\nAfter the first successful login/book download through **obooks**, a `session.json` file containing auth cookies will be written in the root of the project. Any future downloads will not require passing the cookies to the command.\n\n \n\t$ ./cli.js -b \"\u003cBOOKID\u003e\"\n\n  \n### **HOW TO**\n\nThe first time you're using obooks, you'll need to pass your logged in cookies in the command. Check the chrome developer tools while logged in to O'Reilly, you'll see a 'cookie' header sent in the 'Request Headers', this is the long string you should pass in in the **obooks** cookie flag `-c \"\u003ccookie\u003e`:\n\n\n`$ ./cli.js -b \"9781788623872\" -c \"LONG STRING OF COOKIES HERE\"`\n\nnote: if using Windows, run it under *nodejs*:\n\n`$ node cli.js  -b \"9781492077992\" -c \"LONG  STRING OF COOKIES HERE\"`\n  \n## **CLI flags explained**\n\n\n-  **`-b \u003cbookid\u003e`**: This is the book identification in O'Reilly. You can find it in the url of the book you'd like to download. For [this example](https://learning.oreilly.com/library/view/java-the-complete/9781260440249/), the book id would be: **9781260440249**.\n\n-  **`-c \u003ccookie\u003e`**: O'Reilly session cookie.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenni%2Fobooks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjenni%2Fobooks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenni%2Fobooks/lists"}