{"id":16636918,"url":"https://github.com/widdowquinn/lptwitdelete","last_synced_at":"2025-07-30T08:10:10.873Z","repository":{"id":144924596,"uuid":"287913218","full_name":"widdowquinn/lptwitdelete","owner":"widdowquinn","description":"Script and package to delete Twitter statuses.","archived":false,"fork":false,"pushed_at":"2022-11-18T10:51:02.000Z","size":34,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-12T01:45:36.189Z","etag":null,"topics":["privacy","twitter"],"latest_commit_sha":null,"homepage":"https://widdowquinn.github.io/lptwitdelete/","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/widdowquinn.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":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-08-16T09:33:08.000Z","updated_at":"2022-02-06T20:04:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"ba8b8d59-cc0e-4c31-95f6-88db3863a915","html_url":"https://github.com/widdowquinn/lptwitdelete","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/widdowquinn/lptwitdelete","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/widdowquinn%2Flptwitdelete","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/widdowquinn%2Flptwitdelete/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/widdowquinn%2Flptwitdelete/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/widdowquinn%2Flptwitdelete/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/widdowquinn","download_url":"https://codeload.github.com/widdowquinn/lptwitdelete/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/widdowquinn%2Flptwitdelete/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267834807,"owners_count":24151642,"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-07-30T02:00:09.044Z","response_time":70,"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":["privacy","twitter"],"created_at":"2024-10-12T06:23:21.848Z","updated_at":"2025-07-30T08:10:10.732Z","avatar_url":"https://github.com/widdowquinn.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# README.md - `lptwitdelete`\n\n\u003c!-- TOC --\u003e\n\n- [README.md - `lptwitdelete`](#readmemd---lptwitdelete)\n  - [Overview](#overview)\n  - [Installation](#installation)\n    - [API keys](#api-keys)\n  - [Documentation](#documentation)\n  - [Quick Start](#quick-start)\n    - [Delete the most recent 3200 statuses using the Twitter API](#delete-the-most-recent-3200-statuses-using-the-twitter-api)\n    - [Delete statuses between two dates, using a downloaded archive](#delete-statuses-between-two-dates-using-a-downloaded-archive)\n    - [Acquiring your complete Twitter archive](#acquiring-your-complete-twitter-archive)\n    - [Dry runs](#dry-runs)\n  - [Licensing](#licensing)\n\n\u003c!-- /TOC --\u003e\n\n## Overview\n\n`lptwtitdelete` is a Python script and package for deleting your account's Twitter statuses on the basis of a limited number of status criteria.\n\n**NOTE: DELETING STATUSES FROM TWITTER IS PERMANENT. USE THIS SOFTWARE AT YOUR OWN RISK.**\n\n## Installation\n\nTo install `lptwitdelete`, clone this repository and install using `setup.py`:\n\n```bash\ngit clone git@github.com:widdowquinn/lptwitdelete.git \u0026\u0026 cd lptwitdelete\npython setup.py install\n```\n\nThis will install the `lptwitdelete` package for Python, and the script `lptwitdelete`, which can also be run using the alias `lptd`.\n\n### API keys\n\nAPI keys are required to interact with Twitter. You should obtain these for yourself from [https://developer.twitter.com](https://developer.twitter.com). By default, `lptd` will look for these keys in the file `~/.twitter/lptwitdelete/conf.yml`, and expects the following information in YAML format:\n\n```yaml\nlptwitdelete:\n  api_key:\n    XXXXXXXXXXXXXXXXXXXXXXXXX\n  api_secret_key:\n    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n  access_token:\n    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n  access_token_secret:\n    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n```\n\nIf you choose to store your API keys elsewhere, this location can be specified with the `-c`/`--confpath` option.\n\n## Documentation\n\nDetailed documentation for this package can be found on ReadTheDocs, at:\n\n- [https://lptwitdelete.readthedocs.io/en/latest](https://lptwitdelete.readthedocs.io/en/latest)\n\nA brief summary of usage is provided below, in the Quick Start\n\n## Quick Start\n\nThe `lptwitdelete` program can be run using the name `lptwitdelete`, or the abbreviation `lptd`. For brevity, this `README.md` uses the `lptd` abbreviation.\n\n### Delete the most recent 3200 statuses using the Twitter API\n\nIssue the following command at the terminal:\n\n```bash\nlptd -v --delete -o deleted.json \u003cYOUR_USERNAME\u003e\n```\n\nSo long as the authentication details are correct, `lptd` will do the following:\n\n1. acquire your recent Twitter stream (up to the most recent ≈3200 status updates) using the online API\n2. write these tweets to the file `deleted.json` in machine-readable [`JSON` format](https://en.wikipedia.org/wiki/JSON)\n3. attempt to delete the statuses from Twitter\n\nThe unique IDs of statuses which `lptd` cannot delete will be written to the terminal if the `--verbose` or `-v` option is selected.\n\n### Delete statuses between two dates, using a downloaded archive\n\nIf you have a local archive of your Twitter history (see below) you can use this to identify statuses for deletion. In this example, we will use the `--start_date` and `--end_date` options to restrict deletion of tweets to a particular date.\n\nIssuing the command at the terminal:\n\n```bash\nlptd -v --delete -a tweets.js -o deleted.json --start_date 2020-01-01 --end_date 2020-02-18 \u003cYOUR_USERNAME\u003e\n```\n\nIf authenticated, the command will delete from your timeline all tweets between 1st January 2020 and 18th February 2020, inclusive. The script does the following:\n\n1. reads in your local Twitter archive (in `JSON` format) from `tweets.js`\n2. filters the statuses from the archive, retaining only those that were created on or after 1st January 2020, up to and including 18th February 2020\n3. writes the retained tweets to the file `deleted.json`, in `JSON` format\n4. attempts to delete each of the statuses from step (2) from Twitter\n\n### Acquiring your complete Twitter archive\n\nThis tool uses the [`tweepy` library](https://www.tweepy.org/) to access the Twitter API. The API is limited by Twitter to return no more than (approximately) the most recent 3200 Twitter statuses, so to filter and delete on the basis of older statuses you will need to acquire your own Twitter archive. This can be done via the Twitter web interface as follows.\n\n1. Log on to the Twitter web interface [https://twitter.com/\u003cYOUR_USERNAME\u003e](https://twitter.com)\n2. Click on the **More** icon (three dots in a circle), and select **Settings and Privacy**\n3. Under **Data and Permissions**, click on **Your Twitter data**\n4. Click on **Download an archive of your data**\n\nSave the compressed `.zip` file to a local drive. Uncompress this file to obtain a directory of files describing your Twitter history. The archive of your Twitter statuses is the file named `tweet.js` in this subdirectory.\n\n### Dry runs\n\n`lptd` will only delete your Twitter statuses if the `--delete` switch is passed. This is intended as a brake to prevent some accidental deletions of Twitter statuses. If you do not use the `--delete` option, then no data should be deleted. Additionally, passing the `--skip_auth` argument means that no attempt is made to authenticate against Twitter, and your data should be safe. Without the `--delete` option, the command-lines above do the following:\n\n```bash\nlptd -v -o deleted.json \u003cYOUR_USERNAME\u003e\n```\n\ndownloads your recent Twitter history to the file `deleted.json`. No tweets are deleted.\n\n```bash\nlptd -v -a tweets.js -o deleted.json --start_date 2020-01-01 --end_date 2020-02-18 \u003cYOUR_USERNAME\u003e\n```\n\nextracts the tweets from 1st January 2020 to 18th February 2020 inclusive to the file `deleted.json`. No tweets are deleted.\n\n**NOTE: DELETING STATUSES FROM TWITTER IS PERMANENT. USE THIS SOFTWARE AT YOUR OWN RISK.**\n\n## Licensing\n\nUnless otherwise indicated, all code is subject to the following agreement:\n\n```text\nThe MIT License\n\nCopyright (c) 2020-2022 Leighton Pritchard\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwiddowquinn%2Flptwitdelete","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwiddowquinn%2Flptwitdelete","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwiddowquinn%2Flptwitdelete/lists"}