Как получить метаданные о ActivityPub серверах


Решили написать паука, который будет собирать метаданные о серверах федивёрса в ваш скромненький каталог? Отлично! Давайте пройдёмся по этому зоопарку пока у тебя есть мотивация хоть что-то делать.

По спецификации получить метаданные можно с помощью /.well-known/nodeinfo который содержит ссылку на что-нибудь типа /nodeinfo/2.0. Но вот незадача! У разных движков информация там разная, а у мастодона максимально скромная.

Оказывается, помимо общей спецификации, каждый движок предлагает свой эндпойнт для получения метаданных. Большое распространение получил /api/v1/instance из API мастодона, но конечно же он доступен не везде.

Вперёд!

Mastodon

  • /nodeinfo/2.0
  • /api/v1/instance
  • /api/v1/custom_emojis
  • /api/v1/directory?local=true

Pleroma

  • /nodeinfo/2.1.json
  • /api/v1/instance
  • /api/pleroma/healthcheck (должен быть активен)

Misskey

  • /nodeinfo/2.0
  • Это довольно необычный: POST запрос на /api/meta с телом {"detail":true}
  • POST запрос на /api/stats с пустым телом

Funkwhale

  • /api/v1/instance/nodeinfo/2.0
  • /api/v1/instance/settings

Pixelfed

  • /api/nodeinfo/2.0.json
  • /api/v1/instance

PeerTube

  • /nodeinfo/2.0.json
  • /api/v1/config
  • /api/v1/config/about

Friendica

  • /nodeinfo/2.0
  • /api/statusnet/config
  • /api/v1/instance
  • /friendica/json

Nextcloud

  • /status.php
  • ??? Какой же кластерфак

Спасибо Michael Vogel за эндпойнты к Friendica.

Спасибо что прочитали пост.