Outils pour utilisateurs

Outils du site


slvpublic:peertube_trucs

Des 'trucs' sur Peertube

Acteur ou Mateur ?

Pour visioner des vidéos publiques sur une instance peertube il n'est pas nécessaire d'avoir un compte. Ni même pour visioner des vidéo dont le lien vous a été fourni quand la vidéo n'est pas pas privée.

Pour pouvoir poster des vidéo, il faut un céer compte.

Créer un compte peertube

Les instances

Tout le monde peut créer une instance peertube, il n'y a aucune redevance ou disposition particulière.

Une liste des instance non exhaustive est disponible sur https://joinpeertube.org

ce que peertube requiert : nginx + nodejs + redis + postgresql

Les utilisateurs

S'inscrire sur iune instance peertube permet d'y avoir un utilisateur.

La session utilisateur est créée par authentification OAuth2 auprès de l'instance peertube ( https://docs.joinpeertube.org/lang/en/devdocs/rest.html ).

l'implémentation côté serveur oauth2 est fournie par la libraire :

https://github.com/oauthjs/express-oauth-server

qui s'appuie sur la libraire

https://github.com/oauthjs/node-oauth2-server

select * from “user”;

id | password | username | email | emailVerified | nsfwPolicy | autoPlayVideo | blocked | blockedReason | role | videoQuota | videoQuotaDaily | createdAt | updatedAt | webTorrentEnabled | videosHistoryEnabled

base de donnée oauth :

select * from “oAuthClient”;

id | clientId | clientSecret | grants | redirectUris | createdAt | updatedAt

select * from “oAuthToken”;

id | accessToken | accessTokenExpiresAt | refreshToken | refreshTokenExpiresAt | userId | oAuthClientId | createdAt | updatedAt

Le réencodage des vidéos

Les vidéos soumises sur instance sont réencodées. C'est la charge la plus intensive en cpu qu'une instance doive réaliser.

Le nombre de vues

Comment est calculé le nombre de vues ?

Le plugin client s'en charge, toutes les secondes il compte, au bout de 30 secondes ou bien des 3/4 de la vidéo si elle fait moins que 30 secondes il notifie le serveur avec un POST sur l'uuid de la video + '/views'. ( ./client/src/assets/player/peertube-plugin.ts ) ( vérifié sur le code de la 1.4.1 ).

Le serveur se repose sur les appels à '/views' qu'il comptabilise par adresse ip source. ( ./server/controllers/api/videos/index.ts ). Les vues sur les vidéos privées ne sont pas conservées.

Sur l'instance les vues sont stoquées dans la base redis puis comptabilisées et conservées dans la base sql par l'execution du job videos-views toutes le heures.

Le nombre de vues est t'il par instance de consultation ou bien à la source ?

Bonne question… c'est le client qui choisit à quelle instance il envoie la requète de visualisation.

Peut on avoir totalement confiance dans le nombre de vues ?

Non, il est très facile pour l'administrateur d'une instance de modifier le nombre de vue par une simple requète sql…

La preuve ( 1 million de vues … ) https://pire.artisanlogiciel.net/videos/watch/08470484-3b3a-40da-b318-220d9ab90714

Les chaînes vidéo

un utilisateur peut créer plusieurs chaîne.

un spectateur peut choisir de suivre un utilisateur ou bien seulement une chaîne.

Exmeple de différentes chaîne sur l'instance peertube de slv :

Le pair à pair

Les vidéo peertube sont diffusées en mode webtorrent.

le serveur peertube créé un fichier torrent qui repose sur le fichier vidéo original (webseed).

le client, c'est à dire le navigateur peut alors partager sa vidéo avec d'autres clients et donc décahrger le traffic réseau sur le serveur.

Ce fichier torrent est créé dans le répertoire storage/torrent juste après le réencodage de la vidéo d'origine, il est créé autant de torrent qu'il y a de résolutions générées. La convention de nommage est uuid-resolution.torrent.

peertube utilise la librairie https://webtorrent.io/ pour créer les torrents

/var/www/peertube/peertube-latest# grep webtorrent yarn.lock 
"@types/webtorrent@^0.98.4":
  resolved "https://registry.yarnpkg.com/@types/webtorrent/-/webtorrent-0.98.4.tgz#cf8dbe22e3d5cf6915305f7f970b52bca01bf8b4"
webtorrent@^0.102.1:
  resolved "https://registry.yarnpkg.com/webtorrent/-/webtorrent-0.102.4.tgz#0902f5dddb244c4ca8137d5d678546b733adeb2f"

le webseed fonctionne avec des websockets et la capacité du serveur web de fournir des tronçons du fichier vidéo.

La base de données

Il y a deux bases, l'une en mémoire via le service redis et une relationnelle sql en postgresql.

La modération

Supprimer un compte utilisateur

La suppression d'un compte utilisateur entraine la destruction de toutes ses vidéos et toutes les références dans les bases de données.

https://framacolibri.org/t/deleting-user-what-will-happen-to-uploaded-content/3553

Les vidéos non publiques

Toutes les vidéos hébergées n'ont pas vocation à être publiques.

Certaines sont semi-publique leur accès necéessitant de connaître le lien, qui n'est pas publié.

D'autres sont complètement privées et nécessitent d'être enregistré en tant que l'utilisateur qui a posté la vidéo en mode privé.

Contraiement à NextCloud, il n'y a pour l'instant pas de gestion fine des droits d'accès.

Les vidéos fédérées

L'instance slv ne suit plus aucune instance ( elle eut suivi l'instance pire.artisanlogiciel.net de philippe lhardy ).

Les vidéos fédérées sont toutes les vidéos qui ne sont pas hébergées localement.

Certaines vidéos hébergées par les instances fédérées ne sont pas souhaitable pour tout public. Par exemple certaines vidéos humoristiques au vocabulaire fleuri provenant de l'instance PirePeerTube. Pour éviter de les diffuser elles ont été explicitement mises sur la liste noire, cette liste ne s'applique qu'à l'instance locale.

pour connaitre la liste des serveurs suivi il est possible d'utiliser la requète suivante api/v1/server/following sur l'url de l'instance :

ex :

https://peertube.serveur.slv-valbonne.fr/api/v1/server/following

⇒ ne suit rien

https://pire.artisanlogiciel.net/api/v1/server/following

⇒ suit quelques instances …

Problèmes

Bidouilles

slvpublic/peertube_trucs.txt · Dernière modification : 2019/10/16 21:59 de cyberyunohost