Skip to main content

This is a commandline tool to download and convert novels from numerous sources to epub files

Project description

NovelSave

PyPI Python Version Repo Size Contributors Last Commit Issues Pull Requests License

This is a tool to download and convert webnovels from popular sites to epub.

v0.6.+ is not compatible with previous versions

Install

pip install novelsave

or

pip install git+https://github.com/mHaisham/novelsave.git

Usage

Basic

The most common arguments you'll be using are

  • -u --update - downloads novel webpage and updates novel information on disk. This includes title, author and chapters (including pending chapters).
  • -p --pending - download all the pending chapters. Typically uses 4 threads to download chapter pages unless otherwise specified (--thread-count <count>).
  • -c --create - packs the (downloaded chapters of) novel into an epub file.
novelsave <url> -u -p -c

By combining these 3 flags you can update, download, and create epub in a single line.

Pipe

If you are calling novelsave via another program or want to pipe the output to another program like grep, add the --plain flag.

This ensures that the output would be as concise as possible.

novelsave --plain <url> -u -p -c

Configurations

You can check the programs configurations as shown below

novelsave config

Banner

                              ___                                       
                             /\_ \                                      
  ___     ___   __  __     __\//\ \     ____     __     __  __     __   
/' _ `\  / __`\/\ \/\ \  /'__`\\ \ \   /',__\  /'__`\  /\ \/\ \  /'__`\ 
/\ \/\ \/\ \L\ \ \ \_/ |/\  __/ \_\ \_/\__, `\/\ \L\.\_\ \ \_/ |/\  __/ 
\ \_\ \_\ \____/\ \___/ \ \____\/\____\/\____/\ \__/.\_\\ \___/ \ \____\
 \/_/\/_/\/___/  \/__/   \/____/\/____/\/___/  \/__/\/_/ \/__/   \/____/
  v(version) - https://github.com/mHaisham/novelsave

Banner is by default displayed at start-up of the program unless its run in plain mode.

You can change the display settings of banner as shown below.

novelsave config --toggle-banner

Save directory

Novels are by default saved to folder novels in user home.

Change the novels download directory as shown below.

novelsave config --save-dir <dir>

Help

novelsave --help

usage: novelsave [-h] [--plain] [--no-input] {novel,list,config} ...

This is a tool to download and convert webnovels from popular sites to epub

positional arguments:
  {novel,list,config}
    novel              download, update, and delete novels
    list               manipulate currently existing novels
    config             update and view user configurations

optional arguments:
  -h, --help           show this help message and exit
  --plain              restrict display output in plain, tabular text format
  --no-input           don’t prompt or do anything interactive

novelsave novel --help

usage: novelsave novel [-h] [-u] [-p] [-c] [--meta META] [--remove-meta] [--force-cover] [--force-create] [--force-meta] [--username USERNAME]
                       [--password PASSWORD] [--force-login] [--cookies-from COOKIES_FROM] [--threads THREADS] [--timeout TIMEOUT] [--limit LIMIT]
                       url

positional arguments:
  url                   url of the specific novel

optional arguments:
  -h, --help            show this help message and exit
  --threads THREADS     number of download threads
  --timeout TIMEOUT     webdriver timeout
  --limit LIMIT         amount of chapters to download

actions:
  -u, --update          update novel details
  -p, --pending         download pending chapters
  -c, --create          create epub from downloaded chapters
  --meta META           metadata source url
  --remove-meta         remove current metadata
  --force-cover         download and overwrite the existing cover
  --force-create        force create epub ignoring update status
  --force-meta          force update metadata ignoring previous metadata

auth:
  --username USERNAME   username or email field
  --password PASSWORD   password field; not recommended, refer to README for more details
  --force-login         remove existing cookies and login
  --cookies-from COOKIES_FROM
                        use cookies from specified browser

novelsave list --help

usage: novelsave list [-h] [--novel NOVEL] [--reset | --delete] [--yes]

optional arguments:
  -h, --help     show this help message and exit
  --novel NOVEL  takes the url of the novel and displays meta information
  --reset        remove chapters and metadata. to be used with --novel
  --delete       remove everything including compiled epub files. to be used with --novel
  --yes          skip confirm confirmation used in --reset and --delete

novelsave config --help

usage: novelsave config [-h] [--save-dir SAVE_DIR] [--toggle-banner]

optional arguments:
  -h, --help           show this help message and exit
  --save-dir SAVE_DIR  directory for saving novels
  --toggle-banner      Toggle show and hide for title banner

Login and cookies

Two methods of accessing authenticated content are provided

Browser cookies (Recommended)

Uses cookies from available browsers access content

use syntax --use-cookies [browser]. for example

novelsave <url> -u -p -c --cookies-from firefox

Requires to be Signed in, in the browser of choice

Available

chrome firefox chromium opera edge

Login

Username and password are sent to the website server to authenticate.

Cookies are persisted and stored at config's location.

Novelsave attempts to use the available cookies unless:

  • any of the cookies from relevant domains are expired

  • user provides the flag --force-login

refer to sources to check supported sites.

Module

from novelsave import NovelSave

if __name__ == '__main__':
    save = NovelSave(url)

Methods

NovelSave has 6 methods

  • update(self, force_cover=False):
  • metadata(self, url, force=False):
  • remove_metadata(self, with_source=True):
  • download(self, thread_count=4, limit=None):
  • create_epub(self, force=False):
  • cookie_auth(self, cookie_browser: Union[str, None] = None)
  • credential_auth(self)

Database

you can access the database by using the db attribute of NovelSave

    save.db

Sources

Request a new source by creating a new issue

Novel

Sources Login Reason
webnovel.com ✔
wuxiaworld.co
boxnovel.com
readlightnovel.org
insanitycave.poetry
ktlchamber.wordpress
kieshitl.wordpress
scribblehub.com
mtlnovel.com
fanfiction.net Broken due to cloudflare bot protection
novelfull.com
wuxiaworld.com
royalroad.com
wattpad.com
forums.spacebattles.com
forums.sufficientvelocity.com
dragontea.ink
novelsite.net
foxaholic.com
chrysanthemumgarden.com
peachpitting.com
betwixtedbutterfly.com
dummynovels.com
chickengege.org
wuxiaworld.online
novelonlinefull.com
novelpassion.com
novelfun.net
novelhall.com
novelsrock.com

Metadata

Metadata Source Support
wlnupdates.com ✔
novelupdates.com ✔

Disclaimer

We are not affiliated, associated, authorized, endorsed by, or in any way officially connected with the any of the sources mentioned above.

License

Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

novelsave-0.6.4.tar.gz (53.1 kB view hashes)

Uploaded Source

Built Distribution

novelsave-0.6.4-py3-none-any.whl (89.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page