# sebsync
sebsync is a simple script to synchronize the [Standard Ebooks](https://standardebooks.org/)
catalog with your local EPUB collection.
## How it works
The script reads the Standard Ebooks [OPDS feed](https://standardebooks.org/feeds) and
reconciles the ebooks in their catalog against the EPUBs in your local filesystem,
downloading new ones or updating existing ones as necessary.
If a new ebook is detected in the catalog, then it will be downloaded into your downloads
directory. If an updated version of a book is detected in the catalog that is already in your
local filesystem, then the updated version will be downloaded and stored in the existing local
file.
The script also detects extraneous local ebooks (local ebooks not found in the Standard
Ebooks catalog). This can can occur when Standard Ebooks changes the identifier of a previously
published ebook. It's a rare occurrence, and it's generally safe to delete such files.
## Requirements
This script uses Standard Ebooks' OPDS feed to access metadata on all books their catalog. In
order to do so, you need to be a member of the Standard Ebooks
[Patrons Circle](https://standardebooks.org/donate#patrons-circle) (or have previously produced
an ebook for Standard Ebooks). If you're not already a Standard Ebooks patron, please consider
becoming one. It's a tremendously valuable project, deserving of your support.
## Installation
```
pipx install sebsync
```
## Example usage
```
sebsync --email addr@example.com --books /home/user/MyBooks --downloads /home/user/MyBooks/Downloads
```
## Questions and answers
Q1. *Why use a separate downloads directory for new ebooks?*
A1. This is a feature for those who want to easily recognize new ebooks, and to manually
rename and/or categorize them within their library. If this feature is not useful for you,
simply set `--downloads` to be the same directory as `--books`.
Q2. *What is pipx?*
A2. [pipx](https://pipx.pypa.io/) is a utility that allows Python packages like sebsync to
be installed in an isolated environment. This makes it really easy to install and run such
scripts without interfering with other Python package installations.
Q3. *Does this script support Kindle books?*
A3. Not presently. A cursory analysis of the Standard Ebooks AZW3 structure suggests that there
currently isn't a reliable method to reconcile Kindle ebooks with the OPDS feed catalog. If
this feature is important to you, please let us know by voting for
[this issue](https://github.com/pbryan/sebsync/issues/2) in GitHub.
Raw data
{
"_id": null,
"home_page": "https://github.com/pbryan/sebsync/",
"name": "sebsync",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.10",
"maintainer_email": null,
"keywords": "standard, ebook, book, synchronization, sync, download",
"author": "sebsync authors",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/64/ab/77cbe2d3bbeff954c244713b3c53940e312030e644e1d15a4878f70fb33e/sebsync-1.0.6.tar.gz",
"platform": null,
"description": "# sebsync\n\nsebsync is a simple script to synchronize the [Standard Ebooks](https://standardebooks.org/)\ncatalog with your local EPUB collection.\n\n## How it works\n\nThe script reads the Standard Ebooks [OPDS feed](https://standardebooks.org/feeds) and\nreconciles the ebooks in their catalog against the EPUBs in your local filesystem,\ndownloading new ones or updating existing ones as necessary.\n\nIf a new ebook is detected in the catalog, then it will be downloaded into your downloads\ndirectory. If an updated version of a book is detected in the catalog that is already in your\nlocal filesystem, then the updated version will be downloaded and stored in the existing local\nfile.\n\nThe script also detects extraneous local ebooks (local ebooks not found in the Standard\nEbooks catalog). This can can occur when Standard Ebooks changes the identifier of a previously\npublished ebook. It's a rare occurrence, and it's generally safe to delete such files.\n\n## Requirements\n\nThis script uses Standard Ebooks' OPDS feed to access metadata on all books their catalog. In\norder to do so, you need to be a member of the Standard Ebooks\n[Patrons Circle](https://standardebooks.org/donate#patrons-circle) (or have previously produced\nan ebook for Standard Ebooks). If you're not already a Standard Ebooks patron, please consider\nbecoming one. It's a tremendously valuable project, deserving of your support.\n\n## Installation\n\n```\npipx install sebsync\n```\n\n## Example usage\n\n```\nsebsync --email addr@example.com --books /home/user/MyBooks --downloads /home/user/MyBooks/Downloads\n```\n\n## Questions and answers\n\nQ1. *Why use a separate downloads directory for new ebooks?*\n\nA1. This is a feature for those who want to easily recognize new ebooks, and to manually\nrename and/or categorize them within their library. If this feature is not useful for you,\nsimply set `--downloads` to be the same directory as `--books`.\n\nQ2. *What is pipx?*\n\nA2. [pipx](https://pipx.pypa.io/) is a utility that allows Python packages like sebsync to\nbe installed in an isolated environment. This makes it really easy to install and run such\nscripts without interfering with other Python package installations.\n\nQ3. *Does this script support Kindle books?*\n\nA3. Not presently. A cursory analysis of the Standard Ebooks AZW3 structure suggests that there\ncurrently isn't a reliable method to reconcile Kindle ebooks with the OPDS feed catalog. If\nthis feature is important to you, please let us know by voting for\n[this issue](https://github.com/pbryan/sebsync/issues/2) in GitHub.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Synchronize Standard Ebooks catalog with local EPUB collection.",
"version": "1.0.6",
"project_urls": {
"Homepage": "https://github.com/pbryan/sebsync/"
},
"split_keywords": [
"standard",
" ebook",
" book",
" synchronization",
" sync",
" download"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "54807b32c89d84ec93c27808ff6d5ed744a08b773ebba181a293f7c8d5c85cf6",
"md5": "bc2eeeadfabad5afea0cb6eeec50f6ce",
"sha256": "3284106469efdd36a424db47476f715933a58d107c7feea8fbde8c9a738bcdb9"
},
"downloads": -1,
"filename": "sebsync-1.0.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bc2eeeadfabad5afea0cb6eeec50f6ce",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 7726,
"upload_time": "2024-11-22T07:52:37",
"upload_time_iso_8601": "2024-11-22T07:52:37.110882Z",
"url": "https://files.pythonhosted.org/packages/54/80/7b32c89d84ec93c27808ff6d5ed744a08b773ebba181a293f7c8d5c85cf6/sebsync-1.0.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "64ab77cbe2d3bbeff954c244713b3c53940e312030e644e1d15a4878f70fb33e",
"md5": "ca71f493fa162d227247de68aa8a13c1",
"sha256": "8fdaec788251c44e469ce491b9e47652eec0f9f250e71b2257c891db8635cf84"
},
"downloads": -1,
"filename": "sebsync-1.0.6.tar.gz",
"has_sig": false,
"md5_digest": "ca71f493fa162d227247de68aa8a13c1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 6981,
"upload_time": "2024-11-22T07:52:38",
"upload_time_iso_8601": "2024-11-22T07:52:38.781778Z",
"url": "https://files.pythonhosted.org/packages/64/ab/77cbe2d3bbeff954c244713b3c53940e312030e644e1d15a4878f70fb33e/sebsync-1.0.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-22 07:52:38",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pbryan",
"github_project": "sebsync",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "sebsync"
}