diff --git a/languages/settings/de.yml b/languages/settings/de.yml
index a5a95f22..2fdb26bd 100644
--- a/languages/settings/de.yml
+++ b/languages/settings/de.yml
@@ -16,6 +16,14 @@ list_rooms_label: "Bestehende Räume auflisten"
list_rooms_description: |
Räume auflisten
+federation_description: ~
+
+federation_no_remote_chat_label: ~
+federation_no_remote_chat_description: ~
+
+federation_dont_publish_remotely_label: ~
+federation_dont_publish_remotely_description: ~
+
chat_behaviour_description: "
Chatverhalten
"
room_type_label: "Raumtyp"
diff --git a/languages/settings/en.yml b/languages/settings/en.yml
index d0764f84..af681207 100644
--- a/languages/settings/en.yml
+++ b/languages/settings/en.yml
@@ -16,6 +16,27 @@ list_rooms_label: "List existing rooms"
list_rooms_description: |
List rooms
+federation_description: |
+ Federation
+ Following settings concern the fedration with other Peertube instances,
+ and other fediverse softwares.
+
+federation_no_remote_chat_label: "Don't display remote chats"
+federation_no_remote_chat_description: |
+ By checking this setting, your instance will never display chats from remote videos.
+
+federation_dont_publish_remotely_label: "Don't publish chat information"
+federation_dont_publish_remotely_description: |
+ By checking this setting, your instance will not publish chat information on the fediverse.
+ Remote Peertube instances will not be aware that they are chat rooms associated to your videos.
+ Please note: if you already had chats in progress, it is possible that the information has already been published.
+ You will have to wait for the next video update before the information is unpublished.
+ Also, if you disable this setting, you'll have to wait for the videos to be updated before the information are
+ published again. This update happens among others when a live event resumes or stops.
+ Please note: this setting only affects the publication of information via the ActivityPub protocol.
+ It will not prevent a remote application from otherwise detecting the presence of chats, and trying to connect to it.
+
+
chat_behaviour_description: "Chat behaviour
"
room_type_label: "Room type"
diff --git a/languages/settings/fr.yml b/languages/settings/fr.yml
index ca3e495b..18687acd 100644
--- a/languages/settings/fr.yml
+++ b/languages/settings/fr.yml
@@ -16,6 +16,26 @@ list_rooms_label: "Lister les salons de tchat existants"
list_rooms_description: |
Lister les salons
+federation_description: |
+ Fédération
+ Les paramètres ci-dessous concerne la fédération avec d'autres instances Peertube
+ et autres logiciels du fédivers.
+
+federation_no_remote_chat_label: "Ne pas afficher les tchats distants"
+federation_no_remote_chat_description: |
+ En cochant ce paramètre, votre instance n'affichera jamais les tchats sur les vidéos distantes.
+
+federation_dont_publish_remotely_label: "Ne pas publier les informations de tchats"
+federation_dont_publish_remotely_description: |
+ En cochant ce paramètre, votre instance ne publiera pas les informations de tchat sur le fédivers.
+ Les instances Peertube distantes ne sauront pas qu'un tchat est associé aux vidéos.
+ Attention: si vous aviez déjà des tchats en cours, il est possible que les informations aient déjà été publiées.
+ Il faudra attendre la prochaine mise à jour des vidéos pour que les informations soient dépubliées.
+ De même, si vous désactivé ce paramètre, il faudra attendre que les vidéos soient mises à jour pour à nouveau
+ publier les informations. Cette mise à jour intervient entre autre quand un live reprend ou s'arrête.
+ Attention: ce paramètre ne joue que sur la publication d'informations via le protocole ActivityPub. Il n'empêchera
+ pas une application distante de détecter autrement la présence de tchat, et de tenter de s'y connecter.
+
chat_behaviour_description: "Comportement du tchat
"
room_type_label: "Type de salon"
diff --git a/languages/settings/it.yml b/languages/settings/it.yml
index fb124c8e..fda80dac 100644
--- a/languages/settings/it.yml
+++ b/languages/settings/it.yml
@@ -16,6 +16,14 @@ list_rooms_label: "Elenco delle chat room esistenti"
list_rooms_description: |
Elenca le chat room
+federation_description: ~
+
+federation_no_remote_chat_label: ~
+federation_no_remote_chat_description: ~
+
+federation_dont_publish_remotely_label: ~
+federation_dont_publish_remotely_description: ~
+
chat_behaviour_description: "Comportamento della chat
"
room_type_label: "Tipo di chat room"
diff --git a/server/lib/federation/init.ts b/server/lib/federation/init.ts
index c1421312..f0b133f1 100644
--- a/server/lib/federation/init.ts
+++ b/server/lib/federation/init.ts
@@ -1,7 +1,7 @@
import type { RegisterServerOptions, VideoObject, MVideoAP, MVideoFullLight } from '@peertube/peertube-types'
import { videoHasWebchat } from '../../../shared/lib/video'
import { getBoshUri, getWSUri } from '../uri/webchat'
-import { fullUri } from '../uri/full'
+import { canonicalizePluginUri } from '../uri/canonicalize'
import { getProsodyDomain } from '../prosody/config/domain'
interface LiveChatVideoObject extends VideoObject {
@@ -37,9 +37,14 @@ export async function initFederation (options: RegisterServerOptions): Promise