mp

mobi-python

A library for reading (unencrypted) mobi-reader files in Python

Showing:

Popularity

Downloads/wk

0

GitHub Stars

143

Maintenance

Last Commit

7yrs ago

Contributors

6

Package

Dependencies

0

License

Categories

Readme

Mobi Python Library

This should be considered alpha quality software.

This library provides a little API for accessing the contents of an unencrypted .mobi file. Here's a short example:

from mobi import Mobi

book = Mobi("test/CharlesDarwin.mobi");
book.parse();
# this will print, 1 record at a time, the entire contents of the book
for record in book:
    print record

This library provides quite a lot of access to the metadata included in any mobibook. For example, Gutenburg's Origin of the Species:

>>> pprint(book.config)
{'exth': {'header length': 356,
          'identifier': 1163416648,
          'record Count': 15,
          'records': {100: 'Charles Darwin',
                      101: 'Project Gutenberg',
                      105: 'Natural selection',
                      106: '1999-12-01',
                      109: 'Public domain in the USA.',
                      112: 'http://www.gutenberg.org/files/2009/2009-h/2009-h.htm',
                      201: '\x00\x00\x00\x00',
                      202: '\x00\x00\x00\x01',
                      203: '\x00\x00\x00\x00',
                      204: '\x00\x00\x00\x01',
                      205: '\x00\x00\x00\x06',
                      206: '\x00\x00\x00\x02',
                      207: '\x00\x00\x00)',
                      300: '\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf4\xed\xec\xbe@\x94'}},
 'mobi': {'DRM Count': 0,
          'DRM Flags': 0,
          'DRM Offset': 4294967295,
          'DRM Size': 0,
          'EXTH flags': 80,
          'First Image index': 334,
          'First Non-book index': 329,
          'Format version': 6,
          'Full Name': 'The Origin of Species by means of Natural Selection, 6th Edition',
          'Full Name Length': 64,
          'Full Name Offset': 604,
          'Generator version': 6,
          'Has DRM': False,
          'Has EXTH Header': True,
          'Input Language': 0,
          'Language': 9,
          'Mobi type': 2,
          'Output Language': 0,
          'Start Offset': 2808,
          'Unique-ID': 4046349163,
          'header length': 232,
          'identifier': 1297039945,
          'text Encoding': 1252},
 'palmdoc': {'Compression': 2,
             'Encryption Type': 0,
             'Unknown': 0,
             'Unused': 0,
             'record count': 327,
             'record size': 4096,
             'text length': 1336365}}
>>>

Retrieving Author and Title

The author and title of a book can be retrieved using the author() and title() methods respectively on a Mobi() object. The parse() method needs to have already been called.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial