duncan­lock­.net

A Marvellous & Incomplete Compendium of reddit Automatons & Bots

reddit bots diagram
Figure 1. How much does a software bot weigh, anyway? Heavily modified & adapted from the original public domain robot on openclipart, posted by johnny_automatic.

reddit, the insanely popular internet community, had 71,435,935 unique visitors last month, with over 2,360,783 people logged in [1].

I say people - but it turns out that not all the denizens of reddit are human. There are also bots. Lots and lots of bots. How many? No-one really knows. [2]

This is an interesting and somewhat shadowy facet of the otherwise very public reddit community, so I thought I’d take a closer look…​

What is a reddit bot?

A reddit bot is no different from any other user, as far as reddit is concerned. The only difference is that rather than a human logging in to upvote cat pictures and post comments, this account is used by an automated computer script.

reddit has a captcha system to help prevent automated signups - so the bot’s human creator will need to create a new user account for the bot to use, then program the username and password into the bot, so it can use that account - just like a human would.

In the same way that computers can run scripts to automatically check weather data and send you a message if you should take an umbrella with you today, a computer can run scripts to automatically check reddit for certain activity - and post comments if certain conditions are met. [3] A reddit bot does this by doing what your web browser does behind the scenes when you use websites - it makes requests and sends things to the reddit servers.

reddit also has an API (Application Programming Interface) [4] which makes it easier for automated external services (including bots) to talk to reddit. This allows bots & scrapers to do things in bulk, like “Show me all the new posts in the last hour” – they can then go away, analyze this information and then take actions based on it.

It’s a Hard Bot Life

A major problem for any internet activity at scale is ‘spam’, or similar unwanted activity, in some form or other.

reddit has scale coming out of its ears, so needs aggressive, pervasive and rapid automated spam control algorithms - combined with extensive human flagging and moderation - just to survive.

These mechanisms come down on bots particularly hard, to prevent the place being overrun by an army of implacable text hurling machines, typing & posting at the speed of light.

This is a really nice /r/InternetAmA thread discussing the retirement of TicTacToeBot, which did exactly what you’d expect:

reddit bots tictactoebot example
Figure 2. The only winning move is not to play.

Some quotes from TicTacToeBots developer:

Q: Your account has only existed for 6 days. How have you already been banned from the subreddits?

A: No clue. Every day I am banned from subreddits. I woke up today, looked at the mail. Banned from circlejerk, cats, and skyrim…​ Those aren’t even default subs. I had to sub to new channels to be any active as a bot.

Q: You actually got banned from circlejerk [5]? For derailing threads?!?

A: Yes

TicTacToeBot got shot down for derailing threads - i.e. for being disruptive. It was intentionally designed to randomly pop up and challenge people to a game - whimsical and fun, but also an uninvited disruption - albeit a harmless good-natured one.

So unless they’re careful, disruptive bots tend to have a fairly short life on reddit, quickly being hunted down and blocked by reddit’s immune system – even whimsical and seemingly harmless bots, like TicTacToeBot.

More circumspect bots, like JiffyBot, CHART_BOT or serendipity - either completely or largely confine themselves to their own subreddits, only turning up elsewhere when invited. This generally means that they’ll be left alone to do their thing, because they’re not interfering with anyone else. They’re also completely upfront about what they do and provide a useful service to the reddit community.

Workin’ on a Bot Farm

Bots also take resources to run - both to initially create & then to maintain the code - but mainly to provide a computer to run them on [6]. Bots need a computer to host their code and to lavish CPU cycles running them - reddit doesn’t do this, it’s up to the bots creator to host them somewhere. This generally isn’t free and can eat up quite a lot of computer resources, depending on what the bot does. Bots can get shut down by their creators for lack of resources - time or money - or lack of interest. Pretty much all reddit bots are just created for fun, for learning, or both - sometimes the creator just wants to move on to another project.

Bad Bots, Sad Bots

Some bots are designed to try to behave statistically more like human users [7], or to deliberately try to slip under the radar. Some bots are designed to boost the reddit karma [8] of their masters by pretending to be regular users and up-voting their masters posts and down-voting those who disagree with them. Some bots are designed to start flame wars and generally be mean, virtually.

This is pretty sad and pathetic…​ so I’m going to ignore them.

So, without further ado, here’s the compendium, split into Bots that you can Summon with an Incantation and Bots that just Show Up, without human intervention.

Bots that you can Summon with an Incantation

These bots listen out for their summoning incantation to be posted somewhere on reddit, then turn up and do their thing in response:

JiffyBot

Purpose
Makes animated GIFs out of YouTube links
Creators
Home Base
Current Karma
  • 1 link karma
  • 30,173 comment karma
A Redditor for
16 days
Active Subreddits
SubredditSubmissions (karma)Comments (karma)
/r/JiffyBot0333 (391)
/r/cringe092 (614)
/r/tf2045 (315)
/r/gaming040 (418)
/r/youtubehaiku036 (173)
/r/leagueoflegends027 (73)
/r/funny027 (434)
/r/YouShouldKnow027 (28)
/r/SeeThisShit022 (22)
/r/DotA2017 (35)
/r/starcraft015 (96)
/r/hockey012 (7)
/r/atheism010 (221)

Summon by posting a link to a YouTube video, then writing Jiffy! followed by a start time and end time, in either of these forms:

Jiffy! 0:07-0:12
/u/JiffyBot 0:00-0:15

The second form is apparently more reliable.

The bot will respond by replying to your comment, with a comment of it’s own, containing an imgur.com link to an animated GIF of that video, for the time period you specified. This is great for people on mobile devices - animated GIFs load much quicker than YouTube.

reddit bots jiffybot example
Figure 3. JiffyBot in action: it can also do multiple GIFs!

BitcoinTip

Purpose
The bitcointip bot allows redditors to tip each other ‘real’ money, just by leaving a reddit comment or message.
Human Creator
Home Base
Current Karma
  • 9 link karma
  • 11,906 comment karma
A Redditor for
1 year
Source Code
https://github.com/NerdfighterSean/bitcointip
Active Subreddits
SubredditSubmissions (karma)Comments (karma)
/r/Bitcoin0368 (813)
/r/GirlsGoneBitcoin051 (59)
/r/worldnews036 (133)
/r/IAmA030 (81)
/r/AskReddit030 (88)
/r/bitcointip029 (49)
/r/pics020 (136)
/r/technology013 (134)
/r/AdviceAnimals012 (23)
/r/investing011 (43)
/r/gaming011 (241)
/r/tf2010 (145)
/r/starcraft010 (205)

The bot scans user comments and messages for tips of the form:

+/u/bitcointip @RedditUsername $1
+/u/bitcointip @Username $1usd
+/u/bitcointip BitcoinAddress 1 millibit
+/u/bitcointip Username ฿0.001 verify
+/u/bitcointip $1 # This tips 1 usd to whoever posted the comments parent
+/u/bitcointip BitcoinAddress ALL # This sends your entire balance to that bitcoin address
+/u/bitcointip 2 internets # An "internet" is worth $0.25

You have to setup a bitcointip tip account in advance and put some funds into it. It then sends the specified amount of bitcoins from the sender’s bitcointip account, to the receiver’s bitcointip account. Supports lots of different currencies, which get converted to bitcoin automatically.

Allows you to tip people for useful or awesome comments, in a very natural and low friction way:

reddit bots bitcointip example
Figure 4. BitcoinTip in action: Adam Savage gets tipped. Yes that Adam Savage.

CHART_BOT

Purpose
Automatically generates and posts a chart of your posting history - or someone else’s.
Home Base
Active SubReddits
Overwhelmingly active in it’s own subreddit, but has been known to pop-up elsewhere, for the lulz:
SubredditSubmissions (karma)Comments (karma)
/r/CHART_BOT1 (2)931 (1063)
/r/WTF019 (13)
/r/wheredidthesodago014 (-14)
/r/science013 (13)
/r/TheLastAirbender012 (20)
Current Karma
  • 3 link karma
  • 5,686 comment karma
A Redditor for
8 months

Making a submission to this subreddit will cause CHART_BOT to automatically generate and post a chart of your reddit posting history. You can also request charts of other reddit users by putting their username prefixed with an @ in the title of your submission. The charts look like this - here’s mine:

Screenshot of CHART_BOTS output for duncanlock, as of June 2013.

CHART_BOT also produces some graphs of activity which are quite interesting. Here are the ‘Posts Over Time’ ones for me (on the left) and chartbot (on the right). You can clearly see the characteristic posting pattern of humans (irregular) vs. bots (regular):

Two scatter plots of reddit postings, over time. Left one for human user duncanlock, right one for chart_bot.
Figure 5. Fairly typical human reddit user (left) vs bot (right). Bot scripts are often run on a regular schedule - e.g. once an hour, every 10 minutes, etc…​ - which explains the regular patterns of activity.

Bots that just Show Up, without human intervention

These bots ceaselessly scan the endless, mighty cataract of text that is reddit and leap in whenever they sense patterns in the noise & spume that match their programming.

raddit-bot

Purpose
Shares (most of) the data about the posts it sees being used on radd.it. Currently it’s sharing a combination of data from youtube, soundcloud, vimeo, last.fm, IMDb, and amazon; only comments in subreddits it’s been invited to.
Human Creator
Home Base
Current Karma
  • 1915 link karma
  • 376 comment karma
A Redditor for
1 month
Active Subreddits
SubredditSubmissions (karma)Comments (karma)
/r/listentothis0765 (1109)
/r/FullMoviesOnline352 (764)213 (215)
/r/listentonew51 (55)0
/r/VBT01 (1)
/r/Music01 (2)

Raddit-bot is a helpful bot that posts information when you post a link to a piece of media that’s been on radd.it. It’s posts look like this, sharing a wealth of links and information about things that people have linked to:

reddit bots radditbot example

Discovered this bot while browsing /r/listentothis - which in turn led me to discover radd.it; I’m currently trying to resist getting distracted by radd.it itself.

haiku_robot

Purpose
Watches reddit for comments that would qualify as Haiku [9] and posts a reply, with the original text reformatted into 3 lines of 5, 7 & 5 syllables.
Home Base
Current Karma
  • 1 link karma
  • 104,473 comment karma
A Redditor for
1 year
Active Subreddits
SubredditSubmissions (karma)Comments (karma)
/r/funny0284 (2580)
/r/pics0199 (1239)
/r/AdviceAnimals0126 (619)
/r/gaming090 (501)
/r/WTF056 (618)
/r/todayilearned025 (115)
/r/IAmA1 (8)23 (99)
/r/gifs023 (164)
/r/videos022 (77)
/r/leagueoflegends015 (404)
/r/mildlyinteresting015 (28)
/r/gonewild010 (116)
/r/technology010 (13)
Plus 45 more…​

This seems to be quite popular, with lots of very highly upvoted comments - like this one:

reddit bots haikubot example

Metric System Converting bot

Purpose
When it sees a post using Imperial/US units, it replies with a conversion to their Metric equivalents.
Human Creator
Home Base
Current Karma
  • 239 link karma
  • 26,779 comment karma
A Redditor for
27 days
Active Subreddits
SubredditSubmissions (karma)Comments (karma)
/r/AdviceAnimals1 (285)538 (4160)
/r/pics094 (1878)
/r/todayilearned068 (625)
/r/gaming063 (65)
/r/videos044 (493)
/r/gifs015 (258)
/r/politics015 (230)
/r/progresspics010 (92)

MetricConversionBot will convert the following units to their metric equivalents:

  • Pounds (lbs) to Kilograms
  • Miles to Kilometers
  • Miles per hour to Kilometers per Hour
  • Foot/Feet to Meters
  • Kelvin to Celsius
  • Fahrenheit to Celsius
  • inch to cm
  • yard to meters
  • (US) fl. oz. to ml
  • ounces to grams

and it leaves comments that look like this:

reddit bots metricconversionbot example

This bot is a (more popular) successor to the deceased SI_BOT. Interestingly, MetricConversionBot has attracted it’s own parody bots, MetricConversionNot - which randomly makes similar looking, but factually inaccurate parody comments (somewhat similar to the older, inactive parody bot Lord_Longbottom) and UselessConversionBot:

reddit bots uselessconversionbot example

Website Mirror bot

Purpose
Mirrors websites that go down from the traffic surge, due to being posted on reddit.
Home Base
Current Karma
  • 1 link karma
  • 9,946 comment karma
A Redditor for
20 days
Active Subreddits
SubredditSubmissions (karma)Comments (karma)
/r/todayilearned029 (6391)
/r/politics017 (870)
/r/worldnews015 (1021)
/r/technology08 (203)
/r/Bitcoin04 (25)
/r/atheism04 (2299)
/r/starcraft04 (50)
/r/conspiracy04 (15)
/r/leagueoflegends03 (109)

Takes a (generally very tall) screenshot of the page that was linked to, puts it on imgur.com and posts a link in a comment:

reddit bots websitemirrorbot example

tabledresser

Purpose
Automatically generates a summary table from an AmA thread, showing all answered questions, along with their answers.
Human Creator
Home Base
Current Karma
  • 4 link karma
  • 8,857 comment karma
A Redditor for
1 year
Source Code
https://github.com/epsy/tabledresser
Active Subreddits
SubredditSubmissions (karma)Comments (karma)
/r/tabled1000 (9253)0
/r/IAmA0970 (4377)
/r/InternetAMA019 (62)
/r/tf2trade02 (4)

It posts the first few rows in the actual AmA thread, with a link to the full table that it posts to /r/tabled. This provides a great way to quickly read a condensed summary of a complete AmA thread, like this one. They look something like this:

reddit bots tabledresserbot example

VideoLinkBot

Purpose
Posts a summary of all video links in a discussion, kept up to date as the discussion grows.
Human Creator
Home Base
Current Karma
  • 25 link karma
  • 49,423 comment karma
A Redditor for
4 months
Source Code
https://github.com/dmarx/VideoLinkBot
Active Subreddits
SubredditSubmissions (karma)Comments (karma)
/r/videos0126 (343)
/r/gaming093 (167)
/r/hiphopheads1 (0)48 (123)
/r/leagueoflegends047 (118)
/r/todayilearned041 (69)
/r/movies023 (66)
/r/nfl021 (86)
/r/nba018 (32)
/r/politics018 (19)
/r/Random_Acts_Of_Amazon4 (98)13 (21)
/r/WhereDoIStart016 (36)
/r/hockey015 (39)
/r/SquaredCircle015 (43)
/r/worldnews014 (27)
/r/IAmA012 (263)
/r/CFB012 (33)
/r/DotA2012 (28)
/r/tipofmytongue012 (14)
/r/teenagers011 (21)
/r/VideoLinkBot11 (17)0
/r/atheism010 (11)
/r/Guitar09 (45)

VideoLinkBot scans for comments containing supported video links. When it finds one, it scans the discussion that comment belongs to for video links. It then posts the aggregate links it has found to a comment. If it’s already visited this discussion, it will update its existing comment with whatever new links it finds. Video links are sorted by the score of the comment they came from.

If the bot doesn’t see a certain number of links or all the links the bot sees were posted by the same user, the it won’t post a comment. Also, if a discussion has too few or too many comments, this bot will leave it alone.

This provides a useful summary of a wide ranging discussion, in a similar way to tabledresser does for AmA threads. The comments it leaves look like this:

Screenshot of a comment made by VideoLinkBot, showing the table of aggregated video links, with links to the Source Comment & Video Link, showing the score of each original comment.

meme_transcriber

Purpose
Automatically finds links to meme pics (memegen.com) and provides a plain-text transcript of the content of that meme in a comment, so you don’t have to click through to the meme site to get the ‘joke’. Useful on mobile devices or if the meme site goes down.
Home Base
Current Karma
  • 286 link karma
  • 340,954 comment karma
A Redditor for
1 year

This bot tends to turn up in subreddits like /r/AdviceAnimals/ and post comments that look like this:

reddit bots meme transcriber bot example

YTScreenShotBot

Purpose
Creates a screenshot montage of a YouTube video and posts a link to it, in reply to posts containing YouTube links.
Home Base
Active SubReddits
SubredditSubmissions (karma)Comments (karma)
/r/videos0420 (2551)
/r/pics0300 (3843)
/r/gaming0280 (302)
Current Karma
  • 1 link karma
  • 15,475 comment karma
A Redditor for
25 days

This bot allows you to get a quick overview of the video, just by viewing an image - much quicker than watching the video, especially on mobile devices. This is what it’s comments look like:

reddit bots ytscreenshotbot example

and this is what the montage looks like:

M2XOpjb

JordanTheBrobot

Purpose
A sophisticated Multi-purpose bot that patrols reddit looking for scams, misleading links, mistakes in markup, kindness, flash content, etc…​
Home Base
Current Karma
  • 1 link karma
  • 36,879 comment karma
A Redditor for
8 months
Active Subreddits
SubredditSubmissions (karma)Comments (karma)
/r/gaming0193 (4614)
/r/videos071 (1808)
/r/todayilearned036 (221)
/r/gonewild032 (34)
/r/pics027 (277)
/r/AdviceAnimals014 (212)
/r/ginger014 (33)
/r/Bitcoin013 (80)
/r/worldnews013 (68)
/r/movies012 (49)
/r/brobot5 (36)3 (3)

This bots most user visible function is to detect when people have got the markdown syntax for links the wrong way round (a very common mistake), and if they don’t correct it themselves within a few minutes, leave a reply with the corrected links:

reddit bots jordanthebrobot example

It also detects ‘spam/affiliate marketing’ links and leaves a reply warning people:

Spam Link

The comment above contains a link to a spam site, click with caution, your clicks will earn a spammer money and give them motivation to continue.

This bot also has moderator functionality, if you add it as a moderator of a subreddit, it will automatically:

  • Follows all links posted to all subreddits to identify dangerous redirect chains
  • Scans comments/submissions/redirect chains for spam domains
  • Detects and warns users of mismatched domains in reddit link markup IE: [http://test.com](http://test.com(http://not-really-test.com])
  • Detects and waits 6 minutes to post a fix of mistakes in reddit link markup (for ease of clicking)
  • Warns users of unapparent links to flash content

It also upvotes the original commenter if it corrects you links and upvotes you if you thank it - which might help it’s popularity. It also has a real time dashboard which lets you see what it’s up to.

SerendipityBot & /r/Serendipity

Purpose
Cross posts a popular submission from a random subreddit to /r/Serendipity every few hours
Home Base
Current Karma
  • 37,027 link karma
  • 2,641 comment karma
A Redditor for
2 years
Source Code
https://github.com/umbrae/Serendipity
reddit bots serendipity example
Figure 6. Slice of life, reddit style.

I discovered this bot & subreddit combo while writing this article and it’s quickly become one of my favourites. /r/Serendipity is a meta-subreddit meant to broaden the perspective of its subscribers. It chooses a popular post from a completely random subreddit and posts it every few hours, so if you subscribe to it, you get a broad, random, serendipitous sprinkling of great content from across reddit on your front page – often surprising, wonderful things that you would otherwise never have come across. As the sidebar says:

If you want to increase your exposure to niche subreddits, or just your perspective on things on the web in general, serendipity might help you do that. But it might not. It’s a bot, after all.

NB: Occasionally, just by chance, a random post might be NSFW (Not Safe for Work) or NSFL (Not Safe for Life - i.e. ugh, wish I could un-see.), but not very often. I asked the bots creator, /u/umbrae, if it did any filtering - this is what he said:

It’s actually a bit complicated: It does technically filter out NSFW subreddits, but does not necessarily filter out NSFW posts from subreddits that are not marked NSFW. So you’ll occasionally get a NSFW post here and there. There are also a few subs that have asked to be opted out for privacy /audience concerns. – /u/umbrae, in this comment

Other Interesting Bots

I don’t have time to cover all the multitude of great bots on reddit - here’s some other useful or fun ones to checkout:

Another whole category of bots, that I didn’t have time to go into, are Moderator Bots - designed to assist the human moderators of reddit with their ceaseless work, by automating some of the mechanical stuff:

Ex-Bots?

Some interesting bots who seem to be ex-bots – or maybe they’re just resting:


Know of any more interesting & fun reddit bots? Let me know in the comments…​


Footnotes & References


  1. About reddit, including some mind boggling statistics.
  2. How many bots? No one really knows. How to create a reddit bot. This being reddit, there’s a community to keep an eye on them, too - and /r/TheoryOfReddit do sometimes discuss bots. Well, actually they talk about bots quite a lot.
  3. This is mostly quoted from the excellent qkme_transcriber bot’s FAQ, here.
  4. *API*: An agreed way for one piece of software to talk to another. Often consists of functions you can call with parameters, that return different peices of information - or perform different actions - depending on the value of the parameters. In the case of websites, the functions map to URL’s - pages that you can request, with the parameters on the end of the URL. *Why does reddit have an API?* Well, people would find a way to get the same information somehow - often by brute force (acting like a very fast human making lots of requests) - which puts more strain on reddit’s servers than just giving the data out in one go, on request - it also means that they get to set the rules when they make the API.
  5. /r/circlejerk is a subreddit dedicated entirely to reddit satire. It’s full of ‘parodies’ of ‘karma whoring’ posts and ‘parodies’ of endless pun threads. The thought that they have rigorous standards and actually kick people out for breaking them is almost funny in itself.
  6. /r/redditdev/ thread: Where do you all host your python-based bots? - turns out YTScreenhostBot is hosted on an old laptop.
  7. How easily could a computer program emulate the average reddit commenter?
  8. Internet Points! reddit has a system called Karma : “The number next to a username is called that user’s “karma.” It reflects how much good the user has done for the reddit community. The best way to gain karma is to submit links that other people like and vote for.”
  9. Haiku: In English, Haiku are traditionally three line verses, each line having 5, 7 & 5 syllables respectively.

Related Posts