Fast Essay: "I Hacked Instagram and Lost"

Arlo Emerson, 2017

TL;DR

Screenshot_2017-02-06-20-44-57.png

I was hell bent on getting Instagram Famous. With what content? Just ordinary stuff. Mostly renders I had been creating as I worked up my C4D skills. I was having fun, but I just needed more followers to feel like I was successful, that all this tagging and posting was actually worthwhile. So what's an artist/dev to do to pump up those numbers? Build a bot, of course!

Before I started down this road I had, say, a hundred followers. Big deal. Definitely not a successful artist yet. I wanted to try that trick where you like a lot of posts, maybe even comment on a few, and hope that new followers might trickle in. It seemed to work a tiny bit, pretty soon I had 110 followers. But oh, so much manual clicking and scrolling and trying to type something meaningful, but yet not seem contrived. How can you not sound contrived anymore?

I had once, long ago, built a browser bot in C#. This was a browser bot that we unleashed on a large insurance company here in Seattle. The bot was HIGHLY CONTROLLED by instructions written in XML. This was before JSON, friends. And it worked fine. The QAs made us write a port to VB.net, that went fine, too. It was fun work and these were jolly times to be a front-end dev in Seattle, before things got really crazy. A side note here: I recently noticed how eerily similar VB is to Python, too, at least in it's appearance. Anyway, I remembered playing around with Selenium some years back and just had a terrible itch to code an Instagram bot.

Boom. Within a Saturday afternoon I had knocked out a handful of functionally provisional scripts that automatically scrolled the feed (in a desktop browser) and liked EVERYTHING. These scripts are available at the following link and should probably not be used under any circumstances:

https://github.com/mofostopheles/dev/tree/master/python/instagram_bot

I learned some things pretty quick. I needed to give my bot a conscious. It was liking too much, some of it I would have personally avoided. I had to prevent it from liking things that might be hate speech, or things of sensitive nature. Or stupid things. For a simple example, if somebody said fuck in the headline, my bot would need to avoid it, the simple technical answer is because this was all based on binary logic. My bot had to be ultra conservative as a matter of simplicity. The only machine learning was in my mind. This was the simplest thing I could do, as the pragmatist might say. So the bad word is on the list or not. But things were getting tricky. There was so much context that my bot was missing. For example, it ought not be an asshole and say things like "100!" on an Amnesty International sponsored ad. This resulted in another wasted Saturday, writing out a huge list of terrible things. This is my profanity filter and catch-all sieve. A snapshot of my bot's inner psyche.

Screenshot_2017-04-21-09-10-57.png

Pretty soon I realize I'm pissing off my friends. Total followers dipped by a handful. Yikes. Yes, I was running this on my personal account. To me it was worth the risk. A little more skin in the game this way, too. I need to make another list of people to avoid liking, friends or not. Basically, all the people I know and respect, just to be safe. Everybody else is fair game! Another Saturday up in smoke. Another version of my bot that is better, safer, and smarter!

But then the inevitable happened. My account got temporarily suspended. It appeared I was liking too many things too fast. I had tripped their alarm system. I had clearly become a bot and they knew it.

During the cooldown period I put a random delay on the likes, and eventually slowed the whole thing waaaaay down. Once I was back online things improved. My bot was taking it's own sweet time, just relaxingly scrolling the home feed, tapping here or skipping past whole sections. My bot was learning to chill! It was even liking good stuff sometimes. Well, some of it was good. But it was still liking so, so much.

By this time, I've pardoned a 15-year-old Lenovo laptop into a lean, mean Linux daemon. My bot runs like this all day on the corner of my desk at work. "What's that machine used for?" someone finally asks. "That's my Insta-bot," I say. By now I can brag a tiny bit because I've got 500 followers! Whoo-hoo! It's working. People must really like what I'm doing on Instagram.

Then I get a really terrible idea. I'm going to make my bot follow people. A follow-bot! About the same time, I was experimenting with a variant of this pointed to Twitter, and had coded up a thing where you follow the likers of the posts of approved posters. There's a lot of manual work up front to hand generate the names of accounts you need to filter on or off. For any sane person that's probably your friend list, you know, if you're a simple human just using social media to actually connect with others. But this is Twitter and everything's polluted and strange, and a greedy algorithm seems appropriate here. At one point I'm following 7000+ accounts and get about 900 followers of my own. All for just liking/not-liking, following/not-following. All within about a month. Twitter, by the way, never suspends me for rapid-machine-gun-fire liking, lightning-fast scrolling, etc. It's a free-wheeling algorithm. Somehow I'm following all the AA college basketball teams in the USA. And some Senators from Kentucky. And the Blue Angels. And a bunch of fakers and hustlers. Swindlers! People selling garbage programs to help you get more followers. My algorithm kind of works, I do follow a lot of accounts related to topics on my "good topics" list. But my Twitter bot still had no scruples whatsoever and I was getting bored with it. It was pure chaos. Besides, nobody reads Average Joe's tweets, and I’ve no get-rich-quick books to sell there. This is a celebrity platform and a news/disinformation/marketing platform. This was my takeaway. Anyway, I really wanted to be Instagram famous, not Twitter famous.

Screenshot_2017-03-23-20-49-40.png

Back on Instagram, I've got everything humming along for a bit. I'm a couple months into the experiment. Some days I run the bot. Other days I'm too busy. A get suspended a couple more times. Weird! I'm still on their radar, despite my efforts to look human. I've become the bot, or the bot has become me. But it doesn't matter. I can't keep up. They start rolling out changes to their UI, so I burn another Saturday tracking down whatever element id has changed, looking for ways to optimize. Counting tabs. There's the nasty bug where the bot accidentally clicks into an ad. And boom, there you are, a bot blindly performing SendKeys commands, tabbing around the page and randomly hitting ENTER. I close down the bash window, peruse my list of followers. I’ve reached a high of 1500, eventually I get over 2000 followers. Big whoop. Which ones are bots themselves? Which ones are real people? Some of these posters I really like. Some I don't care about. What's the point of all this?

Maybe I'll take another crack at it, the bot thing, that is. It's fun. And I still make art, I just don't care if it blows up #Instagood. My list of followers is now less than 900, has become fairly manageable, is mostly real people, and for the most part are stable, perhaps authentic fans! The number does drift down on its own, and I wonder if that's some kind of natural decay, attrition, or what have you. It would be very interesting to have access to data like this to see what the trends are and why these numbers trend. It's also fun to prod and poke at an internet giant's belly and see how it reacts. Or is the heat map just a solid red line down the center of the screen?