Nitter is Not Dead


A quick one for you all today.

The maintainer of Nitter said, not long ago, that "Nitter is dead.". This isn't totally inaccurate, as Twitter/X has shut down huge swaths of their public API, especially ones Nitter relied on, making it very, very difficult to properly run a public instance. But private instances are still viable with a bit of tinkering.

The first step is cloning down the Nitter source code using Git. You'll then need to checkout the guest_accounts branch, and optionally build the Docker image for it. The important piece is ensuring you're running that branch's code wherever you're deploying.

Next, you'll need some tokens to feed into Nitter. Thankfully, someone has already written some Python to do this for us, which you can find here. Fill out the username and password, then run it. This will return a few JSON payloads, but the one you want is at the very end (you will also want to convert the single quotes to double quotes). Create a new file alongside your nitter.conf file named guest_accounts.json with the JSON in an array:

        "user": {
            "id": 123,
            "id_str": "...",
            "name": "...",
            "screen_name": "..."
        "next_link": {
            "link_type": "subtask",
            "link_id": "next_link",
            "subtask_id": "SuccessExit"
        "oauth_token": "...",
        "oauth_token_secret": "...",
        "known_device_token": "...",
        "attribution_event": "login"

Finally, run Nitter! Make sure you have a Redis instance setup for it for caching, and you should be good to go. You can add as many accounts to the guest_accounts.json file as you need, which Nitter will cycle through as needed to spread out the requests and rate limiting. Using a proxy is probably also recommended, but it's likely Twitter/X is blocking many of those at this point.

I expect Twitter/X to eventually crack down further on this, but for the time being we can continue to enjoy the nicer and more privacy concious interface Nitter provides.