On researching the far-right online

Konrad Iturbe
3 min readDec 25, 2020

--

The hot new trend for deplatformed users seems to be hunkering down in Parler.com, a social media platform that brands itself as “the world’s town square”. The site functions akin to Twitter, but with a strong hands off approach to the moderation angle. Users can get verified by sending their ID and a video of themselves over to Parler and get a badge on their profile in return (which got abused). There’s been a flurry of news pieces detailing numerous aspects where Parler falls short.

On July Parler seemed to be on the spotlight pretty frequently and that led me to create parler-py-api. It was not hard to extract the calls, and the authentication method does not expire, consisting of a master token and a short lived token used together to refresh the login cookie. Most important calls have been documented in my wrapper, and after receiving positive feedback from a handful of university professors and researchers I’m writing this guide to using the wrapper to its full extent.

The most basic usage is to get posts that contain a word, eg: a hashtag.

For example, here is the progression of number of posts containing the hashtag “StopTheSteal”.

And here is part of the underlying code:

So to get started, clone the repository, create an account on parler.com, it does require the use of a phone number. Then on the browser, activate the debugger, go to Storage and find the jst and mst tokens. Then create a file called .parler.env and put the MST and JST tokens with the variables MST and JST

The default values in parlerconfig.ini should suffice for most data collection tasks.

The script parlerctl.py can be used for plugging parler into a bash pipe, since it outputs indented JSON.

Now the API doesn’t implement strong measures against post ingestion. I’ve managed to run a script with 15 threads running at the same time collecting posts with a 5 minute interval and had no exceptions thrown out. Switching the user agent randomly does reduce the number of 429 status errors (which the code already implements). Over the span of a few days the script managed to collect about 300 MB worth of text from 15 coronavirus related hashtags. The Master token seems to expire after 80 days.

To initiate a parler instance, supply the MST and JST tokens (on example code I’m using environmental variables loaded from the .parler.env file.)

parler = Parler(jst=os.getenv(“JST”), mst=os.getenv(“MST”), debug=False)

The documentation for the functions are available on the docs

If you want to research interactions in Parler and the like, look at the example scripts I’ve provided

--

--