"This is our community, this is our family, these are our friends." https://www.youtube.com/watch?v=gk7iWgCk14U&t=425s Based on the provided code, the article is a technical guide for a JavaScript script that uses Instagram's internal API to analyze a user's followers and following lists. The script identifies accounts that the user does not follow back and accounts that do not follow the user back. It includes rate-limiting delays and requires the user to input their Instagram username into the code before running it in the browser console. instagram-follower-following.js This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters Show hidden characters if window.location.origin == "https://www.instagram.com" { window.alert "Hey You need to be on the instagram site before you run the code. I'm taking you there now but you're going to have to run the code into the console again.", ; window.location.href = "https://www.instagram.com"; console.clear ; } const fetchOptions = { credentials: "include", headers: { "X-IG-App-ID": "936619743392459", }, method: "GET", }; let username; const sleep = ms = new Promise r = setTimeout r, ms ; const random = min, max = Math.floor Math.random max - min + min; // This function handles all of the pagination logic // Calls the API recursively until there are no more pages to load const concatFriendshipsApiResponse = async list, user id, count, next max id = "", = { let url = https://www.instagram.com/api/v1/friendships/${user id}/${list}/?count=${count} ; if next max id { url += &max id=${next max id} ; } const data = await fetch url, fetchOptions .then r = r.json ; if data.next max id { const timeToSleep = random 800, 1500 ; console.log Loaded ${data.users.length} ${list}. Sleeping ${timeToSleep}ms to avoid rate limiting , ; await sleep timeToSleep ; return data.users.concat await concatFriendshipsApiResponse list, user id, count, data.next max id, , ; } return data.users; }; // helper methods to make the code a bit more readable const getFollowers = user id, count = 50, next max id = "" = { return concatFriendshipsApiResponse "followers", user id, count, next max id ; }; const getFollowing = user id, count = 50, next max id = "" = { return concatFriendshipsApiResponse "following", user id, count, next max id ; }; const getUserId = async username = { let user = username; const lower = user.toLowerCase ; const url = https://www.instagram.com/api/v1/web/search/topsearch/?context=blended&query=${lower}&include reel=false ; const data = await fetch url, fetchOptions .then r = r.json ; const result = data.users?.find result = result.user.username.toLowerCase === lower, ; return result?.user?.pk || null; }; const getUserFriendshipStats = async username = { const user id = await getUserId username ; if user id { throw new Error Could not find user with username ${username} ; } const followers = await getFollowers user id ; const following = await getFollowing user id ; const followersUsernames = followers.map follower = follower.username.toLowerCase , ; const followingUsernames = following.map followed = followed.username.toLowerCase , ; const followerSet = new Set followersUsernames ; const followingSet = new Set followingUsernames ; console.log Array 28 .fill "-" .join "" ; console.log Fetched , followerSet.size, "followers and ", followingSet.size, " following.", ; console.log If this doesn't seem right then some of the output might be inaccurate , ; const PeopleIDontFollowBack = Array.from followerSet .filter follower = followingSet.has follower , ; const PeopleNotFollowingMeBack = Array.from followingSet .filter following = followerSet.has following , ; return { PeopleIDontFollowBack, PeopleNotFollowingMeBack, }; }; // Make sure you don't delete the quotes // Replace "example username" below with your instagram username // // Change this: username = "example username"; // // // getUserFriendshipStats username .then console.log ;