{"id":30138487,"url":"https://github.com/pmiddend/twitter-backup-to-markdown","last_synced_at":"2025-08-11T01:35:59.110Z","repository":{"id":293147761,"uuid":"981197513","full_name":"pmiddend/twitter-backup-to-markdown","owner":"pmiddend","description":"Convert your old (2022) Twitter backup tweets.json to Markdown","archived":false,"fork":false,"pushed_at":"2025-05-10T15:10:56.000Z","size":3,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-04T00:07:15.922Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/pmiddend.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,"zenodo":null}},"created_at":"2025-05-10T15:02:32.000Z","updated_at":"2025-05-10T15:10:28.000Z","dependencies_parsed_at":"2025-05-13T23:41:23.254Z","dependency_job_id":null,"html_url":"https://github.com/pmiddend/twitter-backup-to-markdown","commit_stats":null,"previous_names":["pmiddend/twitter-backup-to-markdown"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/pmiddend/twitter-backup-to-markdown","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmiddend%2Ftwitter-backup-to-markdown","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmiddend%2Ftwitter-backup-to-markdown/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmiddend%2Ftwitter-backup-to-markdown/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmiddend%2Ftwitter-backup-to-markdown/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pmiddend","download_url":"https://codeload.github.com/pmiddend/twitter-backup-to-markdown/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmiddend%2Ftwitter-backup-to-markdown/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269818808,"owners_count":24480074,"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","status":"online","status_checked_at":"2025-08-10T02:00:08.965Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-08-11T01:35:58.409Z","updated_at":"2025-08-11T01:35:59.087Z","avatar_url":"https://github.com/pmiddend.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# twitter-backup-to-markdown\n\n## Rationale\n\nIf you left Twitter (now X) around 2022, you got a `.zip` file containing basically a whole web site that you can open in the browser to view your tweet history. Here's an excerpt from the zip file contents:\n\n```\ndata/\ndata/README.txt\nYour archive.html\nassets//\nassets/images//\nassets/images/groupAvatar.svg\nassets/images/favicon.ico\nassets/images/twemoji//\nassets/images/twemoji/v//\nassets/images/twemoji/v/latest//\nassets/images/twemoji/v/latest/svg//\nassets/images/twemoji/v/latest/svg/1f9b9-1f3fe-200d-2640-fe0f.svg\nassets/images/twemoji/v/latest/svg/1f9dc-1f3fe-200d-2640-fe0f.svg\nassets/images/twemoji/v/latest/svg/2198.svg\nassets/images/twemoji/v/latest/svg/1f9b6-1f3fd.svg\nassets/images/twemoji/v/latest/svg/1f9db-1f3fb.svg\nassets/images/twemoji/v/latest/svg/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fc.svg\nassets/images/twemoji/v/latest/svg/1f449-1f3fb.svg\nassets/images/twemoji/v/latest/svg/1f44e-1f3fc.svg\n ...\n```\n\nThis is, of course, totally fine. But in my case, I wanted a single Markdown (md) file that contained all Tweets. I also didn't care much about linked images. I just wanted the text. And I wanted to learn Rust. So I wrote this tool.\n\n## Usage\n\nFrom your `.zip` file, take the `data/tweets.js` file and cut off everything until the `[` character. For me it looked like this:\n\n```javascript\nwindow.YTD.tweets.part0 = [\n  {\n    \"tweet\" : {\n      \"edit_info\" : {\n      ...\n    }\n...\n```\n\nThis is Javascript. We want JSON. So afterwards it looked like this:\n\n```json\n[\n  {\n    \"tweet\" : {\n      \"edit_info\" : {\n      ...\n    }\n...\n]\n```\n\nSave it under `tweets.json` inside this repository. Then install `cargo` and run:\n\n```\ncargo run\n```\n\nIt will spit out the Markdown on the standard output, so you might want to do this instead:\n\n```\ncargo run \u003e output.md\n```\n\nAnd voila!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpmiddend%2Ftwitter-backup-to-markdown","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpmiddend%2Ftwitter-backup-to-markdown","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpmiddend%2Ftwitter-backup-to-markdown/lists"}