FanFicFare Documentation
repository·main·Indexed 21 days ago
https://github.com/jimmxinu/fanficfareFanFicFare is a tool for downloading fanfiction and original stories from over 100 different websites and converting them into eBook formats such as EPUB, MOBI, HTML, and plain text. It is available as a Calibre plugin and a Python-based Command Line Interface (CLI). Key features include updating existing ebooks with new chapters, handling story images and covers, and flexible configuration via .ini files or CLI options.
What's inside FanFicFare
- FanFicFare (FFF) is a tool designed to download fanfiction and original stories from over 100 different websites and convert them into ebook formats. It is the successor to the project formerly known as FanFictionDownLoader (FFDL).
Supported output formats in FanFicFare
mainFanFicFare can export downloaded stories into several formats. The preferred format is EPUB, but it also supports HTML, plain text, and MOBI.Install FanFicFare CLI via pip
mainYou can install the FanFicFare Command Line Interface (CLI) as a Python package using
pip. This is the standard way to use FanFicFare outside of the Calibre plugin environment.pip install FanFicFareInstall FanFicFare test versions via testpypi
mainIf you need to test the latest changes before an official release, you can install the test version of the CLI from the
testpypirepository.pip install --extra-index-url https://test.pypi.org/simple/ --upgrade FanFicFareContribute translations via Transifex
mainIf you want to provide translations for FanFicFare or other Calibre plugins, you can do so through the Transifex platform. Use the project link below to access the translation interface and contribute your language strings.
https://www.transifex.com/projects/p/calibre-plugins/resources/Install FanFicFare on Arch Linux
mainArch Linux users can obtain the latest CLI release via the AUR packagefanficfare. If Calibre is installed on your system, this package will also install the Calibre plugin.Install FanFicFare with image processing support
mainTo enable support for downloading images within story text (for EPUB and HTML formats), you must install the
image_processingextra, which includes thePillowlibrary.pip install FanFicFare[image_processing]How FanFicFare handles configuration files
mainFanFicFare loads configuration from multiple sources with a specific priority order. Settings in files with higher priority override those in lower priority files.
Priority Order (Lowest to Highest):
defaults.ini(in the FanFicFare directory)defaults.iniin~/.fanficdownloader/or~/.fanficfare/defaults.iniin$XDG_CONFIG_HOME/fanficfare/defaults.iniin the current directory (./)personal.iniin~/.fanficdownloader/or~/.fanficfare/personal.iniin$XDG_CONFIG_HOME/fanficfare/personal.iniin the current directory (./)- Files explicitly provided via the
-cor--configflag (these take the highest priority).
Note: The CLI also allows overriding any setting via
--option NAME=VALUE.Use the FanFicFare CLI to download stories
mainThe FanFicFare CLI allows you to download fanfiction stories from various sites into formats like EPUB, MOBI, TXT, or HTML. You can provide a single story URL or a list of URLs from a file.
Basic Usage:
fanficfare [STORYURL]...Common Tasks:
- Download in a specific format: Use
-for--format(default isepub). - Download a range of chapters: Use
-bor--beginand-eor--end, or append the range to the URL likeSTORYURL[1-5]. - Update an existing EPUB: Use
-uor--update-epubto add new chapters to an existing file. - Download from a file list: Use
-ior--infileto specify a file containing URLs. - Get metadata only: Use
-mor--meta-onlyto retrieve metadata without downloading chapters.
fanficfare https://example.com/story/123 -f epub- Download in a specific format: Use
Configure FanFicFare via CLI options
mainYou can override any configuration setting defined in your
.inifiles using the--optionflag. This is useful for one-off changes like setting authentication or behavior without modifying permanent config files.Format:
--option NAME=VALUEExample (setting adult check):
fanficfare --option is_adult=true [STORYURL]--option NAME=VALUEReference: Metadata and List Operations
mainUse these flags to inspect stories or extract URLs without performing a full download.
-l, --list URL Get list of valid story URLs from page given. -n, --normalize-list URL Get list of valid story URLs from page given, but normalized to standard forms. --download-list URL Download story URLs retrieved from page given. --imap Get list of valid story URLs from unread email from IMAP account configured in ini. --download-imap Download valid story URLs from unread email from IMAP account configured in ini. -m, --meta-only Retrieve and write metadata to stdout without downloading or saving chapters. -j, --json-meta Output metadata as JSON with download, or with --meta-only flag. --json-meta-file Output metadata for each download as JSON to an individual file named by appending ".json" to the output_filename.Reference: FanFicFare CLI Options
mainThe following command-line options are available for the FanFicFare CLI.
-f, --format FORMAT Write story as FORMAT, epub(default), mobi, txt or html. -c, --config CONFIG Read config from specified file(s) in addition to (ordered lowest to highest priority): calibre plugin defaults.ini, calibre plugin personal.ini, ~/.fanficfare/defaults.ini, $XDG_CONFIG_HOME/fanficfare/defaults.ini, ./defaults.ini, ~/.fanficfare/personal.ini, $XDG_CONFIG_HOME/fanficfare/personal.ini, and ./personal.ini. -c/--config files take highest priority -b, --begin START Begin story with Chapter START. -e, --end END End story with Chapter END. -o, --option NAME=VALUE Set config option NAME=VALUE Overrides config file setting. -m, --meta-only Retrieve and write metadata to stdout without downloading or saving chapters; saves story file with titlepage only. -z, --no-meta-chapters Exclude list of chapters("zchapters") from metadata stdout output. -j, --json-meta Output metadata as JSON with download, or with --meta-only flag. --json-meta-file Similar to --json-meta, but output metadata for each download as JSON to an individual file named by appending ".json" to the output_filename. --no-output Do not download chapters and do not write output file. -u, --update-epub Update an existing epub(if present) with new chapters. Give either epub filename or story URL. -U, --update-epub-always Update an existing epub(if present) even if there aren't new chapters. Give either epub filename or story URL. --update-cover Update cover in an existing epub, otherwise existing cover (if any) is used on update. --unnew Remove (new) chapter marks left by mark_new_chapters setting. --force Force overwrite of an existing epub, download and overwrite all chapters. -i, --infile INFILE Give a filename to read for URLs (and/or existing EPUB files with --update-epub). -l, --list URL Get list of valid story URLs from page given. -n, --normalize-list URL Get list of valid story URLs from page given, but normalized to standard forms. --download-list URL Download story URLs retrieved from page given. --imap Get list of valid story URLs from unread email from IMAP account configured in ini. --download-imap Download valid story URLs from unread email from IMAP account configured in ini. -s, --sites-list Get list of valid story URLs examples. --non-interactive Prevent interactive prompts (for scripting). -d, --debug Show debug and notice output. -p, --progressbar Display a simple progress bar while downloading--one dot(.) per network fetch. --color Display a errors and warnings in a contrasting color. --mozilla-cookies COOKIEFILE Read and use cookies from COOKIEFILE in Mozilla/Netscape cookies.txt format. -v, --version Display version and quit.