{"id":27612788,"url":"https://github.com/lauslim12/instamutual","last_synced_at":"2026-04-16T05:33:54.907Z","repository":{"id":179706110,"uuid":"423742883","full_name":"lauslim12/instamutual","owner":"lauslim12","description":"Node.js command-line tool to find out people who do not follow you back on Instagram","archived":false,"fork":false,"pushed_at":"2023-07-14T13:18:28.000Z","size":86,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-23T01:56:05.326Z","etag":null,"topics":["filesystem","github-actions","instagram","json","nodejs","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/lauslim12.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,"zenodo":null}},"created_at":"2021-11-02T07:18:39.000Z","updated_at":"2023-07-18T09:07:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"f50b697f-8322-459a-a945-0585c513fdbf","html_url":"https://github.com/lauslim12/instamutual","commit_stats":null,"previous_names":["lauslim12/instamutual"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lauslim12/instamutual","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lauslim12%2Finstamutual","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lauslim12%2Finstamutual/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lauslim12%2Finstamutual/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lauslim12%2Finstamutual/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lauslim12","download_url":"https://codeload.github.com/lauslim12/instamutual/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lauslim12%2Finstamutual/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31872654,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"online","status_checked_at":"2026-04-16T02:00:06.042Z","response_time":69,"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":["filesystem","github-actions","instagram","json","nodejs","typescript"],"created_at":"2025-04-23T01:56:01.418Z","updated_at":"2026-04-16T05:33:54.883Z","avatar_url":"https://github.com/lauslim12.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Instamutual\n\nNode.js command-line tool to find out people who do not follow you back on Instagram. This repository does not use any third-party libraries or unofficial APIs and will just purely use your own downloaded data (per your own request) as they are without modifying anything at all.\n\n## About\n\nInstagram does not really provide a way for you to check if someone does not follow you back by itself. You have to do that manually. This tool helps you to do that, so you can identify who has unfollowed you and how you should act or retaliate against that action. This is a problem that has been here for a while (couple of years). Recently, Instagram has released \"Download Data\" feature, and one of the options is to download the data as JSON, which makes this problem easy to solve because of its compatibility with various programming languages.\n\nWhen I was designing this script, I wanted it to be automatic, so I could just upload my data on the Cloud and my script will read it. The first idea I thought was using Google Drive's Link Sharing to achieve this. But, as time passes by, I think it's better for this to be used locally. If I were to upload the data on the Internet, there is a possibility of Personal Identifiable Information (PII) to be leaked into the Internet, and Instagram definitely fits into the category of PII, so I scrapped the Cloud idea and just make it so it's run locally. Perhaps in the future we could implement Cloud with Authentication using Drive API, so we can just upload our data into there and the script will make an authenticated request to get that data. This way, we could get the balance between convenience and security.\n\n## Requirements\n\n- [Node.js LTS](https://nodejs.org/)\n- [Yarn 1.22+](https://yarnpkg.com/)\n\nYou can also use `npm` if you want to. Replace all `yarn` occurences with `npm`.\n\n## Flowchart\n\n```mermaid\n---\ntitle: Instamutual Flowchart\n---\nflowchart TD\n    START([START]) --\u003e A\n    A[Download your data from Instagram] --\u003e B{Have paths in environment variables?}\n    B --\u003e |Yes| C[Fetches data from paths specified by environment variables] --\u003e E\n    B --\u003e |No| D[Fetches data from default paths] --\u003e E\n    INPUTFILESYSTEM[(Input Filesystem)]\n    INPUTFILESYSTEM --\u003e C\n    INPUTFILESYSTEM --\u003e D\n    E[\"Parses the data (followers and following) according to the expected schema\"] --\u003e F\n    F[Transforms the data of followers into a set] --\u003e G\n    G[From the list of following, filter whether each following is in the followers set or not] --\u003e H\n    H[Create an output data aggregation from those unfollowers] --\u003e I\n    I[Store the output to a file to be read later as a report]\n    I --\u003e FILESYSTEM[(Output Filesystem)]\n    I --\u003e END\n    END([END])\n```\n\n## Usage\n\n- First and foremost, please clone this repository on your local computer.\n\n```bash\ngit clone git@github.com:lauslim12/instamutual.git\n```\n\n- Install all required dependencies.\n\n```bash\n# If you're using yarn\nyarn\n\n# If you're using npm\nnpm install\n```\n\n- The next step is on you. You have to download your data on Instagram. Steps to do this on the mobile application are:\n\n  - Click your profile.\n  - Click the hamburger menu on the top right.\n  - Click `Your activity`.\n  - Scroll down to the bottom, and click on `Download your information`.\n  - Click `Request a download`.\n  - Click `Select types of information`.\n  - Select `Followers and following` and then click `Next`.\n  - In the `Format` section, change it to `JSON` and change the `Date range` to `All time`.\n  - Optionally, you can set `Media quality` to `High` (it doesn't really matter).\n  - Click `Submit request` and wait for Instagram to reply to your request. They should get back to you via email.\n  - Download your data from the link that Instagram gave you. You should get a `.zip` file.\n\n- After getting your data from Instagram, you have to move the data to this repository:\n\n  - Unzip the downloaded `.zip` file.\n  - You will get a folder titled `followers_and_following`, and there should be a file named `followers_1.json` and `following.json`. The name may be different, but it should be pretty straightforward to get your data from there.\n  - Move both files to `input` folder in your cloned repository.\n\n- If the filename is different, you can optionally customize it via environment variables. The defaults provided are `followers_1.json` and `following.json` at the moment if you do not fill these environment variables. You can also optionally modify the output filename (now it is `output.json`) if you wish.\n\n```bash\n# UNIX\nexport FOLLOWING_FILENAME=YOUR_FILENAME_TO_FOLLOWING\nexport FOLLOWERS_FILENAME=YOUR_FILENAME_TO_FOLLOWERS\nexport OUTPUT_FILENAME=YOUR_OUTPUT_FILENAME\n\n# Windows\nset FOLLOWING_FILENAME=YOUR_FILENAME_TO_FOLLOWING\nset FOLLOWERS_FILENAME=YOUR_FILENAME_TO_FOLLOWERS\nset OUTPUT_FILENAME=YOUR_OUTPUT_FILENAME\n```\n\n- After your setup is done, you can run the script by using the following command:\n\n```bash\nyarn start\n```\n\n- Done! The output will be placed in the `out` folder. It will either be `output.json` or your chosen filename!\n\n- You have to do this once in a while (download your data and do all of the steps again) to stay updated on your unfollowers.\n\n## Tests\n\nSo far, this program does not have tests yet. Contributions are very welcome.\n\n## Contributing\n\nIf you want to contribute, please create an issue or a pull request. Do not forget to run `yarn lint` in order to keep the code in unified standards. All ESLint and Prettier configurations are embedded inside `package.json` for practicality. We are using ESLint's TypeScript Recommended style with Prettier.\n\n## License\n\nProject is licensed under MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flauslim12%2Finstamutual","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flauslim12%2Finstamutual","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flauslim12%2Finstamutual/lists"}