Posts Tagged ‘API’

Read our books in a browser

Saturday, August 1st, 2009

Book Glutton

Aside from applications such as Stanza on the iPhone and Aldiko on Android, several services use our API to search and import e-books.

Bookworm and Bookglutton are both web-based services designed to read EPUB files. Bookworm provides both a normal and mobile version of its service, while Bookglutton is based around the idea of a social reading experience with support for shared annotations.

With it latest update, Bookworm displays a list of most popular books from Feedbooks, while Bookglutton can perform a search on Feedbooks to import books. With both services, you can also use the URL of an EPUB book on Feedbooks to import your book.

Hierarchy support for AtomPub

Monday, May 25th, 2009

Creating a powerful API for publishing is currently our top priority, and to improve our AtomPub service we recently added support for hierarchy in AtomPub.

Nikunj R. Mehta & Colm Divilly recently released 2 Internet-Drafts: one about collection discovery and the other one about hierarchy.

Internet-Drafts are still works in progress, but since the behavior for collection discovery was already described in a previous RFC, and the rel values used in the hierarchy draft are consistent with those registered at the IANA link registry, we decided to implement both of these drafts.

Collection discovery

Collections can be discovered in our feeds now (for example /book/id/contents.atom), and they’re not limited to the service document anymore. In the feed for a book you’ll find the following code:

<app:collection href="http://www.feedbooks.com/book/id/contents.atom">
  <app:accept>application/atom+xml;type=entry</app:accept>
  <title>Add new entries</title>
  <app:categories fixed="yes">
    <category term="Part"/>
    <category term="Chapter"/>
    <category term="Section"/>
    <category term="Text"/>
  </app:categories>
</app:collection>

Hierarchy

Hierarchy is supported through:

<link rel="down" ah:count="2" href="..."/>

ah:count is used to count the number of entries in the child feed, and in the child feed you’ll get a new collection to add new entries.

AtomPub on Feedbooks

Saturday, May 2nd, 2009

Atom Publishing Protocol

To allow any developer to interact with its publishing workflow, Feedbooks is releasing a new API based on the Atom Publishing Protocol standard. Based on the principles of a REST architecture, AtomPub is used by companies such as Google (GData), Microsoft (Live Framework) or Automattic (Wordpress) as a standard way to manipulate resources.

Implementation on Feedbooks

Currently, the AtomPub service on Feedbooks is strictly compliant with the standard, but to improve several things, it’ll be extended through Atom’s standard extension model in the near future:

  • Support for hierarchies will be added, probably using the following draft proposal.
  • Currently, for each item, we create a section in the book. We’ll extend AtomPub to specify if the item is a part, a chapter, a section or a simple text flow.
  • We don’t sort the order of the items in our feeds based on the last update, but based on the order of the items in the book. We’ll add this information in our items, and enable the possibility to re-order elements through AtomPub.

Service document

Our service document can be automatically discovered in any of our webpages through the link element with service as a value for its rel property.

To avoid long service documents, we use standard Atom pagination.

Collections/Items

A book can have several megabytes of text, and for this reason we don’t list the full content of each item in a collection but rely on GET requests on the item as recommended in the specs:

Clients MUST NOT assume that an Atom Entry returned in the Feed is a full representation of an Entry Resource and SHOULD perform a GET on the URI of the Member Entry before editing it.

What it means for publishing on Feedbooks

The main goal for this first release is to provide a service that’ll work with any AtomPub client. This way, the same software could both publish a post on a Wordrpress blog and a new section in a book on Feedbooks, without any additional work to support Feedbooks. While the next release will extend AtomPub to add things that are specific to books and publishing on Feedbooks, we’ll always be compatible with any AtomPub compliant client.

One of the first use for the API will be to make conversions from various formats easier. In our team, Benoît Larroque is currently working on a script to divide an HTML file and send it to Feedbooks through AtomPub. Such scripts will focus on properly dividing the text into parts/chapters/sections that the user can finetune afterwards in our Web UI.

Integration into other platforms such as blogs (Wordpress) or Wiki will be another focus, and dedicated desktop or mobile tools for publishing could also use this service.

But the main goal of course, is to provide a service that any developer can use to build innovative tools.

iPhone Application: Bookshelf

Thursday, March 26th, 2009

Displaying books on Bookshelf

Thanks to scarynetworkguy’s tweets on Twitter, I discovered that another iPhone/iPod Touch application now supports Feedbooks for direct downloads: Bookshelf.

I don’t have a lot of details since the creator of this application didn’t contact me while working on the integration, but it seems to be using our Mobipocket files and our XML endpoints to directly list and download books.

Good news then for anyone who bought this app: it should be extremely easy to get tons of content from us.

Navigation on Bookshelf

FBReader integrates Feedbooks

Monday, January 12th, 2009

FBReader, a multi-platorm reading system just reached a new milestone in its development with the release of FBReader 0.10.0 today.

Along with an improved support for ePub and Mobipocket, FBReader also added the possibility to search and download books from Feedbooks within the application itself.

Feedbooks on your iPhone/iPod Touch

Sunday, July 13th, 2008

Stanza from Lexcycle is the first application to interact with the new Feedbooks API (upcoming blog posts and documentation in the next few weeks).
Official description:
“Read electronic books on your iPhone and iPod Touch! With a reading interface that is unprecedented in its clarity and ease of use, Stanza is bringing the eBook revolution to your pocket. Store and categorize hundreds of books in the organizer, choose from thousands of free books available in the Lexcycle Online Library, and transfer books you share from your computer using Stanza Desktop. Your entire summer reading, your class syllabus for the whole year, or all the reference material you will ever need: all at your fingertips. Literally.”

Demo: http://static.lexcycle.com/misc/Stanza_iPhone.mov

Help page on Feedbooks: http://www.feedbooks.com/help/iphone

Update on the 07/21: More than 100,000 books distributed to the iPhone/iPod Touch already !