Skip to main content

Print apple plist files in a readable and comprehensible way

Project description

catplist

catplist is a small python utility to print apple plists (Information Property List) in a readable and comprehensible manner.

Rationale

While plistutil exists to convert plists from binary to xml and vice versa plists are usually still hard to read for humans or parse from the command line with tools like grep. catplist aims to make this task easier. It's main focus is to print a human-readable and parsable representation of the plist. Additionally, plists often contain binary data, or some strange nested key value structures originating from NSArchiver or NSKeyedArchiver serialization. catplist aims to deliver a good readable representation by unwrapping those structures.

Try it on some Metadata out of your iPhone Photo library like *.albummetadata, *.memorymetadata, *.facemetadata, *.foldermetadata or just regular *.plist files.

For editing and more accurate/original representation of plists or search for PlistBuddy, XCode, plutil.

Features

  • wildcard support
  • recurse into directories with option --recurse
  • reads binary and xml plists
  • NSKeyedArchiver: unpacks NSKeyedArchiver plists that just add an layer of indirectness into the key value store.
  • Nested plists: in some plists apple stores plist as a value. catplist unwraps those nested plists.
  • Interpretation of some of Binary Data stored within plists, usually consisting of:
    • UUID data
    • xz compressed data
    • binary plists

Usage

catplist myplist.plist
> catplist --help
Usage: catplist [OPTIONS] [FILE]...

  This is catplist: print plists for human reading and easy grepping.

Options:
  -R, --raw                       print raw plist contents, will not unpack
                                  nested data & plists
  -r, --recurse                   recurse into subdirs, reads all files ignores
                                  non plist files
  -f, --format [python|json|yaml]
                                  format output in ...
  --help                          Show this message and exit.


Install

Installation via PyPi:

pip install catplist

Known Bugs

  • valid plists with a date in year 0 will not be read since the underlying python datetime implementation is currently not allowing year 0 dates. See also Python Issue 41083

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

catplist-0.0.6.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

catplist-0.0.6-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file catplist-0.0.6.tar.gz.

File metadata

  • Download URL: catplist-0.0.6.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for catplist-0.0.6.tar.gz
Algorithm Hash digest
SHA256 bd3c40fecf04f72557131d31ed0a0ae9fa4bd248c7c7214c2460db72ad80c4bc
MD5 9594c3622c3c2eff03c84c62bb138bcf
BLAKE2b-256 77dd13ddb46f40960a3a1cde698e92eed786a10e60d1ae5625ae57a69e0daaff

See more details on using hashes here.

File details

Details for the file catplist-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: catplist-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for catplist-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 3db4dc9a869bd6f9f5ca07debf37f08fc97718e661791503d706423878e34a2e
MD5 3ba04f0291367db61376909603571594
BLAKE2b-256 0979045a118cf0f6ac17169005dc01a058c83f080edf98203e0ea4daa570dd33

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page