├── .github └── FUNDING.yml ├── LICENSE ├── README.md └── instabot /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | patreon: muneebwanee 2 | liberapay: muneeb 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2021, Muneeb 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | 3. Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
4 | 7 | 11 |12 | 13 | ### What is InstaBot? 14 | * InstaBot is an AI used to get 100% real Indian followers. It helps you to increase Instagram followers i.e, 30+ Followers an hour for free. InstaBot is powered by TheDeepNet (www.deepnet.ga) coded by @muneebwanee. All you need is stable internet connection & updated os/termux. 15 | 16 |
19 | 20 | ### Installation 21 | 22 | * termux update required 23 | 24 | ``` 25 | apt update -y && apt upgrade -y 26 | ``` 27 | * `Commands` for termux 28 | ``` 29 | pkg up -y 30 | 31 | pkg install openssl-tool 32 | 33 | pkg install curl 34 | 35 | pkg install git 36 | 37 | git clone https://github.com/muneebwanee/InstaBot.git 38 | 39 | cd InstaBot 40 | 41 | chmod +x instabot 42 | 43 | termux-wake-lock 44 | 45 | bash instabot 46 | ``` 47 | 48 | * One Click Installation 49 | 50 | ``` 51 | pkg up -y && pkg install openssl-tool && pkg install curl && pkg install git && git clone https://github.com/muneebwanee/InstaBot && cd InstaBot && chmod +x instabot && termux-wake-lock && bash instabot 52 | ``` 53 |76 | [+] 'If You Copy Then Give Me The Credits’ 77 |
78 | 79 | 90 | 95 | 96 | --- 97 | ### ❤️Supporters❤️ 98 | [](https://github.com/muneebwanee/InstaBot/stargazers) 99 | [](https://github.com/muneebwanee/InstaBot/network/members) 100 | 101 | --- 102 | -------------------------------------------------------------------------------- /instabot: -------------------------------------------------------------------------------- 1 | string4=$(openssl rand -hex 32 | cut -c 1-4) 2 | string8=$(openssl rand -hex 32 | cut -c 1-8) 3 | string12=$(openssl rand -hex 32 | cut -c 1-12) 4 | string16=$(openssl rand -hex 32 | cut -c 1-16) 5 | device="android-$string16" 6 | uuid=$(openssl rand -hex 32 | cut -c 1-32) 7 | phone="$string8-$string4-$string4-$string4-$string12" 8 | guid="$string8-$string4-$string4-$string4-$string12" 9 | header='Connection: "close", "Accept": "*/*", "Content-type": "application/x-www-form-urlencoded; charset=UTF-8", "Cookie2": "$Version=1" "Accept-Language": "en-US", "User-Agent": "Instagram 10.26.0 Android (18/4.3; 320dpi; 720x1280; Xiaomi; HM 1SW; armani; qcom; en_US)"' 10 | var=$(curl -i -s -H "$header" https://i.instagram.com/api/v1/si/fetch_headers/?challenge_type=signup&guid=$uuid > /dev/null) 11 | var2=$(echo $var | grep -o 'csrftoken=.*' | cut -d ';' -f1 | cut -d '=' -f2) 12 | ig_sig="4f8732eb9ba7d1c8e8897a75d6474d4eb3f5279137431b2aafb71fafe2abe178" 13 | 14 | 15 | banner() 16 | { 17 | printf "`tput bold` %-40s `tput sgr0`\n" "$@" 18 | } 19 | 20 | banner " 21 | ████████████████████████████████████████████████ 22 | █▄─▄█▄─▀█▄─▄█─▄▄▄▄█─▄─▄─██▀▄─██▄─▄─▀█─▄▄─█─▄─▄─█ 23 | ██─███─█▄▀─██▄▄▄▄─███─████─▀─███─▄─▀█─██─███─███ 24 | ▀▄▄▄▀▄▄▄▀▀▄▄▀▄▄▄▄▄▀▀▄▄▄▀▀▄▄▀▄▄▀▄▄▄▄▀▀▄▄▄▄▀▀▄▄▄▀▀" 25 | echo "" 26 | echo -e " \e[1;31m[\e[0m\e[1;77mv1.0\e[0m\e[1;31m]\e[0m\e[1;77m by Muneeb \e[0m" 27 | 28 | echo -e " \e[1;31m[\e[0m\e[1;77m © \e[0m\e[1;31m]\e[0m\e[1;77m github.com/muneebwanee \e[0m\n" 29 | 30 | login_user() { 31 | 32 | 33 | if [[ $user == "" ]]; then 34 | printf "\e[1;31m[\e[0m\e[1;77m*\e[0m\e[1;31m]\e[0m\e[1;93m Login\e[0m\n" 35 | read -p $'\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Username: \e[0m' user 36 | fi 37 | 38 | if [[ -e cookie.$user ]]; then 39 | 40 | printf "\e[1;31m[\e[0m\e[1;77m*\e[0m\e[1;31m]\e[0m\e[1;93m Cookies found for user\e[0m\e[1;77m %s\e[0m\n" $user 41 | 42 | default_use_cookie="Y" 43 | 44 | read -p $'\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Use it?\e[0m\e[1;77m [Y/n]\e[0m ' use_cookie 45 | 46 | use_cookie="${use_cookie:-${default_use_cookie}}" 47 | 48 | if [[ $use_cookie == *'Y'* || $use_cookie == *'y'* ]]; then 49 | printf "\e[1;31m[\e[0m\e[1;77m*\e[0m\e[1;31m]\e[0m\e[1;93m Using saved credentials\e[0m\n" 50 | else 51 | rm -rf cookie.$user 52 | login_user 53 | fi 54 | 55 | 56 | else 57 | 58 | read -s -p $'\e[1;31m[\e[0m\e[1;77m*\e[0m\e[1;31m]\e[0m\e[1;93m Password: \e[0m' pass 59 | printf "\n" 60 | data='{"phone_id":"'$phone'", "_csrftoken":"'$var2'", "username":"'$user'", "guid":"'$guid'", "device_id":"'$device'", "password":"'$pass'", "login_attempt_count":"0"}' 61 | 62 | IFS=$'\n' 63 | 64 | hmac=$(echo -n "$data" | openssl dgst -sha256 -hmac "${ig_sig}" | cut -d " " -f2) 65 | useragent='User-Agent: "Instagram 27.0.0.7.97 Android (24/7.0; 380dpi; 1080x1920; OnePlus; ONEPLUS A3010; OnePlus3T; qcom; en_US)"' 66 | 67 | printf "\e[1;77m[\e[0m\e[1;92m+\e[0m\e[1;77m] Trying to login as\e[0m\e[1;93m %s\e[0m\n" $user 68 | IFS=$'\n' 69 | var=$(curl -c cookie.$user -d "ig_sig_key_version=4&signed_body=$hmac.$data" -s --user-agent 'User-Agent: "Instagram 27.0.0.7.97 Android (24/7.0; 380dpi; 1080x1920; OnePlus; ONEPLUS A3010; OnePlus3T; qcom; en_US)"' -w "\n%{http_code}\n" -H "$header" "https://i.instagram.com/api/v1/accounts/login/" | grep -o "logged_in_user\|challenge\|many tries\|Please wait" | uniq ); 70 | if [[ $var == "challenge" ]]; then printf "\e[1;93m\n[!] Challenge required\n" ; exit 1; elif [[ $var == "logged_in_user" ]]; then printf "\e[1;92m \n[+] Login Successful\n" ; elif [[ $var == "Please wait" ]]; then echo "Please wait"; fi; 71 | 72 | fi 73 | 74 | } 75 | 76 | 77 | get_saved() { 78 | user_account=$user 79 | user_id=$(curl -L -s 'https://www.instagram.com/'$user_account'' > getid && grep -o 'profilePage_[0-9]*.' getid | cut -d "_" -f2 | tr -d '"') 80 | 81 | printf "\e[1;77m[\e[0m\e[1;92m+\e[0m\e[1;77m] Generating image list\n" 82 | curl -L -b cookie.$user -s --user-agent 'User-Agent: "Instagram 27.0.0.7.97 Android (24/7.0; 380dpi; 1080x1920; OnePlus; ONEPLUS A3010; OnePlus3T; qcom; en_US)"' -w "\n%{http_code}\n" -H "$header" "https://i.instagram.com/api/v1/feed/saved" > $user_account.saved_ig 83 | 84 | cp $user_account.saved_ig $user_account.saved_ig.00 85 | count=0 86 | 87 | while [[ true ]]; do 88 | big_list=$(grep -o '"more_available": true' $user_account.saved_ig) 89 | maxid=$(grep -o '"next_max_id": "[^ ]*.' $user_account.saved_ig | cut -d " " -f2 | tr -d '"' | tr -d ',') 90 | 91 | if [[ $big_list == *'"more_available": true'* ]]; then 92 | 93 | url="https://i.instagram.com/api/v1/feed/saved/?rank_token=$user_id\_$guid&max_id=$maxid" 94 | 95 | curl -L -b cookie.$user -s --user-agent 'User-Agent: "Instagram 27.0.0.7.97 Android (24/7.0; 380dpi; 1080x1920; OnePlus; ONEPLUS A3010; OnePlus3T; qcom; en_US)"' -H "$header" "$url" > $user_account.saved_ig 96 | 97 | cp $user_account.saved_ig $user_account.saved_ig.$count 98 | 99 | unset maxid 100 | unset url 101 | unset big_list 102 | else 103 | grep -o '{"width": [0-9]*, "height": [0-9]*, "url": "https://[^ ]*' $user_account.saved_ig* | cut -d " " -f6 | cut -d '"' -f2 | cut -d "\\" -f1 | uniq > links 104 | break 105 | 106 | fi 107 | 108 | let count+=1 109 | 110 | done 111 | 112 | 113 | if [[ ! -d $user/images ]]; then 114 | mkdir -p $user/images 115 | fi 116 | tot_img=$(wc -l links | cut -d " " -f1) 117 | count_img=0 118 | printf "\e[1;77m[\e[0m\e[1;31m+\e[0m\e[1;77m] Total images:\e[0m\e[1;93m %s\e[0m \n" $tot_img 119 | 120 | for img in $(cat links); do 121 | 122 | let count_img++ 123 | printf "\e[1;77m[\e[0m\e[1;31m+\e[0m\e[1;77m] Downloading image\e[0m\e[1;93m %s/%s\e[0m " $count_img $tot_img 124 | wget $img -O $user/images/image$count_img.jpg > /dev/null 2>&1 125 | printf "\e[1;92mDONE!\n\e[0m" 126 | done 127 | printf "\e[1;77m[\e[0m\e[1;31m+\e[0m\e[1;77m] Saved:\e[0m\e[1;93m %s/images/\e[0m\n" $user 128 | 129 | cat $user_account.saved_ig.* > $user_account.raw_saved 130 | grep -o 'https://[^ ]*.mp4[^\ ]*.' $user_account.raw_saved | cut -d '"' -f1 | tr -d '\\' | uniq > vid_$user 131 | count=0 132 | tot_vid=$(wc -l vid_$user | cut -d " " -f1) 133 | if [[ ! -d $user/videos ]]; then 134 | mkdir -p $user/videos 135 | fi 136 | 137 | printf "\e[1;77m[\e[0m\e[1;31m+\e[0m\e[1;77m] Total Videos:\e[0m\e[1;93m %s\e[0m\n" $tot_vid 138 | for link in $(cat vid_$user); do 139 | let count++ 140 | printf "\e[1;77m[\e[0m\e[1;31m+\e[0m\e[1;77m] Downloading video\e[0m\e[1;93m %s/%s\e[0m " $count $tot_vid 141 | printf "\e[1;92mDONE!\n\e[0m" 142 | wget $link -O $user/videos/video$count.mp4 > /dev/null 2>&1 143 | done 144 | 145 | printf "\e[1;77m[\e[0m\e[1;31m+\e[0m\e[1;77m] Saved:\e[0m\e[1;93m %s/videos/\e[0m\n" $user 146 | 147 | 148 | } 149 | 150 | 151 | get_following() { 152 | 153 | user_id=$(curl -L -s 'https://www.instagram.com/'$user_account'' > getid && grep -o 'profilePage_[0-9]*.' getid | cut -d "_" -f2 | tr -d '"') 154 | 155 | curl -L -b cookie.$user -s --user-agent 'User-Agent: "Instagram 27.0.0.7.97 Android (24/7.0; 380dpi; 1080x1920; OnePlus; ONEPLUS A3010; OnePlus3T; qcom; en_US)"' -w "\n%{http_code}\n" -H "$header" "https://i.instagram.com/api/v1/friendships/$user_id/following" > $user_account.following.temp 156 | 157 | 158 | cp $user_account.following.temp $user_account.following.00 159 | count=0 160 | 161 | while [[ true ]]; do 162 | big_list=$(grep -o '"big_list": true' $user_account.following.temp) 163 | maxid=$(grep -o '"next_max_id": "[^ ]*.' $user_account.following.temp | cut -d " " -f2 | tr -d '"' | tr -d ',') 164 | 165 | if [[ $big_list == *'big_list": true'* ]]; then 166 | 167 | url="https://i.instagram.com/api/v1/friendships/6971563529/following/?rank_token=$user_id\_$guid&max_id=$maxid" 168 | 169 | curl -L -b cookie.$user -s --user-agent 'User-Agent: "Instagram 27.0.0.7.97 Android (24/7.0; 380dpi; 1080x1920; OnePlus; ONEPLUS A3010; OnePlus3T; qcom; en_US)"' -H "$header" "$url" > $user_account.followers.temp 170 | 171 | cp $user_account.following.temp $user_account.following.$count 172 | 173 | unset maxid 174 | unset url 175 | unset big_list 176 | else 177 | grep -o 'username": "[^ ]*.' $user_account.following.* | cut -d " " -f2 | tr -d '"' | tr -d ',' | sort > $user_account.following_temp 178 | cat $user_account.following_temp | uniq > $user_account.following_backup 179 | rm -rf $user_account.following_temp 180 | 181 | tot_following=$(wc -l $user_account.following_backup | cut -d " " -f1) 182 | printf "\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Total Following:\e[0m\e[1;77m %s\e[0m\n" $tot_following 183 | printf "\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Saved:\e[0m\e[1;77m %s.following_backup\e[0m\n" $user_account 184 | 185 | 186 | if [[ ! -d $user_account/raw_following/ ]]; then 187 | mkdir -p $user_account/raw_following/ 188 | fi 189 | cat $user_account.following.* > $user_account/raw_following/backup.following.txt 190 | rm -rf $user_account.following.* 191 | break 192 | 193 | fi 194 | echo $count 195 | let count+=1 196 | 197 | done 198 | 199 | 200 | 201 | } 202 | 203 | total_followers() { 204 | 205 | printf "\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Creating followers list for user\e[0m \e[1;77m%s\e[0m\n" $user_account 206 | printf "\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Please wait...\e[0m\n" 207 | 208 | 209 | user_id=$(curl -L -s 'https://www.instagram.com/'$user_account'' > getid && grep -o 'profilePage_[0-9]*.' getid | cut -d "_" -f2 | tr -d '"') 210 | 211 | curl -L -b cookie.$user -s --user-agent 'User-Agent: "Instagram 27.0.0.7.97 Android (24/7.0; 380dpi; 1080x1920; OnePlus; ONEPLUS A3010; OnePlus3T; qcom; en_US)"' -w "\n%{http_code}\n" -H "$header" "https://i.instagram.com/api/v1/friendships/$user_id/followers/" > $user_account.followers.temp 212 | 213 | cp $user_account.followers.temp $user_account.followers.00 214 | count=0 215 | 216 | 217 | while [[ true ]]; do 218 | big_list=$(grep -o '"big_list": true' $user_account.followers.temp) 219 | maxid=$(grep -o '"next_max_id": "[^ ]*.' $user_account.followers.temp | cut -d " " -f2 | tr -d '"' | tr -d ',') 220 | 221 | if [[ $big_list == *'big_list": true'* ]]; then 222 | 223 | url="https://i.instagram.com/api/v1/friendships/$user_id/followers/?rank_token=$user_id\_$guid&max_id=$maxid" 224 | 225 | curl -L -b cookie.$user -s --user-agent 'User-Agent: "Instagram 27.0.0.7.97 Android (24/7.0; 380dpi; 1080x1920; OnePlus; ONEPLUS A3010; OnePlus3T; qcom; en_US)"' -H "$header" "$url" > $user_account.followers.temp 226 | 227 | cp $user_account.followers.temp $user_account.followers.$count 228 | 229 | unset maxid 230 | unset url 231 | unset big_list 232 | else 233 | grep -o 'username": "[^ ]*.' $user_account.followers.* | cut -d " " -f2 | tr -d '"' | tr -d ',' > $user_account.followers_backup 234 | 235 | tot_follow=$(wc -l $user_account.followers_backup | cut -d " " -f1) 236 | printf "\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Total Followers:\e[0m\e[1;77m %s\e[0m\n" $tot_follow 237 | printf "\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Saved:\e[0m\e[1;77m %s.followers_backup\e[0m\n" $user_account 238 | if [[ $user == $user_account ]]; then 239 | 240 | if [[ ! -d $user/raw_followers/ ]]; then 241 | mkdir -p $user/raw_followers/ 242 | fi 243 | 244 | cat $user.followers.* > $user/raw_followers/backup.followers.txt 245 | rm -rf $user.followers.* 246 | 247 | break 248 | 249 | 250 | else 251 | if [[ ! -d $user_account/raw_followers/ ]]; then 252 | mkdir -p $user_account/raw_followers/ 253 | fi 254 | 255 | cat $user_account.followers.* > $user_account/raw_followers/backup.followers.txt 256 | rm -rf $user_account.followers.* 257 | 258 | break 259 | 260 | fi 261 | 262 | fi 263 | 264 | let count+=1 265 | 266 | done 267 | 268 | } 269 | 270 | get_story() { 271 | 272 | default_user=$user 273 | 274 | read -p $'\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Account (leave it blank to use your account): \e[0m' user_account 275 | user_account="${user_account:-${default_user}}" 276 | user_id=$(curl -L -s 'https://www.instagram.com/'$user_account'' > getid && grep -o 'profilePage_[0-9]*.' getid | cut -d "_" -f2 | tr -d '"') 277 | curl -L -b cookie.$user -s --user-agent 'User-Agent: "Instagram 27.0.0.7.97 Android (24/7.0; 380dpi; 1080x1920; OnePlus; ONEPLUS A3010; OnePlus3T; qcom; en_US)"' -w "\n%{http_code}\n" -H "$header" "https://i.instagram.com/api/v1/feed/user/$user_id/reel_media/" > $user_account.raw_story 278 | 279 | 280 | grep -o 'https://[^ ]*.mp4[^\ ]*.' $user_account.raw_story | cut -d '"' -f1 | tr -d '\\' | uniq > $user_account.story_videos 281 | 282 | grep -o 'https://[^ ]*.jpg[^\ ]*.' $user_account.raw_story | cut -d '"' -f1 | tr -d '\\' | uniq > $user_account.story_images 283 | 284 | count=0 285 | count2=0 286 | tot_vid=$(wc -l $user_account.story_videos | cut -d " " -f1) 287 | tot_img=$(wc -l $user_account.story_images | cut -d " " -f1) 288 | if [[ ! -d $user_account/story/ ]]; then 289 | mkdir -p $user_account/story/ 290 | fi 291 | 292 | printf "\e[1;77m[\e[0m\e[1;31m+\e[0m\e[1;77m] Total Video Stories:\e[0m\e[1;93m %s\e[0m\n" $tot_vid 293 | IFS=$'\n' 294 | 295 | #Story videos 296 | for link in $(cat $user_account.story_videos); do 297 | let count++ 298 | 299 | printf "\e[1;77m[\e[0m\e[1;31m+\e[0m\e[1;77m] Downloading Story Video\e[0m\e[1;93m %s/%s\e[0m " $count $tot_vid 300 | printf "\e[1;92mDONE!\n\e[0m" 301 | IFS=$'\n' 302 | wget $link -O $user_account/story/story$count.mp4 > /dev/null 2>&1 303 | done 304 | 305 | printf "\e[1;77m[\e[0m\e[1;31m+\e[0m\e[1;77m] Saved:\e[0m\e[1;93m %s/story/\e[0m\n" $user_account 306 | 307 | #Story Image 308 | printf "\e[1;77m[\e[0m\e[1;31m+\e[0m\e[1;77m] Total Image Stories:\e[0m\e[1;93m %s\e[0m\n" $tot_img 309 | 310 | for link2 in $(cat $user_account.story_images); do 311 | let count2++ 312 | 313 | printf "\e[1;77m[\e[0m\e[1;31m+\e[0m\e[1;77m] Downloading Story Image\e[0m\e[1;93m %s/%s\e[0m " $count2 $tot_img 314 | printf "\e[1;92mDONE!\n\e[0m" 315 | IFS=$'\n' 316 | wget $link2 -O $user_account/story/story$count2.jpg > /dev/null 2>&1 317 | done 318 | 319 | printf "\e[1;77m[\e[0m\e[1;31m+\e[0m\e[1;77m] Saved:\e[0m\e[1;93m %s/story/\e[0m\n" $user_account 320 | 321 | 322 | 323 | } 324 | 325 | geo_media() { 326 | 327 | curl -L -b cookie -s --user-agent 'User-Agent: "Instagram 27.0.0.7.97 Android (24/7.0; 380dpi; 1080x1920; OnePlus; ONEPLUS A3010; OnePlus3T; qcom; en_US)"' -w "\n%{http_code}\n" -H "$header" "https://i.instagram.com/api/v1/maps/user//" 328 | 329 | } 330 | 331 | 332 | follow() { 333 | 334 | username_id=$(curl -L -s 'https://www.instagram.com/'$user'' > getid && grep -o 'profilePage_[0-9]*.' getid | cut -d "_" -f2 | tr -d '"') 335 | 336 | user_id=$(curl -L -s 'https://www.instagram.com/'$user_account'' > getid && grep -o 'profilePage_[0-9]*.' getid | cut -d "_" -f2 | tr -d '"') 337 | data='{"_uuid":"'$guid'", "_uid":"'$username_id'", "user_id":"'$user_id'", "_csrftoken":"'$var2'"}' 338 | hmac=$(echo -n "$data" | openssl dgst -sha256 -hmac "${ig_sig}" | cut -d " " -f2) 339 | curl -L -b cookie -d "ig_sig_key_version=4&signed_body=$hmac.$data" -s --user-agent 'User-Agent: "Instagram 27.0.0.7.97 Android (24/7.0; 380dpi; 1080x1920; OnePlus; ONEPLUS A3010; OnePlus3T; qcom; en_US)"' -w "\n%{http_code}\n" -H "$header" "https://i.instagram.com/api/v1/friendships/create/$user_id/" 340 | 341 | 342 | } 343 | 344 | 345 | unfollow() { 346 | 347 | 348 | username_id=$(curl -L -s 'https://www.instagram.com/'$user'' > getid && grep -o 'profilePage_[0-9]*.' getid | cut -d "_" -f2 | tr -d '"') 349 | 350 | user_id=$(curl -L -s 'https://www.instagram.com/'$user_account'' > getid && grep -o 'profilePage_[0-9]*.' getid | cut -d "_" -f2 | tr -d '"') 351 | 352 | data='{"_uuid":"'$guid'", "_uid":"'$username_id'", "user_id":"'$user_id'", "_csrftoken":"'$var2'"}' 353 | hmac=$(echo -n "$data" | openssl dgst -sha256 -hmac "${ig_sig}" | cut -d " " -f2) 354 | 355 | check_unfollow=$(curl -L -b cookie -d "ig_sig_key_version=4&signed_body=$hmac.$data" -s --user-agent 'User-Agent: "Instagram 27.0.0.7.97 Android (24/7.0; 380dpi; 1080x1920; OnePlus; ONEPLUS A3010; OnePlus3T; qcom; en_US)"' -w "\n%{http_code}\n" -H "$header" "https://i.instagram.com/api/v1/friendships/destroy/$user_id/" | grep -o '"following": false') 356 | if [[ $check_unfollow == "" ]]; then 357 | printf "\e[1;93m [!] Error\n" 358 | else 359 | printf "\e[1;92mOK\e[0m\n" 360 | fi 361 | } 362 | 363 | unfollower() { 364 | 365 | user_account=$user 366 | get_following 367 | 368 | printf "\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Preparing to unfollow all followers from \e[0m\e[1;77m%s ...\e[0m\n" $user_account 369 | printf "\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;31m Press \"Ctrl + c\" to stop...\e[0m\n" 370 | sleep 4 371 | while [[ true ]]; do 372 | 373 | 374 | for unfollow_name in $(cat $user_account.following_backup); do 375 | 376 | username_id=$(curl -L -s 'https://www.instagram.com/'$user'' > getmyid && grep -o 'profilePage_[0-9]*.' getmyid | cut -d "_" -f2 | tr -d '"') 377 | 378 | user_id=$(curl -L -s 'https://www.instagram.com/'$unfollow_name'' > getunfollowid && grep -o 'profilePage_[0-9]*.' getunfollowid | cut -d "_" -f2 | tr -d '"') 379 | 380 | 381 | data='{"_uuid":"'$guid'", "_uid":"'$username_id'", "user_id":"'$user_id'", "_csrftoken":"'$var2'"}' 382 | hmac=$(echo -n "$data" | openssl dgst -sha256 -hmac "${ig_sig}" | cut -d " " -f2) 383 | printf "\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Trying to unfollow %s ..." $unfollow_name 384 | check_unfollow=$(curl -s -L -b cookie.$user -d "ig_sig_key_version=4&signed_body=$hmac.$data" -s --user-agent 'User-Agent: "Instagram 27.0.0.7.97 Android (24/7.0; 380dpi; 1080x1920; OnePlus; ONEPLUS A3010; OnePlus3T; qcom; en_US)"' -w "\n%{http_code}\n" -H "$header" "https://i.instagram.com/api/v1/friendships/destroy/$user_id/" | grep -o '"following": false' ) 385 | 386 | if [[ $check_unfollow == "" ]]; then 387 | printf "\n\e[1;93m [!] Error, stoping to prevent blocking\e[0m\n" 388 | exit 1 389 | else 390 | printf "\e[1;92mOK\e[0m\n" 391 | fi 392 | 393 | sleep 3 394 | done 395 | 396 | 397 | done 398 | 399 | } 400 | 401 | increase_followers() { 402 | 403 | printf "\e[1;77m[\e[0m\e[1;31m+\e[0m\e[1;77m] This technique consists of following/unfolling celebgrams\e[0m\n" 404 | printf "\e[1;77m[\e[0m\e[1;31m+\e[0m\e[1;77m] It can increase your followers up to about +30 in 1 hour \e[0m\n" 405 | printf "\e[1;77m[\e[0m\e[1;31m+\e[0m\e[1;77m]\e[0m\e[1;93m Press Ctrl + C to stop \e[0m\n" 406 | sleep 5 407 | 408 | username_id=$(curl -L -s 'https://www.instagram.com/'$user'' > getid && grep -o 'profilePage_[0-9]*.' getid | cut -d "_" -f2 | tr -d '"') 409 | 410 | iamsrk="628480450" 411 | aliaabhatt="259925762" 412 | muneebwanee="371137794" 413 | karantacker="43034052" 414 | akshaykumar="907025384" 415 | darshanravaldz="478675749" 416 | ranveersingh="1506896522" 417 | hrithikroshan="414113135" 418 | filmygyan="1332864305" 419 | raghavjuyal="1267622690" 420 | shahidkapoor="550150293" 421 | priyankachopra="178537482" 422 | tigerjackieshroff="1036534773" 423 | thesiddharthnigam="1714305872" 424 | beingsalmankhan="1547627005" 425 | deepikapadukone="572299277" 426 | 427 | 428 | if [[ ! -e celeb_id ]]; then 429 | printf "%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n" $iamsrk $aliaabhatt $sahilkhan $karantacker $akshaykumar $darshanravaldz $ranveersingh $hrithikroshan $filmygyan $ranbirkapoor $akshaykumar $darshanravaldz $ranveersingh $hrithikroshan $filmygyan $raghavjuyal $shahidkapoor $priyankachopra $tigerjackieshroff $thesiddharthnigam $beingsalmankhan $deepikapadukone >celeb_id 430 | fi 431 | 432 | while [[ true ]]; do 433 | 434 | 435 | for celeb in $(cat celeb_id); do 436 | 437 | data='{"_uuid":"'$guid'", "_uid":"'$username_id'", "user_id":"'$celeb'", "_csrftoken":"'$var2'"}' 438 | hmac=$(echo -n "$data" | openssl dgst -sha256 -hmac "${ig_sig}" | cut -d " " -f2) 439 | printf "\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Trying to follow celebgram %s ..." $celeb 440 | 441 | check_follow=$(curl -s -L -b cookie.$user -d "ig_sig_key_version=4&signed_body=$hmac.$data" -s --user-agent 'User-Agent: "Instagram 27.0.0.7.97 Android (24/7.0; 380dpi; 1080x1920; OnePlus; ONEPLUS A3010; OnePlus3T; qcom; en_US)"' -w "\n%{http_code}\n" -H "$header" "https://i.instagram.com/api/v1/friendships/create/$celeb/" | grep -o '"following": true') 442 | 443 | if [[ $check_follow == "" ]]; then 444 | printf "\n\e[1;93m [!] Error\n" 445 | exit 1 446 | else 447 | printf "\e[1;92mOK\e[0m\n" 448 | fi 449 | 450 | sleep 3 451 | 452 | done 453 | printf "\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;77m Sleeping 60 secs...\e[0m\n" 454 | sleep 60 455 | #unfollow 456 | for celeb in $(cat celeb_id); do 457 | data='{"_uuid":"'$guid'", "_uid":"'$username_id'", "user_id":"'$celeb'", "_csrftoken":"'$var2'"}' 458 | hmac=$(echo -n "$data" | openssl dgst -sha256 -hmac "${ig_sig}" | cut -d " " -f2) 459 | printf "\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Trying to unfollow celebgram %s ..." $celeb 460 | check_unfollow=$(curl -s -L -b cookie.$user -d "ig_sig_key_version=4&signed_body=$hmac.$data" -s --user-agent 'User-Agent: "Instagram 27.0.0.7.97 Android (24/7.0; 380dpi; 1080x1920; OnePlus; ONEPLUS A3010; OnePlus3T; qcom; en_US)"' -w "\n%{http_code}\n" -H "$header" "https://i.instagram.com/api/v1/friendships/destroy/$celeb/" | grep -o '"following": false' ) 461 | 462 | if [[ $check_unfollow == "" ]]; then 463 | printf "\n\e[1;93m [!] Error, stoping to prevent blocking\n" 464 | exit 1 465 | else 466 | printf "\e[1;92mOK\e[0m\n" 467 | fi 468 | 469 | sleep 3 470 | done 471 | printf "\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;77m Sleeping 60 secs...\e[0m\n" 472 | sleep 60 473 | 474 | 475 | done 476 | 477 | 478 | } 479 | 480 | 481 | friendship() { 482 | 483 | 484 | data='{"_uuid":"'$guid'", "_uid":"'$username_id'", "user_id":"'$user_id'", "_csrftoken":"'$var2'"}' 485 | hmac=$(echo -n "$data" | openssl dgst -sha256 -hmac "${ig_sig}" | cut -d " " -f2) 486 | curl -L -b cookie.$user -d "ig_sig_key_version=4&signed_body=$hmac.$data" -s --user-agent 'User-Agent: "Instagram 27.0.0.7.97 Android (24/7.0; 380dpi; 1080x1920; OnePlus; ONEPLUS A3010; OnePlus3T; qcom; en_US)"' -w "\n%{http_code}\n" -H "$header" "https://i.instagram.com/api/v1/friendships/show/$user_id/" 487 | 488 | } 489 | 490 | 491 | 492 | track_unfollowers() { 493 | 494 | default_user=$user 495 | 496 | 497 | read -p $'\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Account (leave it blank to use your account): \e[0m' user_account 498 | 499 | user_account="${user_account:-${default_user}}" 500 | 501 | if [[ -e followers1.$user_account ]]; then 502 | 503 | printf "\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Last list found for user \e[0m\e[1;77m%s\e[0m\e[1;93m, creating a new and comparing it\e[0m\n" $user_account 504 | total_followers 505 | 506 | cp $user_account.followers_backup followers2.$user_account 507 | unfollowers=$(grep -Fxv -f followers2.$user_account followers1.$user_account) 508 | 509 | 510 | if [[ $unfollowers != "" ]]; then 511 | 512 | printf "\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Unfollowers:\e[0m\n" 513 | 514 | grep -Fxv -f followers2.$user_account followers1.$user_account >> $user_account.unfollowers 515 | printf "\e[1;77m\n" 516 | cat $user_account.unfollowers 517 | printf "\e[0m\n" 518 | printf "\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Saved: \e[0m\e[1;77m%s.unfollowers\e[0m\n" $user_account 519 | mv followers2.$user_account followers1.$user_account 520 | 521 | else 522 | printf "\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m No Unfollower\e[0m\n" 523 | fi 524 | 525 | 526 | else 527 | #get followers 528 | printf "\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Creating followers list\e[0m\n" 529 | total_followers 530 | cp $user_account.followers_backup followers1.$user_account 531 | printf "\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Saved!\e[0m\e[1;77m (followers1.%s)\e[0m\n" $user_account 532 | printf "\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Please, run again to track unfollowers\e[0m\n" 533 | 534 | fi 535 | 536 | 537 | 538 | } 539 | 540 | 541 | get_info() { 542 | 543 | default_user=$user 544 | 545 | read -p $'\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Account (leave it blank to use your account): \e[0m' user_account 546 | 547 | user_account="${user_account:-${default_user}}" 548 | 549 | if [[ ! -d $user_account/ ]]; then 550 | mkdir $user_account 551 | fi 552 | 553 | 554 | username_id=$(curl -L -s 'https://www.instagram.com/'$user'' > getid && grep -o 'profilePage_[0-9]*.' getid | cut -d "_" -f2 | tr -d '"') 555 | 556 | user_id=$(curl -L -s 'https://www.instagram.com/'$user_account'' > getid && grep -o 'profilePage_[0-9]*.' getid | cut -d "_" -f2 | tr -d '"') 557 | 558 | data='{"_uuid":"'$guid'", "_uid":"'$username_id'", "_csrftoken":"'$var2'"}' 559 | hmac=$(echo -n "$data" | openssl dgst -sha256 -hmac "${ig_sig}" | cut -d " " -f2) 560 | curl -L -b cookie.$user -d "ig_sig_key_version=4&signed_body=$hmac.$data" -s --user-agent 'User-Agent: "Instagram 27.0.0.7.97 Android (24/7.0; 380dpi; 1080x1920; OnePlus; ONEPLUS A3010; OnePlus3T; qcom; en_US)"' -w "\n%{http_code}\n" -H "$header" "https://i.instagram.com/api/v1/users/$user_id/info" > $user_account/profile.info 561 | printf "\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;77m %s\e[0m\e[1;93m account info:\e[0m\n" $user_account 562 | cat $user_account/profile.info 563 | grep -o 'https://[^ ]*.jpg[^\ ]*.' $user_account/profile.info | cut -d '"' -f1 | tr -d '\\' | uniq > $user_account/profile_pic 564 | 565 | 566 | printf "\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Downloading Profile Pictures...\e[0m" 567 | count=0 568 | for pic in $(cat $user_account/profile_pic); do 569 | 570 | wget -O $user_account/profile_pic$count.jpg $pic > /dev/null 2>&1 571 | let count++ 572 | done 573 | printf "\e[1;92mDONE\e[0m\n" 574 | printf "\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Saved:\e[0m\e[1;77m %s/\e[0m\n" $user_account 575 | 576 | } 577 | 578 | menu() { 579 | 580 | printf "\n" 581 | printf " \e[1;31m[\e[0m\e[1;77m01\e[0m\e[1;31m]\e[0m\e[1;93m Unfollow Tracker\e[0m\n" 582 | printf " \e[1;31m[\e[0m\e[1;77m02\e[0m\e[1;31m]\e[0m\e[1;93m Increase Followers\e[0m\n" 583 | printf " \e[1;31m[\e[0m\e[1;77m03\e[0m\e[1;31m]\e[0m\e[1;93m Download Stories\e[0m\n" 584 | printf " \e[1;31m[\e[0m\e[1;77m04\e[0m\e[1;31m]\e[0m\e[1;93m Download Saved Content\e[0m\n" 585 | printf " \e[1;31m[\e[0m\e[1;77m05\e[0m\e[1;31m]\e[0m\e[1;93m Download Following List\e[0m\n" 586 | printf " \e[1;31m[\e[0m\e[1;77m06\e[0m\e[1;31m]\e[0m\e[1;93m Download Followers List\e[0m\n" 587 | printf " \e[1;31m[\e[0m\e[1;77m07\e[0m\e[1;31m]\e[0m\e[1;93m Download Profile Info\e[0m\n" 588 | printf " \e[1;31m[\e[0m\e[1;77m08\e[0m\e[1;31m]\e[0m\e[1;93m Activate Unfollower\e[0m\n" 589 | printf "\n" 590 | 591 | 592 | read -p $' \e[1;31m[\e[0m\e[1;77m::\e[0m\e[1;31m]\e[0m\e[1;77m Choose an option: \e[0m' option 593 | 594 | if [[ $option -eq 1 ]]; then 595 | login_user 596 | track_unfollowers 597 | 598 | elif [[ $option -eq 2 ]]; then 599 | login_user 600 | increase_followers 601 | 602 | elif [[ $option -eq 3 ]]; then 603 | login_user 604 | get_story 605 | elif [[ $option -eq 4 ]]; then 606 | login_user 607 | get_saved 608 | elif [[ $option -eq 5 ]]; then 609 | login_user 610 | default_user=$user 611 | 612 | 613 | read -p $'\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Account (leave it blank to use your account): \e[0m' user_account 614 | 615 | user_account="${user_account:-${default_user}}" 616 | get_following 617 | elif [[ $option -eq 6 ]]; then 618 | 619 | login_user 620 | default_user=$user 621 | 622 | 623 | read -p $'\e[1;31m[\e[0m\e[1;77m+\e[0m\e[1;31m]\e[0m\e[1;93m Account (leave it blank to use your account): \e[0m' user_account 624 | 625 | user_account="${user_account:-${default_user}}" 626 | total_followers 627 | 628 | 629 | elif [[ $option -eq 7 ]]; then 630 | login_user 631 | get_info 632 | 633 | elif [[ $option -eq 8 ]]; then 634 | 635 | login_user 636 | unfollower 637 | 638 | else 639 | 640 | printf "\e[1;93m[!] Invalid Option!\e[0m\n" 641 | sleep 2 642 | menu 643 | 644 | fi 645 | } 646 | 647 | 648 | banner 649 | menu 650 | --------------------------------------------------------------------------------