Library/CLI utility to parse, organize and export messages in Facebook archives
Project description
CLI tool/library to parse, organize and export your Facebook message archives.
Facebook data can be downloaded via the link at the bottom of your settings page: https://www.facebook.com/settings
This library makes use of the messages.htm file located in the html/ directory inside your archive.
Why?
Facebook exports your messages as one gigantic HTML file. Messages are grouped into individual threads, though chats with a single person are broken up throughout the file, which reads oldest-to-newest. That’s annoying. This fixes that.
Installation
To install via pip, just run:
$ pip install fbparser
To install locally, from the same directory as setup.py, run:
$ python setup.py install
Example use
To export your threads to CSV, from the directory containing messages.htm, run this command:
$ fbparser --csv messages.htm
This will create a directory named fbparser_out/ in your current directory containing your CSV exports. Exports can also be made in JSON or plaintext formats (with --json and `--text), or printed to the console with --stdout
To specify your Facebook name (to remove from filenames), use the --name flag. If you specify your Facebook UID with --uid, that UID will be replaced with the name you specified. For example:
$ fbparser --csv --name="John Smith" --uid="12345@facebook.com" messages.htm
Everywhere 12345@facebook.com is found, it will be replaced with John Smith, which will also be removed from export filenames for clarity.
Replacing names/UIDs
Facebook’s archives are littered with UIDs and people that have changed their display names multiple times. To substitute certain names, feed in a file with --replace=file_name.txt
Example:
J Smith=John Smith 12345@facebook.com=John Smith John H Smith=John Smith
Each line should be formatted like Name to replace=New name
FBParser merges threads containing the same users, so if you see numerous threads for the same person with different display names (or UIDs), this will correct those names prior to merging the threads.
Example:
$ fbparser --csv --uid="12345@facebook.com" --name="John Smith" --replace="replace.txt" messages.htm
Parsing errors
If you encounter errors trying to parse an archive, use the --sanitize flag. This creates a backup as messages.htm.bak and writes the new version to the original filename before attempting to parse the file.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file fbparser-1.0.0.zip
.
File metadata
- Download URL: fbparser-1.0.0.zip
- Upload date:
- Size: 13.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 299606b5b8f8af9d9969cb844ad54d57851234a65530086a31daa56fbaa51d81 |
|
MD5 | 39a9cddbcc9577731d9dff201983f609 |
|
BLAKE2b-256 | a39b69262e61a69756ef4fbcc50261cd124f0ec797481b61844f3c233eb8cd98 |
File details
Details for the file fbparser-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: fbparser-1.0.0-py3-none-any.whl
- Upload date:
- Size: 12.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a4972163dd62ded9126f2aaa1f07bf225c9c3eb8442d2e8aa5e8447bfcc4c13 |
|
MD5 | 8830e905ca0c45864f81b29c23b06f1a |
|
BLAKE2b-256 | a0dd5c2d22d6057fad8c2d8adec816c522330af34111f375391c36e461925c11 |