{"id":15533283,"url":"https://github.com/keyweeusr/fbmessageparser","last_synced_at":"2025-11-09T19:30:19.428Z","repository":{"id":153046226,"uuid":"110947900","full_name":"KeyWeeUsr/fbmessageparser","owner":"KeyWeeUsr","description":":zap: Parse Facebook messages from the downloaded archive","archived":false,"fork":false,"pushed_at":"2017-11-26T09:07:38.000Z","size":6,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-28T08:27:49.379Z","etag":null,"topics":["archive","facebook","message","parser"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KeyWeeUsr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-11-16T08:59:29.000Z","updated_at":"2019-05-28T16:19:59.000Z","dependencies_parsed_at":"2023-07-10T02:20:39.469Z","dependency_job_id":null,"html_url":"https://github.com/KeyWeeUsr/fbmessageparser","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KeyWeeUsr%2Ffbmessageparser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KeyWeeUsr%2Ffbmessageparser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KeyWeeUsr%2Ffbmessageparser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KeyWeeUsr%2Ffbmessageparser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KeyWeeUsr","download_url":"https://codeload.github.com/KeyWeeUsr/fbmessageparser/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239576798,"owners_count":19662113,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["archive","facebook","message","parser"],"created_at":"2024-10-02T11:35:18.990Z","updated_at":"2025-11-09T19:30:19.384Z","avatar_url":"https://github.com/KeyWeeUsr.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fbmessageparser\n\nImagine you download an archive of all the stuff you do on Facebook with your\nprofile - posts, photos, even messages. Well, messages aren't saved in\na friendly format. This little script parses the messages for you from this\nugly and cluttered format:\n\n    \u003chtml\u003e\n        \u003cbody\u003e\n            \u003cdiv class=\"contents\"\u003e\n                \u003ch1\u003eYour Profile\u003c/h1\u003e\n                \u003cdiv\u003e\n                    \u003c!-- conversation --\u003e\n                    \u003cdiv class=\"thread\"\u003e\n                        Participant 1, Participant 2, ...\n                        \u003cdiv class=\"message\"\u003e\n                            \u003cdiv class=\"message_header\"\u003e\n                                \u003cspan class=\"user\"\u003eUser Name 1\u003c/span\u003e\n                                \u003cspan class=\"meta\"\u003e\n                                    Day, Full Date at Time Timezone\n                                \u003c/span\u003e\n                            \u003c/div\u003e\n                        \u003c/div\u003e\n                        \u003c!-- message body --\u003e\n                        \u003cp\u003eHi\u003c/p\u003e\n\n                        \u003cdiv class=\"message\"\u003e\n                            \u003cdiv class=\"message_header\"\u003e\n                                \u003cspan class=\"user\"\u003eUser Name 2\u003c/span\u003e\n                                \u003cspan class=\"meta\"\u003e\n                                    Day, Full Date at Time Timezone\n                                \u003c/span\u003e\n                            \u003c/div\u003e\n                        \u003c/div\u003e\n                        \u003c!-- message body --\u003e\n                        \u003cp\u003eNot now\u003c/p\u003e\n\n                        \u003cdiv class=\"message\"\u003e\n                            \u003cdiv class=\"message_header\"\u003e\n                                \u003cspan class=\"user\"\u003eUser Name 1\u003c/span\u003e\n                                \u003cspan class=\"meta\"\u003e\n                                    Day, Full Date at Time Timezone\n                                \u003c/span\u003e\n                            \u003c/div\u003e\n                        \u003c/div\u003e\n                        \u003c!-- message body --\u003e\n                        \u003cp\u003e😂\u003c/p\u003e\n\n                        \u003cdiv class=\"message\"\u003e\n                            \u003cdiv class=\"message_header\"\u003e\n                                \u003cspan class=\"user\"\u003eUser Name 1\u003c/span\u003e\n                                \u003cspan class=\"meta\"\u003e\n                                    Day, Full Date at Time Timezone\n                                \u003c/span\u003e\n                            \u003c/div\u003e\n                        \u003c/div\u003e\n                        \u003c!-- message body: \\n, sticker, ... --\u003e\n                        \u003cp\u003e\u003c/p\u003e\n                    \u003c/div\u003e\n                    ...\n                \u003c/div\u003e\n            \u003c/div\u003e\n            ...\n        \u003c/body\u003e\n    \u003c/html\u003e\n\nto a very simple conversation files (`parsed_conversations/conv_NNNN.txt`):\n\n    participant 1, participant 2, ...\n    =================================\n    User Name 1 | Day, Full Date at Time Timezone\n    ---------------------------------------------\n    Hi\n\n    User Name 2 | Day, Full Date at Time Timezone\n    ---------------------------------------------\n    Not now\n\n    User Name 1 | Day, Full Date at Time Timezone\n    ---------------------------------------------\n    😂\n\n    User Name 1 | Day, Full Date at Time Timezone\n    ---------------------------------------------\n    \u003cempty\u003e\n\n### But why?\n\n* Splitting messages. It's better to split into conversation files because\n  those are better to open even in an editor such as `Notepad` or likes that\n  will gladly freeze if you try to open a slightly bigger file. Facebook puts\n  everything into a single file with HTML clutter everywhere.\n\n* HTML clutter means larger file. With simplifying the output I personally got\n  about 20MB down of an original 60MB file. Quite insane, right? ;)\n\n* Readability counts. Facebook dumps your messages into a single-line string\n  therefore you either prettify the HTML and increase the size of the file\n  massively or open the file in the browser - good luck with large files,\n  you'll love the smooth scrolling - and copy-paste the conversations manually\n  out of there - seriously, no one would do that.\n\n### How to use\n\n    pip install beautifulsoup4\n    python main.py messages.htm\n\nand all the conversations will be splitted to the separate folder\n`parsed_conversations` right next to the `main.py` file.\n\n#### Note: Python 2 is not supported\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeyweeusr%2Ffbmessageparser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeyweeusr%2Ffbmessageparser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeyweeusr%2Ffbmessageparser/lists"}