doing applied fediverse research
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
rra 27a5c9b1d7 minor tweaks 4 周前
.gitignore added new script to document mastodon about pages 1 个月前 add info about new script 1 个月前 minor tweaks 4 周前 minor tweaks 4 周前
instance_scrape.json minor tweaks to fedicrawler & scrape 05-05-2020 1 个月前
instances.txt first version, crawls only the announced peers 2 年前

doing applied fediverse research

  • hands-on approach to verify statistics on fediverse from and
  • draws conclusions from that


Mapping the network is a utility to map the Fediverse and save that data as a json file.

Currently the script starts from and queries /api/v1/instance/peers to find servers it is peering with. For each of the peering servers it hasn’t seen before it does the same. This from the assumption that getting peer lists from Mastodon & Pleroma gives enough of a view of ‘known fediverse’ to work with.

initial peer list

all peers of the initial peers

all peers of the peers of the inintial peers

------------------------------------------------- +

the known fediverse?

Instance metadata

We try to query /.well-known/nodeinfo for instance meta-data such as software type etc. This is what both and do

When any request fails on a given instance it logs the raised Exception, if it is a HTTP error instead we currently log the answer.

Latest scrape results can be found in instance_scrape.json

Gathering of ToS/CoC is a utility to collect and document the about/more/ pages of Mastodon instances found in instance_scrape.json data. It will collect three things per instance found: a screenshot of the page, the HTML of the page, and a separate file with the html containing the server description which usually also contains a ToS/CoC. The script makes a rough sorting based on whether an instance has any instance info at all.

You will find the collected results in about_pages and about_pages/with_tos.

This script requires selenium and the gecko web driver. See the selenium documentation for more information.


  • multithread the screenshotting
  • add detailed error message to json when we get one
  • abstract the functions so we can multithread them