{"id":13760653,"url":"https://github.com/rupor-github/fb2converter","last_synced_at":"2025-12-24T17:19:49.424Z","repository":{"id":37319086,"uuid":"164749819","full_name":"rupor-github/fb2converter","owner":"rupor-github","description":"Unified converter of FB2 files into epub2, kepub, mobi and azw3 formats.","archived":false,"fork":false,"pushed_at":"2024-07-22T20:59:49.000Z","size":43070,"stargazers_count":270,"open_issues_count":1,"forks_count":18,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-07-23T00:43:41.037Z","etag":null,"topics":["azw","azw3","converter","ebooks","eink-devices","epub-files","fb2","hyphens","kepub","kindle-devices","kobo","mobi-files","thumbnails"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rupor-github.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2019-01-08T23:23:27.000Z","updated_at":"2024-07-22T20:59:37.000Z","dependencies_parsed_at":"2023-02-18T09:16:08.044Z","dependency_job_id":"2d576e7f-30d8-4935-af89-afee3de7c998","html_url":"https://github.com/rupor-github/fb2converter","commit_stats":null,"previous_names":[],"tags_count":112,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rupor-github%2Ffb2converter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rupor-github%2Ffb2converter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rupor-github%2Ffb2converter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rupor-github%2Ffb2converter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rupor-github","download_url":"https://codeload.github.com/rupor-github/fb2converter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":213808026,"owners_count":15641615,"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":["azw","azw3","converter","ebooks","eink-devices","epub-files","fb2","hyphens","kepub","kindle-devices","kobo","mobi-files","thumbnails"],"created_at":"2024-08-03T13:01:15.440Z","updated_at":"2025-12-24T17:19:49.416Z","avatar_url":"https://github.com/rupor-github.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"﻿\u003ch1\u003e\n    \u003cimg src=\"docs/books.svg\" style=\"vertical-align:middle; width:8%\" align=\"absmiddle\"/\u003e\n    \u003cspan style=\"vertical-align:middle;\"\u003e\u0026nbsp;\u0026nbsp;FB2 converter to EPUB2, KEPUB, MOBI 7/8, AZW3\u003c/span\u003e\n\u003c/h1\u003e\n\n[![GitHub Release](https://img.shields.io/github/release/rupor-github/fb2converter.svg)](https://github.com/rupor-github/fb2converter/releases)\n\n### A complete rewrite of [fb2mobi](https://github.com/rupor-github/fb2mobi)\nAims to be faster than python implementation and much easier to maintain. Simpler configuration, zero dependencies, better diagnostics and no installation required.\n\nRussian [WiKi](https://github.com/rupor-github/fb2converter/wiki/fb2converter) and [forum](https://4pda.ru/forum/index.php?showtopic=942250).\n\n### Essential differences:\n\n- no UI: use [Libro](https://github.com/dnkorpushov/libro) or [MyHomeLib](https://github.com/OleksiyPenkov/myhomelib)\n- no XSL pre-processing (see document.transform configuration instead)\n- no XML configuration - use [TOML](https://github.com/toml-lang/toml), [YAML](https://yaml.org/) or [JSON](https://www.json.org/) format instead\n- no \"default\" external configuration, path to configuration file has to be supplied - always\n- no overwriting of configuration parameters from command line, options either specified in configuration file or on command line\n- slightly different hyphenation algorithm (no hyphensReplaceNBSP)\n- fixes and enhancements in toc.ncx generation\n- go differs in how it processes images, it is less forgiving than Python's PILLOW and do not have lazy decoding (see use_broken_images configuration option)\n- small changes in result formatting, for example:\n  - chapter-end vignette would not be added if chapter does not have text paragraphs\n  - html tags unknown to fb2 spec may be dropped depending on context\n  - page size is calculated based on proper Unicode code points rather than byte size\n  - ...\n- full support for kepub format\n- processing of files, directories, zip archives and directories with zip archives - no special consideration is made for `.fb2.zip` files.\n- flexible output path/name formatting (starting with 1.78.0 formatting could be specified using proper template language, rather than fb2mobi #tag(s))\n- fb2c could be build for any platform supported by [go language](https://golang.org/doc/install). If mobi or azw3 are required additional limitations are imposed by [Amazon's kindlegen](https://www.amazon.com/gp/feature.html?ie=UTF8\u0026docId=1000765211)\n- fb2c has no dependencies and does not require installation or any kind\n\n### Installation:\n\nDownload from the [releases page](https://github.com/rupor-github/fb2converter/releases) and unpack it in a convenient location.\n\n* Starting with v1.60.1 macOS releases for Intel and Apple silicon are build separately. I do not have `kindlegen` for Apple Silicon - not sure if one even exists, so manage your expectations.\n* Starting with v1.58.0 releases are packed with zip and signed with [minisign](https://jedisct1.github.io/minisign/). Here is public key for verification:\n\n\u003cp\u003e\n    \u003cimg src=\"docs/build_key.svg\" style=\"vertical-align:middle; width:15%\" align=\"absmiddle\"/\u003e\n    \u003cspan style=\"vertical-align:middle;\"\u003e\u0026nbsp;\u0026nbsp;RWTNh1aN8DrXq26YRmWO3bPBx4m8jBATGXt4Z96DF4OVSzdCBmoAU+Vq\u003c/span\u003e\n\u003c/p\u003e\n\n### Usage:\n\nConfiguration is fully documented [here](https://github.com/rupor-github/fb2converter/blob/master/static/configuration.toml).\nIn order to customize program behavior use \"export\" command to the directory of your choice and then supply path to your configuration file during program run.\n\nProgram has detailed logging configured by default (by default conversion.log in current working directory) - in case of problems, take a look there first.\n\n```\n\u003e\u003e\u003e ./fb2c\n\nNAME:\n   fb2converter - fb2 conversion engine\n\nUSAGE:\n   fb2c [global options] command [command options] [arguments...]\n\nVERSION:\n   \"program version\" (\"go runtime version\") : \"git sha string\"\n\nCOMMANDS:\n   convert     Converts FB2 file(s) to specified format\n   synccovers  Extracts thumbnails from documents (Kindle only!)\n   dumpconfig  Dumps active configuration (JSON)\n   export      Exports built-in resources for customization\n   help, h     Shows a list of commands or help for one command\n\nGLOBAL OPTIONS:\n   --config FILE, -c FILE  load configuration from FILE (YAML, TOML or JSON). if FILE is \"-\" JSON will be expected from STDIN  (accepts multiple inputs)\n   --debug, -d             prepare archive with details of a current run (may overwrite some log settings) (default: false)\n   --help, -h              show help (default: false)\n   --version, -v           print the version (default: false)\n```\n\nAdditional help for any command could be obtained by running `./fb2c help COMMAND-NAME`.\n\n### Examples:\n\nIn order to convert all fb2 files in `c:\\books\\to-read` directory and get results in `d:\\out` directory without keeping original subdirectory structure\nsending files to Kindle via e-mail in process execute\n\n   `fb2c.exe convert --nodirs --stk --to epub c:\\books\\to-read d:\\out`\n\nIf you want resulting mobi files to be located alongside with original files, do something like\n\n   `fb2c.exe convert --to mobi c:\\books\\to-read c:\\books\\to-read`\n\n### MyHomeLib support:\n\nWindows builds come with full [MyHomeLib](https://github.com/OleksiyPenkov/myhomelib) support. Just make sure that your `MyHomeLib\\converters` directory does not contain old\n`fb2mobi` and/or `fb2epub` subdirectories and unpack Windows distribution file for your archtecture there. It is a drop-in replacement and should be functional out of the box in most cases. \n\n#### NOTE:\n* `fb2mobi.exe` looks for `fb2mobi.toml` in its directory (similarly `fb2epub.exe` looks for `fb2epub.toml`), so any additional customization is easy.\n* __Do not install__ MyHomeLib in either `%ProgramFiles%` or `%ProgramFiles(x86)%` directory - it is bad idea. Since for regular user accounts In Windows those places are __write-protected__ you will have difficulties copying converters there and converters will have problems creating conversion logs which are enabled by default.\n\n### BREAKING CHANGES:\n\n* Starting with version 1.62.0 \"Send to Kindle\" functionality supported for EPUB files only. This reflects current Amazon intention to completely drop MOBI support on backend. As the result converter drops \"transfer\" subcommand, disables sending of MOBI files via e-mail and moves support for this from `fb2mobi` to `fb2epub`.\n* Starting with version 1.64.0 `--debug` flag produces zip archive with artifacts for debugging either in directory of the converter or if it is inaccessible in temporary directory. Environment variable FB2C_DEBUG set to \"Yes\" could be used with `fb2epub.exe` and `fb2mobi.exe` for similar effect. Resulting archive could be shared to facilitate troubleshooting.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frupor-github%2Ffb2converter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frupor-github%2Ffb2converter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frupor-github%2Ffb2converter/lists"}