[](https://github.com/andgineer/goodreads-export/actions)
[](https://htmlpreview.github.io/?https://github.com/andgineer/goodreads-export/blob/python-coverage-comment-action-data/htmlcov/index.html)
# Export goodreads books into markdown files (Obsidian etc)
Transform your goodreads.com book reviews into structured markdown files,
ideal for use in [Obsidian](https://obsidian.md/) and other markdown-based applications.
- **Goodreads Book Page Links:** Each markdown file contains a direct link to the corresponding book's page on Goodreads.
- **Calibre Integration:** Includes a [Search in Calibre](https://calibre-ebook.com/) URL for each book, allowing quick searches
in your local Calibre collection.
- **Tagging Based on Goodreads Shelves:** Reviews are automatically categorized with tags derived from your Goodreads shelves.
- **Customizable Templates:** Utilizing Jinja2 templates, the output format can be easily customized to suit your specific needs or preferences.
# User manual
[goodreads-export](https://andgineer.github.io/goodreads-export/en/)
# Developers
### Codebase structure
[Auto-generated reference](https://andgineer.github.io/goodreads-export/docstrings/).
### Create / activate environment
. ./activate.sh
It will also install the package in [edit mode](https://realpython.com/what-is-pip/#installing-packages-in-editable-mode-to-ease-development).
### Setting Up Pre-commit for Formatting and Static Checks
1. **Install Pre-commit**:
```bash
pip install pre-commit
```
2. **Configure Pre-commit**:
```bash
pre-commit install
```
This sets up `pre-commit` in your local environment to run the same static checks as the `static` GitHub Action.
### Scripts
make help
## Coverage report
* [Codecov](https://app.codecov.io/gh/andgineer/goodreads-export/tree/main/src%2Fgoodreads_export)
* [Coveralls](https://coveralls.io/github/andgineer/goodreads-export)
Raw data
{
"_id": null,
"home_page": "https://andgineer.github.io/goodreads-export/en/",
"name": "goodreads-export",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "goodreads book markdown obsidian",
"author": "Andrey Sorokin",
"author_email": "andrey@sorokin.engineer",
"download_url": "https://files.pythonhosted.org/packages/0e/33/6e79826b614d0166458aa2fc2f9bee410e3e7b140374cdc0f9a6a23d8e03/goodreads_export-1.8.1.tar.gz",
"platform": null,
"description": "[](https://github.com/andgineer/goodreads-export/actions)\n[](https://htmlpreview.github.io/?https://github.com/andgineer/goodreads-export/blob/python-coverage-comment-action-data/htmlcov/index.html)\n# Export goodreads books into markdown files (Obsidian etc)\n\nTransform your goodreads.com book reviews into structured markdown files,\nideal for use in [Obsidian](https://obsidian.md/) and other markdown-based applications.\n\n- **Goodreads Book Page Links:** Each markdown file contains a direct link to the corresponding book's page on Goodreads.\n- **Calibre Integration:** Includes a [Search in Calibre](https://calibre-ebook.com/) URL for each book, allowing quick searches\nin your local Calibre collection.\n- **Tagging Based on Goodreads Shelves:** Reviews are automatically categorized with tags derived from your Goodreads shelves.\n- **Customizable Templates:** Utilizing Jinja2 templates, the output format can be easily customized to suit your specific needs or preferences.\n\n# User manual\n\n[goodreads-export](https://andgineer.github.io/goodreads-export/en/)\n\n# Developers\n### Codebase structure\n[Auto-generated reference](https://andgineer.github.io/goodreads-export/docstrings/).\n\n### Create / activate environment\n . ./activate.sh\n\nIt will also install the package in [edit mode](https://realpython.com/what-is-pip/#installing-packages-in-editable-mode-to-ease-development).\n\n### Setting Up Pre-commit for Formatting and Static Checks\n\n1. **Install Pre-commit**:\n ```bash\n pip install pre-commit\n ```\n\n2. **Configure Pre-commit**:\n ```bash\n pre-commit install\n ```\n\nThis sets up `pre-commit` in your local environment to run the same static checks as the `static` GitHub Action.\n\n### Scripts\n make help\n\n## Coverage report\n* [Codecov](https://app.codecov.io/gh/andgineer/goodreads-export/tree/main/src%2Fgoodreads_export)\n* [Coveralls](https://coveralls.io/github/andgineer/goodreads-export)\n",
"bugtrack_url": null,
"license": null,
"summary": "Convert goodreads books to markdown files, for example for Obsidian.",
"version": "1.8.1",
"project_urls": {
"Homepage": "https://andgineer.github.io/goodreads-export/en/"
},
"split_keywords": [
"goodreads",
"book",
"markdown",
"obsidian"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "1ed1ad27a9f1e01893615f180e5e9309d7c4727a8fd5468e51c90f8104e479e7",
"md5": "839b5de65d88afbd0a71a7a7d2c8f308",
"sha256": "dd71e96b4eaacb8b75ffec853d8d33906f24245d3a33e27f416f81c2fc834c35"
},
"downloads": -1,
"filename": "goodreads_export-1.8.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "839b5de65d88afbd0a71a7a7d2c8f308",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 23452,
"upload_time": "2025-08-08T04:11:23",
"upload_time_iso_8601": "2025-08-08T04:11:23.967879Z",
"url": "https://files.pythonhosted.org/packages/1e/d1/ad27a9f1e01893615f180e5e9309d7c4727a8fd5468e51c90f8104e479e7/goodreads_export-1.8.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0e336e79826b614d0166458aa2fc2f9bee410e3e7b140374cdc0f9a6a23d8e03",
"md5": "89d644d7b3ab4228c3387c6b3a63394f",
"sha256": "20faf782941d174bd2e8aa821b130de6874c9dc8639d4ccce9a001d5fc3facc0"
},
"downloads": -1,
"filename": "goodreads_export-1.8.1.tar.gz",
"has_sig": false,
"md5_digest": "89d644d7b3ab4228c3387c6b3a63394f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 22447,
"upload_time": "2025-08-08T04:11:25",
"upload_time_iso_8601": "2025-08-08T04:11:25.095225Z",
"url": "https://files.pythonhosted.org/packages/0e/33/6e79826b614d0166458aa2fc2f9bee410e3e7b140374cdc0f9a6a23d8e03/goodreads_export-1.8.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-08 04:11:25",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "goodreads-export"
}