{"id":13892861,"url":"https://github.com/cleverdevil/ditchbook","last_synced_at":"2025-04-01T17:32:45.549Z","repository":{"id":145921794,"uuid":"142634542","full_name":"cleverdevil/ditchbook","owner":"cleverdevil","description":"Move your Facebook data over to your own website using Micropub","archived":false,"fork":false,"pushed_at":"2025-01-14T03:03:19.000Z","size":13,"stargazers_count":44,"open_issues_count":1,"forks_count":1,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-25T07:42:56.505Z","etag":null,"topics":["export","facebook","indieweb","microdotblog","micropub","migrate"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cleverdevil.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2018-07-28T00:34:55.000Z","updated_at":"2025-02-09T05:37:32.000Z","dependencies_parsed_at":"2023-04-26T04:03:57.219Z","dependency_job_id":null,"html_url":"https://github.com/cleverdevil/ditchbook","commit_stats":{"total_commits":9,"total_committers":1,"mean_commits":9.0,"dds":0.0,"last_synced_commit":"5ca5b30be0cafeb1cede55773653b3a309e6a025"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cleverdevil%2Fditchbook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cleverdevil%2Fditchbook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cleverdevil%2Fditchbook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cleverdevil%2Fditchbook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cleverdevil","download_url":"https://codeload.github.com/cleverdevil/ditchbook/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246635831,"owners_count":20809329,"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":["export","facebook","indieweb","microdotblog","micropub","migrate"],"created_at":"2024-08-06T17:01:17.389Z","updated_at":"2025-04-01T17:32:45.536Z","avatar_url":"https://github.com/cleverdevil.png","language":"Python","readme":"Ditchbook: Facebook to Micropub Toolkit\n=======================================\n\nDitchbook is a toolkit for taking a high-fidelity Facebook JSON export, and\nmigrating selected content to your [Micropub](https://indieweb.org/micropub)\ncompatible website, including [Micro.blog](https://micro.blog) websites. Its a\ngreat way to own your own data, and free yourself from Facebook.\n\nUsage\n-----\n\n### Installation\n\nFirst, you'll need to clone or download this project. Ditchbook requires Python\n3.6 or greater to run. I recommend installing inside of a `virtualenv`:\n\n```sh\n$ git clone git@github.com:cleverdevil/ditchbook.git\n$ cd ditchbook\n$ virtualenv -p python3.6 venv\n$ . venv/bin/activate\n$ python setup.py develop\n```\n\n### Create a Facebook JSON Export\n\nOnce you've got a working installation, you'll need to create a Facebook export\n[here](https://www.facebook.com/settings?tab=your_facebook_information). Select\n`JSON` for the type of export and use high resolution photos. This can take a\nfew hours. Once you're done, download the ZIP file, and uncompress it into a\ndirectory. Let's assume you've placed it in a directory called \"export\"\ncontained within your `ditchbook` directory.\n\n### Ingest and Convert Facebook Data\n\nNext, you'll want to run the `ingest` script, which will try and read in data\nfrom your Facebook data, and then output it as standard\n[microformats2](http://indieweb.org/microformats2) JSON data.\n\n```sh\n$ bin/ingest export\n```\n\nIf all went well, you'll have a directory named `mf2` containing your converted\ndata. Huzzah!\n\n### Configure Micropub\n\nNext, copy `conf.py.sample` to `conf.py` and make the appropriate edits. You'll\nneed to provide your micropub endpoint, micropub media endpoint, micropub token,\nand the destination.\n\nIn addition, you can configure a mapping of names to hyperlinks for when you've\ngot \"mentions\" of people in your content.\n\n### Publish: Albums\n\nNow, its time to publish your photo albums.\n\n```sh\n$ bin/publish-albums\n```\n\nScript will loop through the albums contained in your export, give you some\nbasic information about each one, and give you the choice of migrating an album\nto your website, or not.\n\nI'd recommend against uploading albums with many hundreds (or thousands) of\nphotos. Facebook creates an album called \"Mobile Uploads\" that tends to contain\nevery single photo ever uploaded with your iOS or Android device, and you're\nbetter off not migrating that album. The photos themselves will be migrated as\n\"posts\" in a future step, if you choose.\n\n### Publish: Posts\n\nFinally, you can publish other \"posts\" from Facebook, which includes notes,\nstatus updates, and photos. Because the content isn't particularly well-suited\nfor migration, ditchbook will ignore many types of content, and focuses on the\ntypes of data you'd like on your website. That means link sharing, events, and\nother related data won't be migrated.\n\nAt this time, ditchbook doesn't support migrating videos. Maybe I'll get around\nto it in the future. We'll see.\n\n```sh\n$ bin/publish-posts\n```\n\nThis script will run in a similar fashion to the `publish-albums` script, but\nwill automatically publish posts that have at least one photo. Everything else\nwill ask you for confirmation.\n\nFuture\n------\n\nIdeally, I'd like to make this process easier and more seamless for end users.\nFeel free to use the code to do that! I have no intention of using this code for\nany commercial purpose, and instead and primarily motivated to help people free\nthemselves from Facebook, and control their own information.\n\nEnjoy!\n\nLicense\n-------\nThis code is licensed under the MIT license.\n\nCopyright 2018, Jonathan LaCour\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcleverdevil%2Fditchbook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcleverdevil%2Fditchbook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcleverdevil%2Fditchbook/lists"}