Now with better default fonts (Google's free Droid fonts) and border cropping.
Now with better default fonts (Google's free Droid fonts) and border cropping.
Over the past day, a few readers have asked me what converted PDFs look like on the Kindle 2 and how readable they are. (One of you even said you'll buy a Kindle 2 if I post some screenshots.) And yes, Amazon pays me a referral fee for every Kindle 2 I sell. So far, I've lured two of you in ;)
All the screenshots below have been reduced. Click on them to see full-size versions.
The Savory conversion process
A scientific paper, converted from PDF
Fit to screen||
Fit to height:
From the bits of feedback I've gotten on Savory's initial release on Friday, it seems pretty clear that people want to be able to view rendered PDFs that look "like they're supposed to"
UPDATED 5 April 2009 - 11:16 EDT: Pointers changed to Savory installer and uninstaller 0.06 which provide minor run-time reliability and book-detection fixes. If you are running 0.05, you should uninstall the old version and install 0.06.
UPDATED 6 April 2009 - 9:41 EDT: I put together beta-quality support for picture-perfect PDF production. You can try it out if you promise to report back
UPDATED 6 April 2009 - 22:44 EDT:Screenshots of savory's improved PDF converter.
Over the past few weeks, I've spent much of my spare time with my new Kindle2...When I bought it, I was excited to have a gorgeous, solidly built ebook reader backed by Amazon's catalog. I figured I'd end up reading a bit more than I already did and spending a bit more money on books than I already did. Both turned out to be true. What I didn't count on was finding a new hobby.
Hi, I'm Jesse and I have a software problem.
When I get a new bit of hardware, I often end up writing software for it. In 2001, when I got one of Canon's first Digital SLRs, I found myself writing code to extract usable images from the "RAW" image files the camera produced. This fall, I picked up a new T-Mobile G1 to replace an iPhone...and found the email client lacking. The Android platform that the G1 runs on is free and open. So I dusted off some long-unused Java experience and created K9, an enhanced version of Android's email client.
I really didn't think this would happen with the Kindle. I was wrong.
Savory is a native ebook conversion package for the Kindle 2. It lets you download and read PDFs and ePubs on the Kindle without a manual conversion step.
No. There have actually been a number of other user-generated Kindle updates. igorsk created the toolset which generates Kindle and Kindle2 updates. Other members of the Kindle community have created Kindle2 updates which change the Kindle's fonts to support books in non-western language, let you set your own screensavers and a bunch more. These packages already contain everything a technically savvy user would need to install software on the Kindle. What I did was to port an ebook-conversion package to run reasonably efficiently on a 500mhz ARM with 128 megabytes of system memory and to write a small program which watches for new ebooks in a few chosen formats and run those through the conversion tool.
Nope. Not at all. KindlePid is a tool for reverse-engineering your Kindle's "Mobipocket Pid." KindlePid lets you buy DRM-protected ebooks from providers other than Amazon. Savory converts PDFs and ePubs that you download to your Kindle over WhisperNet or 3G into unprotected .mobi documents. There are web-based and desktop tools which can do everything Savory can do. Savory just brings these features directly to your Kindle 2.
No. Savory does not include support for ebooks protected by DRM. DRM is an incredibly "hot" topic in the ebook world right now. There are varying opinions on its efficacy. My opinions on the matter aren't relevant, except to say that I am not touching the topic with a 10 foot pole. It will not convert DRM-protected ebooks into a format the Kindle will read. It will not add or remove DRM from any ebook.
No. It just makes some things that are a little cumbersome out of the box simple and transparent. It's already possible to use desktop and web based services to transcode ePub and PDF documents into the Kindle-compatible Mobipocket format. Amazon also provides both free and for-pay email-based conversion services you can use.
I'm in love with my Kindle. I've been reading ebooks on screens of various sorts for many years, but the Kindle2 is the first device that I actually enjoy reading as much as I enjoy reading paper books. I've tried other ebook readers, but for a variety of reasons, they just don't work for me. My goal is to make it easier for readers to read more free content on the Kindle.
I got the idea after reading Tim O'Reilly's editorial in Forbes about why the Kindle platform will be more successful if it's more open. My first experiments were actually in server-based transcoders to convert PDFs and epubs to Kindle-compatible Mobipocket books, but I quickly realized that running the converter locally on the Kindle would result in a much better user experience and make the Kindle more useful. And yeah, it seemed like an interesting project.
Savory allows you to read .epub and .pdf files on your Kindle.
It does this by converting these documents to Mobipocket format
ebooks using Calibre.
You should note that the version of Calibre Savory uses only works
with text-based PDFs. If you have image-based or scanned PDFs,
conversion will fail. (Images in your PDFS are ok. There
just needs to be some text to extract.) Updated: Screenshots of the new and improved PDF converter.
Savory installs a small program which runs on your Kindle and watches for new files in the 'Documents' directory with names ending in '.epub' and '.pdf'. When the system notifies Savory that a document has shown up, it wakes up and runs an open-source file conversion program called Calibre. Savory also updates your Kindle2's browser configuration file to tell it that the Kindle can now handle .pdf and .epub documents.
Savory changes the browser configuration file to allow download of pdf and epub documents. It adds a new "init" script which tries to mount savory-image.ext3 on boot. If that succeeds, it runs bin/savory_daemon from within the image mentioned above. savory_daemon is a Python script that watches the documents/ directory and invokes a converter based on Calibre when it sees something that looks right.
No. If you have a problem with Savory, DO NOT CONTACT AMAZON. This isn't software they wrote. They're not responsible for it. Please don't bother them about it.
If the nice folks at Amazon contact me (you can find my email address at the bottom of this FAQ) and ask me to stop distributing Savory, I will do so. My goal isn't to "hack" the Kindle, deprive Amazon of revenue or place an increased support burden on Amazon's Kindle team. I just want to make the Kindle2 an even more useful reader than it already is.
I don't know. If you're not comfortable with the possibility, do not install Savory.
I guarantee that Savory will not give you the ability to fly or to see through walls. Past that, no. Savory comes with no warranty or guarantee OF ANY KIND. If it causes your Kindle to burst into flames or gives your pets the ability to read, you are ENTIRELY ON YOUR OWN. By downloading and installing Savory, you accept full responsibility for anything it does.
Savory is distributed under the MIT license:
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Head on over to the MobileRead Kindle forums and post your sob story. Hopefully, someone there can help figure out what went wrong and help you get back to a working state. Remember that Savory comes with absolutely no warranty and everybody on MobileRead who might help you out is a volunteer.
Installing Savory or any other third-party update on your Kindle may destroy your Kindle. If that happens, you will have a $360 paper weight. DO NOT INSTALL SAVORY UNLESS YOU'RE WILLING TO END UP WITH A DEAD KINDLE.
You'll need to download three files:
This file contains Savory's file-conversion system and assorted tools.
Download and unzip this file. Then, mount your Kindle2 on your desktop with USB and drag savory-image.ext3 into the "system" folder on your Kindle2.
This file is a Kindle update which will remove an installed copy of Savory from your Kindle. Please keep a copy of this file handy in case you ever need it.
This file is a Kindle update.
You should copy this file to the root directory of your Kindle. After you do that, unmount the kindle and click the "Menu" button, select "Settings", click the "Menu" button and click "Update Your Kindle" This will apply the update.
If "Update Your Kindle" is greyed out, mount the Kindle on your desktop again and DELETE the update file. Then, unmount the Kindle. If you're not already on the Settings page, click "Menu" and select "Settings". Make sure your Kindle is plugged into your computer with the USB cable. Click "Menu" and select "Restart". The Kindle will boot up and immediately enter USB mode. Copy the update file to the Kindle again and follow the instructions above.
I've found that the Kindle is much happier recognizing update files if you reboot the Kindle while it's connected to your computer with USB and copy the update to the Kindle before the Kindle's UI comes up at all
If you copy the file to your kindle and reboot without applying the update, it will end up in a reboot loop - I haven't figured out why yet. If that happens, hold down the "Home" button while booting to get into recovery mode. From there, you can mount the Kindle on your desktop with USB, delete the .bin file and try again.
Mount your Kindle on your computer with USB. Rename the savory-image.ext3 file in the Kindle's "System" folder. Then, unmount your Kindle, click "Menu", select "Settings", click "Menu" and click "Restart your Kindle." When you later want to re-enable Savory, repeat the process, naming the file back to "savory-image.ext3"
If you've decided that Savory isn't for you or you need to remove Savory to perform an Amazon-provided system update, it's a two step process. First, you'll need to follow the instructions above about how to temporarily turn off Savory. Then, download and run the "update_RemoveSavory-0.06.bin" system update and apply it just like you applied the original system update.
Amazon's system updates very carefully check each and every file they're about to update to make sure that they are exactly as Amazon left them. This ensures that a system update doesn't unexpectedly corrupt an "important" file. Savory updates the Kindle's browser configuration to allow download of pdf and epub files, adds an "init script" to start up the savory daemon which watches for new files to convert and modifies the Kindle's "version.txt" file. This way, anyone doing support for your Kindle will know it's not running a stock system image and NOT ELIGIBLE FOR SUPPORT FROM AMAZON.
Savory copies each file it modifies before making changes. All files Savory modifies are saved with the file suffix "-beforesavory". When you uninstall Savory, it restores the pristine versions of these files.
It makes it shorter. So far, it doesn't feel like it makes it much shorter. Comparisons and benchmarks would be appreciated
You'll find the originals of any book Savory converts (or fails to convert) in the savory-archive folder on your Kindle when you browse it from your computer.
Savory is hosted on Google Code: code.google.com/p/savory
Savory wouldn't have been possible without kindle-update-maker, created by Igor Skochinsky.
Savory is about 200 lines of Bourne Shell and Python, built to drive a modified copy of Kovid Goyal's open-source Calibre ebook conversion and management suite.
The disk image containing the Savory daemon and the modified version of Calibre contains a number of dependencies, listed below. You can download all of these source tarballs from code.google.com/p/savory.
The patches to Calibre are available in the same source repository as the rest of Savory. All other packages are unmodified.
http://bazaar.launchpad.net/%7Ekovid/calibre/trunk Revision 2689
http://unladen-swallow.googlecode.com/svn/branches/release-2009Q1-maint Revision: 370
http://git.dbzteam.org/?p=pyinotify.git;a=snapshot;h=HEAD;sf=tgz as of 2009-03-30 - pyinotify-0.8.1-py2.6.egg-info
The unique parts of Savory are about 85 lines of shell script and 135 lines of Python.
Savory uses Calibre, a free and open ebook conversion suite. In turn, Calibre uses Python, Qt and some other libraries. While I've slimmed down the requirements by hand, we have a long way to go before Savory fits in 5 or 10 megabytes.
The original code in Savory is available under the terms of the MIT License. The various components bundled with Savory are all free or open software, but they're not all released under the same license.
Savory supports a subset of the conversions provided by Calibre. If you contribute to Calibre, Savory should be able to take advantage of those improvements.
I don't know. Can you?
Don't even think about it. The Kindle's 3G internet access is currently provided gratis to all Kindle users for the purpose of browsing the web and downloading ebooks. Amazon could choose to start charging for this "experimental" feature at any time. On top of that, Amazon knows where you live, has your credit card number and, thanks to the Kindle's GPS, knows where you are right now.
The MobileRead forums are probably the right place to start.
When I first got a my Kindle2, I experimented with a web-based transcoding proxy which lets you download ePub and PDF files to the Kindle using a tool running on a server. I called the project an "unsavory ePub hack." This new tool is a good deal more elegant and easier to use. It's no longer unsavory. That must mean it's Savory
Great! That's the kind of thing I like to hear. Savory is (and will always be) 100% free. BUT! Shameless plug warning If you buy a kindle (or anything else) from Amazon, I'll earn a referral fee which goes to feed my ebook habit. Buying a Kindle 2 from Amazon through this site helps us tell Amazon that we want the Kindle to support open formats. If more than a few of you buy a Kindle through this blog, I'll post a running tally.
I'm Jesse Vincent. You can reach me at jesse - at - fsck.com. Please don't contact me directly for help with Savory, even if it sets your dog on fire or you're sure that I'll make an exception for you.
If you need help with Savory, I refer you to the forums at mobileread.com. (See above)