Ajout de nouveaux champs pour les vidéos

Bonjour,

j’ai récemment installé une instance de peertube mais ne suis pas encore à l’aise avec, et encore moins avec des technos comme nodejs ou js. Excusez-moi si ma question est triviale.

L’instance peertube est destinée à héberger des conférences, et je souhaiterai rajouter des champs tels que « auteur » ou « type de conf ».

J’ai vu que le sujet est traité dans la documentation mais ne je ne saisis pas bien où inclure ces codes.

J’ai essayé de rajouter le code d’exemple dans Administration > Configuration > Avancé > Personnalisations JavaScript.
Je m’attendais à ce que cela me rajoute une case où je pourrais remplir la valeur de mon champ lorsque je charge ou modifie une vidéo mais il n’en est rien.

Si quelqu’un avait une idée sur ce que j’ai mal (ou pas) fait, ça me serait d’une grande aide :slight_smile:

Bonne fin de semaine

Le bout de code en question :

async function register ({ registerVideoField, peertubeHelpers }) {
  const descriptionHTML = await peertubeHelpers.translate(descriptionSource)
  const commonOptions = {
    name: 'auteur',
    label: 'Auteur',
    descriptionHTML: 'auteur de la présentation',

    // type: 'input' | 'input-checkbox' | 'input-password' | 'input-textarea' | 'markdown-text' | 'markdown-enhanced' | 'select' | 'html'
    // /!\ 'input-checkbox' could send "false" and "true" strings instead of boolean
    type: 'input-textarea',

    default: '',

  }

  const videoFormOptions = {
    // Optional, to choose to put your setting in a specific tab in video form
    // type: 'main' | 'plugin-settings'
    tab: 'main'
  }

  for (const type of [ 'upload', 'import-url', 'import-torrent', 'update', 'go-live' ]) {
    registerVideoField(commonOptions, { type, ...videoFormOptions  })
  }
}

Bonjour,

La doc à laquelle vous vous référez est celle pour la création de plugins.
Pour ajouter des champs, il faut effectivement passer par la création d’un plugin, il n’y a pas de solution native dans Peertube. Mais c’est plus compliqué que ça:

  1. cette doc c’est pour ajouter les champs dans le formulaire d’édition de la vidéo. C’est effectivement une étape à faire
  2. mais il faut ensuite afficher ces données. Et pour cela, c’est plus complexe. Pour chaque page sur laquelle vous voulez les afficher, il faudra ajouter du code pour faire le rendu (quand on regarde la vidéo, dans les listes de vidéos, …). Voir ici: PeerTube documentation
  3. il ne faut pas oublier que Peertube est une technologie «fédérée». Tout ça fonctionnera sur votre instance. Mais quelqu’un qui visionnera les vidéos depuis une autre instance ne verra pas ces informations.

Si vous voulez vous lancer dans le développement d’un plugin pour gérer tout ça, il faudra lire attentivement la page PeerTube documentation .

Peut-être cela vaut-il le coup de regarder si personne n’a déjà fait un tel plugin, ou un plugin proche qui pourrait être adapté (depuis l’écran d’administration de votre instance, vous pouvez lancer une recherche des plugins pour voir).

Dernière remarque: dans les fonctionnalités des plugins, il est possible de personnaliser certains champs existants. Vous pourriez par exemple ajouter le type de conf sous formes de nouvelles valeurs pour le champs «catégorie»: PeerTube documentation
NB: je ne sais pas comment se comporte ces nouvelles valeurs vis-à-vis de la fédération (je ne sais pas si elles seront correctement gérées par les instances distantes).

1 « J'aime »

Merci beaucoup John pour ces explications et ces pistes :slight_smile:
Bon ben c’est pas encore gagné !