noellabo's tech blog

@noellaboの技術ブログ

マストドンのサークルとコミュニティの話

TwitterがSUPER FOLLOWSやCOMMUNITIESを発表したということなので、良い機会なので便乗させていただいて、Mastodonが取り組んでいる開発中の機能(サークル)と、Fedibirdのグループ(コミュニティ)機能の現状についてざっくりご紹介しておきます。

サークル

サークルのメンバーだけが読める投稿を行う機能です。

  • 投稿者がメンバーを指定する
  • サークル宛の投稿を読めるのはメンバーだけ
  • 誰がメンバーなのか公開されない

アーティストが自分自身の活動を行うにあたり、限定コンテンツの配送が行える機能を提供できたらいいね、うまく使えば収益化する機会を提供することもできるね、というあたりが出発点になっています。

Fediverseでこれを行う利点としては、アカウントをBANされるなど発表や収益の機会を奪われたり、中間で収益の上前をはねられたりせず、アーティスト自身で発信元となるサーバをホストすることができるということがあります。

もちろん、すべてを自分で運営することは現実的ではないので、決済機能やメンバーシップの管理機能などを提供するサービスを活用することになりますが、それを選択する権利がアーティスト側にあるということが重要です。

サークルは、特定のメンバー向けに何かを発信したい人は、誰でも利用可能な機能です。これをどう活用するかは、利用者に委ねられています。

現状

Mastodonの機能追加提案としていくつかのプルリクエストがGithub上にあり、ひとまずは実行可能なコードが揃っています。また、V3.3.0以降のサーバには、サークルの投稿を受信するためのコードが既に含まれています。

Mastodon側で、これをどのような機能として統合していくか、あるいは採用しないか、まだ結論がでていないため、MisskeyやPleromaなど他の実装に対して働きかけができる段階ではないためまだ互換性はありませんが、必要な技術の解説がドキュメントされているので、受け取るためのコードの実装は可能です。

docs.joinmastodon.org

現在、サークル機能を先行採用しており、実際の動作を試すことができるサーバとしては、Fedibird、Nightly Fedibird、QOTOがあります。

グループ

コミュニティ機能を提供するものとして、FedibirdおよびQOTOで、グループ機能の実装が行われています。 (QOTOは、Fedibirdの実験的機能にコードを付加して、一般に利用可能にしたものです)

  • グループを表す特別なアカウントをフォローすることで参加します
  • グループディレクトリによって、既知のグループが一覧できます
  • グループを作成する特別なサーバが必要です
  • 公開のグループは、グループあてにメンションするだけで、どのサーバからでも参加できます
  • 非公開のグループは、まだ実装されていません

グループは、まだ定まった方式が確立しておらず、Fedibirdの実装も独自のものです。 先行する実装として、GuppeGroupsなどがあります。

現在、MastodonをはじめとするFediverseのサーバでは、そのサーバ内の投稿が流れるローカルタイムラインをコミュニティとみなし、サーバ単位でコミュニティを形成する方法がとられています。この方式にはメリットもたくさんありますが、そのサーバ毎にアカウントを作成しないと参加できない、リモートフォローを活用できないデメリットがありました。

グループは、自分自身の普段使いのアカウントから、好きなコミュニティに参加したり、必要がなくなったら気軽に離脱できるというメリットがあります。

現状

現在、グループを作成したい場合は、QOTOの提供するグループサーバか、GuppeGroups、Fedibirdのグループ開発用のサーバを利用する必要があります。

Fedibirdのグループ機能開発は、私が主導しているもので、Mastodon本家は関係していません。 諸問題を勘案・解決しながら、ゆっくり進めているところです。

関連リソース

サークル機能について、日本語で話している公開グループアカウントがあります。 gdev.fedibird.com

公開グループですので @circledev@gdev.fedibird.com をフォローすればグループの投稿を受け取れるようになります。また、メンションすればグループに投稿できます。公開の他、未収載で投稿しても大丈夫なので、ローカルタイムラインの投稿と区別したい方はご活用ください。

遊び場(グループ実験場) @playground@gdev.fedibird.com という、お試し用のグループもあります。

Fedibirdのグループについては @noellabo@fedibird.com へお問い合わせください。