Quick answer: A local Python script and FANS can both compare Instagram export data without an Instagram login. Choose a script if you can inspect its code, validate its file reader, and maintain it when export formats change. Choose FANS if you want a guided iPhone import and a non-follower list without managing code. Neither approach makes an old export live.
The real decision is how much setup and verification you want to own. A script that only reads local files can keep your follower lists on your computer. FANS processes those lists on your device. Unlike uploading an export to ChatGPT, a carefully reviewed local script does not need a cloud analysis service.
What should a Python unfollower script calculate?
For a current non-follower check, the operation is Following minus Followers: accounts you follow that are absent from your follower list. It is a comparison of usernames, not display names, profile pictures, or list totals.
Here is a complete, runnable Python 3 example using fictional usernames. It demonstrates the calculation only; it does not read an Instagram ZIP or connect to Instagram.
followers = {"blair", "devon"}
following = {"alex", "blair", "cam"}
non_followers = sorted(following - followers)
assert non_followers == ["alex", "cam"]
print("\n".join(non_followers))
The output is alex and cam on separate lines. Devon is excluded because you do not follow devon. Subtracting the list sizes would give one, but there are two non-followers. Python sets also remove exact duplicate values, so repeating an identical username does not create a second result.
Python's standard library includes JSON decoding and ZIP archive reading. Those building blocks do not automatically understand Instagram's export structure. A usable export checker still needs code that finds the correct relationship files and extracts every relevant username.
A local script and FANS compared
| Decision | Local Python script | FANS |
|---|---|---|
| Setup | Run Python, review the code, and supply the correct files. | Follow the export guide and import the official JSON ZIP. |
| Data handling | Can stay local if the code and dependencies do not transmit it; check your storage and sync settings too. | Follower and following lists are processed on your device. |
| Customization | You can implement your own output format or analysis. | A focused app workflow for finding accounts that do not follow back. |
| Maintenance | You must detect and fix unsupported file structures. | You use the app's supported import workflow and updates. |
| Cost and effort | The example uses no paid service; your time and any chosen tools are separate considerations. | Free to download; a Pro subscription is required to reveal the complete non-follower list. |
Neither choice guarantees that a relationship is unchanged since the export. This is a workflow comparison, not an accuracy benchmark. FANS's local follower processing also does not mean the app has no purchase or analytics data: review its App Store privacy disclosures.
Five checks before trusting a downloaded script
- Check what it accesses. An offline export comparison does not need your Instagram password, session cookie, authentication code, or browser profile. Inspect installation steps and dependencies as well as the main script. An open-source label alone does not prove that a program stays offline.
- Require a file inventory. The program should tell you which Followers and Following files it read. If the export contains multiple follower parts, reading only the first can incorrectly classify real followers as non-followers.
- Make unsupported input fail clearly. A missing list, unreadable JSON, or unfamiliar structure should produce an explanation. Silently replacing a failed read with an empty list can create an alarming but meaningless result.
- Compare consistent identities. Extract usernames from the intended fields. Apply any normalization consistently to both lists, and report unique username counts. Do not merge people because their display names match.
- Keep one snapshot together. Use the same account and export request for both lists. Keep the original archive untouched so you can repeat the check and investigate a surprising entry.
For the completeness problem in particular, see why an export can contain multiple follower JSON files. A script that ran without crashing has only passed an execution check; it has not proved that its inputs were complete.
Test the logic before adding personal data
Use invented inputs to test a script's comparison layer. Start with the example above, then try these cases. These tests verify the set calculation; a real archive reader needs separate tests for the file structures it claims to support.
| Case | Expected result |
|---|---|
| Followers and Following both contain only blair | No non-followers. |
| Followers contains blair; Following is a valid empty list | No non-followers. |
| Followers is a confirmed valid empty list; Following contains alex | Alex is a non-follower. |
| Followers could not be read | An input error, not a claim that everyone failed to follow back. |
| Following contains alex twice; Followers contains blair | Alex appears once. |
The distinction between “empty” and “missing” matters most. A valid empty list is data. A missing file is uncertainty. For a real export, spot-check an unexpected result in both source lists and then check the current relationship in Instagram before acting.
When is FANS the more practical choice?
FANS fits when your goal is to check non-followers on your iPhone and you do not want to install a programming environment or maintain an export parser. Request your official Followers and Following data in JSON, keep the ZIP intact, and follow the FANS import guide. You sign in to Instagram to obtain your own export; you do not give that login to FANS.
A local script fits when you understand the code and want control over a custom calculation or output. If you need to compare older and newer snapshots, define that operation separately: current non-followers and followers lost between two exports are different sets. One current export cannot establish who previously followed you, an exact unfollow time, or why a relationship changed.
Prefer a guided import?
Use FANS to compare your official Instagram export on your device, without sharing your Instagram login.
A Pro subscription is required to reveal the complete list.
View FANS on the App Store