{"id":15007427,"url":"https://github.com/bohdanbobrowski/blog2epub","last_synced_at":"2025-10-30T12:31:48.970Z","repository":{"id":34932561,"uuid":"39003283","full_name":"bohdanbobrowski/blog2epub","owner":"bohdanbobrowski","description":"Convert blog (blogspot.com, wordpress.com or another based on Wordpress) to epub using command line or GUI.","archived":false,"fork":false,"pushed_at":"2024-09-10T06:50:00.000Z","size":13506,"stargazers_count":37,"open_issues_count":3,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-09-29T15:43:56.064Z","etag":null,"topics":["blog","blogging","ebook","ebook-downloader","ebook-generator","ebook-reader","epub-generator","gui","linux","linux-desktop","macos","windows"],"latest_commit_sha":null,"homepage":"https://github.com/bohdanbobrowski/blog2epub","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"vechain/connex.driver-nodejs","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bohdanbobrowski.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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":"2015-07-13T09:32:23.000Z","updated_at":"2024-09-20T14:16:32.000Z","dependencies_parsed_at":"2023-10-20T15:47:01.542Z","dependency_job_id":"79f7d32a-69bc-4d9a-9f94-6148597152d1","html_url":"https://github.com/bohdanbobrowski/blog2epub","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bohdanbobrowski%2Fblog2epub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bohdanbobrowski%2Fblog2epub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bohdanbobrowski%2Fblog2epub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bohdanbobrowski%2Fblog2epub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bohdanbobrowski","download_url":"https://codeload.github.com/bohdanbobrowski/blog2epub/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219856290,"owners_count":16556085,"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":["blog","blogging","ebook","ebook-downloader","ebook-generator","ebook-reader","epub-generator","gui","linux","linux-desktop","macos","windows"],"created_at":"2024-09-24T19:09:52.275Z","updated_at":"2025-10-30T12:31:43.377Z","avatar_url":"https://github.com/bohdanbobrowski.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"./assets/blog2epub_256px.png\" width=\"256\" height=\"256\" /\u003e\n\u003c/p\u003e\n\n# blog2epub\n\n[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/bohdanbobrowski/blog2epub/graphs/commit-activity) [![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-license.org/) ![GitHub all releases](https://img.shields.io/github/downloads/bohdanbobrowski/blog2epub/total) ![GitHub release (with filter)](https://img.shields.io/github/v/release/bohdanbobrowski/blog2epub) ![GitHub Release Date - Published_At](https://img.shields.io/github/release-date/bohdanbobrowski/blog2epub)\n\nConvert blog to epub using command line or GUI.\n\n\u003e My main goal in creating this app is to preserve the legacy of the blogosphere for future generations.\n\n### Supported blogs:\n- *.blogspot.com\n- *.wordpress.com\n- multiple other blogs and even some webpages\n\n### Main features\n\n- command line (CLI) and graphic user interface (GUI)\n- script downloads all text contents of selected blog to epub file,\n- if it's possible, it includes post comments,\n- images are downsized (to maximum 800/600px) and converted to grayscale,\n- one post = one epub chapter,\n- chapters are sorted by date ascending,\n- cover is generated automatically from downloaded images.\n\n### Example covers\n\n\u003ctable style=\"width:100%;text-align:center;\"\u003e\u003ctr\u003e\u003ctd\u003e\n\u003cimg src=\"assets/v1.5.0/archaia-ellada_blogspot_com_2014.11.01-2014.12.01.epub.jpg\" width=\"400\" style=\"margin:0 10px 10px 0\" /\u003e\n\u003c/td\u003e\u003ctd\u003e\n\u003cimg src=\"assets/v1.5.0/boston1775_blogspot_com_2024.11.10-2024.11.14.epub.jpg\" width=\"400\" style=\"margin:0 10px 10px 0\" /\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\n\u003cimg src=\"assets/v1.5.0/velosov_blogspot_com_2013.02.22-2013.03.10.epub.jpg\" width=\"400\" style=\"margin:0 10px 10px 0\" /\u003e\n\u003c/td\u003e\u003ctd\u003e\n\u003cimg src=\"assets/v1.5.0/zeissikonveb_de_2021.04.10-2024.10.19.epub.jpg\" width=\"400\" style=\"margin:0 10px 10px 0;\" /\u003e\n\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\n## Installation\n\nCheckout for latest available [builds](https://github.com/bohdanbobrowski/blog2epub/releases).\n\n### Running from sources\n\n#### Easiest way\n\n    pip install git+https://github.com/bohdanbobrowski/blog2epub.git\n\n#### Developer environment\n\n    git clone git@github.com:bohdanbobrowski/blog2epub.git\n    cd blog2epub\n    python -m venv venv\n\n##### Windows:\n    venv\\Scripts\\activate\n    pip install -e .[dev]\n    \n#### macOS/Linux:\n\n    source ./venv/bin/activate\n    pip install -e .[dev]\n\n### Building own executable\n\n#### Windows\n\n    python blog2epub_build_windows.py\n\nFinally, you can run NSIS to build Windows installer:\n\n    \"C:\\Program Files (x86)\\NSIS\\makensis\" blog2epub_windows_installer.nsi\n\n#### macOS\n\n    python blog2epub_build_macos.py\n\nAnd then to create dmg image with app:\n\n    ./make_macos_dmg.sh\n\n#### Android\n\nBefore you start, you'll need to install buildozer following this [installation documentation](https://buildozer.readthedocs.io/en/latest/installation.html).\n\n    buildozer -v android\n\n## Screenshots of GUI\n\n### Android (Google Pixel 6a)\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/v1.5.0/blog2pub_android_pixel6a_screenshot1.png\"  width=\"200px\" /\u003e\n\u003cimg src=\"assets/v1.5.0/blog2pub_android_pixel6a_screenshot2.png\"  width=\"200px\" /\u003e\n\u003cimg src=\"assets/v1.5.0/blog2pub_android_pixel6a_screenshot3.png\"  width=\"200px\" /\u003e\n\u003cimg src=\"assets/v1.5.0/blog2pub_android_pixel6a_screenshot4.png\"  width=\"200px\" /\u003e\n\u003c/p\u003e\n\n### Windows (11)\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/v1.5.0/blog2epub_win11_screenshot.png\" width=\"600px\" /\u003e\n\u003c/p\u003e\n\n### Linux (Manjaro Gnome)\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/v1.3.0/blog2epub_linux_screenshot.png\"  width=\"600px\" /\u003e\n\u003c/p\u003e\n\n### macOS (Sonoma 14.4.1)\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/v1.3.0/blog2epub_macos_screenshot.png\"  width=\"600px\" /\u003e\n\u003c/p\u003e\n\n## CLI\n\n    blog2epub --help\n    usage: Blog2epub Cli interface [-h] [-l LIMIT] [-s SKIP] [-q QUALITY] [-o OUTPUT] [-d] url\n    \n    Convert blog (blogspot.com, wordpress.com or another based on Wordpress) to epub using CLI or GUI.\n    \n    positional arguments:\n      url                   url of blog to download\n    \n    options:\n      -h, --help            show this help message and exit\n      -l LIMIT, --limit LIMIT\n                            articles limit\n      -s SKIP, --skip SKIP  number of skipped articles\n      -q QUALITY, --quality QUALITY\n                            images quality (0-100)\n      -o OUTPUT, --output OUTPUT\n                            output epub file name\n      -d, --debug           turn on debug\n\nExample:\n\n    blog2epub starybezpiek.blogspot.com -l=2 -o=example.epub\n    Starting blogger.com crawler\n    Found 54 articles to crawl.\n    Downloading.\n    1. 10 lat kremlowskiej propagandy, czyli RT ujawnia swoje sekrety\n    Downloading.\n    2. \"Komunę obaliliśmy, a nadal jest źle. Dlaczego?\" Czyli 1984 Orwella właściwie odczytany\n    Locale set as en_US.UTF-8\n    Generating cover (800px*600px) from 1 images.\n    Cover generated: .\\starybezpiek.blogspot.com\\example.epub.jpg\n    Epub created: .\\example.epub\n\n## Examples\n\n    blog2epub starybezpiek.blogspot.com\n    blog2epub velosov.blogspot.com -l=10\n    blog2epub poznanskiehistorie.blogspot.com -q=100\n    blog2epub classicameras.blogspot.com --limit=10 --no-images\n\n## Running tests\n\n    pytest ./tests\n    pytest --cov=blog2epub ./tests\n    pytest --cov=blog2epub --cov-report=html ./tests\n\n\n## Current version\n\n### [v1.5.0 - Release Candidate 2](https://github.com/bohdanbobrowski/blog2epub/releases/tag/v1.5.0_RC2)\n- [X] integration testing\n- [X] increase unit test coverage\n- [X] use sitemaps.xml for scraping\n- [X] crawlers refactor\n  - [X] use data models\n  - [X] more common methods in crawler class\n  - [X] expand crawler abstract\n- [X] cli interface refactor\n- [X] greek alphabet support\n- [X] image download and attachment bug solved (ex. modernistyczny-poznan.blogspot.com)\n- [X] improved resistance to http errors\n- [X] dedicated crawler class for zeissikonveb.de\n- [X] (on GUI) skip value is enlarged on limit value (if such is set)\n- [X] download progress is much more verbose, also on GUI it can be cancelled everytime\n- [X] remove poetry as it's overcomplicated for the case, \n- [X] Windows installer!\n- [X] results of cancelled downloads might be converted to epub\n\n[\u0026raquo; Complete Change Log here \u0026laquo;](https://github.com/bohdanbobrowski/blog2epub/blob/master/CHANGELOG.md)\n\n## Project backlog\n\nAnd finally, a list known bugs and future plans for some new functions and enhancements: [BACKLOG.md](https://github.com/bohdanbobrowski/blog2epub/blob/master/BACKLOG.md)\n\n## Project road map:\n\n- 1.0 - somewhat working\n- 2.0 - fully working project, 90% unit tested and available builds for Android/Windows/Linux/MacOS\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbohdanbobrowski%2Fblog2epub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbohdanbobrowski%2Fblog2epub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbohdanbobrowski%2Fblog2epub/lists"}