Разработчик fb2conv возобновил работу над программой.

Напомню историю использования:

Не пробовал запускать обновлённую утилиту под macOS, сразу допилил её в Docker’е. Криво сделана дистрибуция у автора, пришлось костылями прибивать к docker’у.

И добавил возможность списывания fb2 по URL (тестировал на Flibusta):

$ docker run -it --rm -v /Users/ctrld/Downloads:/data \
    -v ~/.fb2conv/fb2conv.config.s:/root/.fb2conv/fb2conv.config \
    ctrld/fb2conv \
    http://flibusta.is/b/217922/fb2

Популярную альтернативу в docker загонять лень, мне этого тула хватает.

За компанию — функция, которой я закидываю обычно книги на Kindle (не причёсывал, скопировал как было, на пробелы и спецсимволы не расчитываю, всё было для моего личного использования):

###
# Examples:
# - Convert fb2 and send it to my Kindle
#   convert_fb2 ~/Downloads/Kizi_Pesnya-moryaka.67291.fb2.zip
# - send it to 2nd Kindle
#   convert_fb2 ~/Downloads/Kizi_Pesnya-moryaka.67291.fb2.zip d
# - Convert and send to all Kindles
#   convert_fb2_all ~/Downloads/Kizi_Pesnya-moryaka.67291.fb2.zip
# Parameters
#   file
#   user
#     s - 1st
#     d - 2nd
#     empty - 1st
convert_fb2 () {
  local file_in="$1"
  local user="$2"
  local file=""

  if [[ -z $user ]]; then
    user="s"
  fi

  if [[ $user != "s" && $user != "d" ]]; then
    echo "Usage: convert_fb2 <s|d>"
    return 1
  fi

  if echo "$file_in" | grep -E "^(http|https)://" &> /dev/null; then
    file="$file_in"
  else
    file=$(basename $file_in)
    if [[ ! -f ~/Downloads/$file ]]; then
      echo "Could not find fb2 file $file in ~/Downloads directory"
      return 1
    fi
  fi

  echo "Converting $file"
  docker run -it --rm -v /Users/ctrld/Downloads:/data \
    -v ~/.fb2conv/fb2conv.config.$user:/root/.fb2conv/fb2conv.config ctrld/fb2conv $file
}

convert_fb2_all () {
  local file="$1"
  for u in s d;
  do
    convert_fb2 "$file" $u
  done
}

Всё равно процесс мне не особо нравится, собираюсь усовершенствовать, например, до отправки линка через бот Telegram.