Dossier séparé pour les videos et streaming_playlists?

Bonjour, je ne peux pas lire les vidéos locaux sur mon instance (tv.atmx.ca). Les vidéos fédérés fonctionnent bien.

Présentement, j’ai changé le dossier des videos et streaming_playlists dans le fichier de config production.yaml pour les faire pointer vers /tubepool, une zpool que j’ai monté au root.

# From the project root directory
storage:
  tmp: '/var/www/peertube/storage/tmp/' # Use to download data (imports etc), store uploaded files before processing...
  avatars: '/var/www/peertube/storage/avatars/'
  videos: '/tubepool/videos/'
  streaming_playlists: '/tubepool/streaming-playlists/'
  redundancy: '/var/www/peertube/storage/redundancy/'
  logs: '/var/www/peertube/storage/logs/'
  previews: '/var/www/peertube/storage/previews/'
  thumbnails: '/var/www/peertube/storage/thumbnails/'
  torrents: '/var/www/peertube/storage/torrents/'
  captions: '/var/www/peertube/storage/captions/'
  cache: '/var/www/peertube/storage/cache/'
  plugins: '/var/www/peertube/storage/plugins/'
  # Overridable client files : logo.svg, favicon.png and icons/*.png (PWA) in client/dist/assets/images
  # Could contain for example assets/images/favicon.png
  # If the file exists, peertube will serve it
  # If not, peertube will fallback to the default fil
  client_overrides: '/var/www/peertube/storage/client-overrides/'

Est-ce que tous les fichiers doivent obligatoirement se trouver dans le root directory (~/var/www/peertube…) pour pouvoir être « retrouvés » par Peertube ? (Dans ce cas, je devrais donc monter ma pool à /var/www/peertube/storage. Le hic c’est que je voulais que ma pool (zfs raidz1, 4x1Go) ne contienne que les videos, pas les avatars, etc.)

Le problème doit venir de la configuration nginx. Celle-ci indique comme «root» /var/www/peertube/storage : https://github.com/Chocobozzz/PeerTube/blob/8aad7ae413e58ae2ef847c5e12419c45f4ff55be/support/nginx/peertube#L140

Il faudrait monter les dossiers videos et streaming_playlist de la zpool dans /var/www/peertube/[videos|streaming_playlist].

Un peu comme ce qui est indiqué ici : PeerTube documentation (old object storage method)

Et penser à rétablir le production.yml en y remettant /var/www/peertube/[…].

NB: penser à vérifier que le user peertube a bien les droits sur les points de montage.

Peut être que des liens symboliques suffisent. À voir si nginx l’accepte.

ln -s /tubepool/videos/ /var/www/peertube/storage/videos
ln -s /tubepool/streaming_playlist/ /var/www/peertube/storage/streaming_playlist
1 Like

Merci, c’était une bonne idée mais ça ne semble pas fonctionner. J’ai toujours des erreurs sur les GET dans la console lorsque je vais sur le site.

zone.js:1465 GET https://tv.atmx.ca/static/streaming-playlists/hls/acd76dce-e6c4-4da6-ae81-79ad372005cc/09e5307a-2c53-48d5-905a-58b208073ad7-segments-sha256.json 404

Cannot get sha256 segments SyntaxError: Unexpected token < in JSON at position 0

GET https://tv.atmx.ca/static/streaming-playlists/hls/acd76dce-e6c4-4da6-ae81-79ad372005cc/4a454afb-ca41-420f-96e0-a6781a4fe033-master.m3u8 404

Avec laquelle des 2 solutions proposées ? les liens symboliques ou le mount ?

Est ce que ce n’est pas une typo entre «streaming-playlists» et «streaming_playlist» ? Dans ma réponse, j’ai recopié le «streaming_playlist» sans réfléchir, mais je vois dans les urls données en exemple que c’est «streaming-playlists» (pluriel et tiret au lieu d’underscore).

Les liens symboliques ne semblent pas fonctionner.

Je vais changer aujourd’hui le mount pour le faire pointer à ~/var/www/peertube/storage. Je me demandais si cela allait ralentir la réponse du serveur puisque les avatars, icônes et autres seront sur raidz1 plutôt que sur ssd. Je vais activer le cache de nginx pour compenser.

Et c’est bien une typo que j’ai fait avec streaming-playlists. C’est bien un tiret - et non un souligné _ .

Merci pour l’aide John.

Tu n’es pas obligé de mettre tout storage sur raidz1. Tu peux ne monter que les sous-dossiers «videos» et «streaming-playlist» (avec 2 mount différents).

Ok, je vais devoir rechercher un peu pour les 2 mounts.

Par contre, monter la pool dans le root de peertube n’a pas réglé mon problème. Les vidéos ne démarrent toujours pas.

J’ai des erreurs 200, 204, 216, 304 qui en gros semble indiquer que le contenu visé n’est pas trouvé par le serveur? (newbie #1 ici) Je commence à me demander si je n’ai pas brisé mon installation en déplaçant la pool.

Ce ne sont pas des erreurs.
200 : ok
204 : ok sans contenu (ça peut être normal)
216 : ça n’existe pas, mais je pense que c’est une erreur de copie. Ça doit être 206 : ok, envoi partiel (ce qui doit être le cas pour les fragments de vidéo)
304 : non modifié (le navigateur a la bonne version en cache)

En revanche, j’ai une erreur 404 (page non trouvée) sur ce fichier par exemple : https://tv.atmx.ca/static/streaming-playlists/hls/5da2e36f-5807-4ad0-89a0-590cb4a4f769/a68e86bf-58f3-4465-a040-161817fdce62-segments-sha256.json
ou encore : https://tv.atmx.ca/static/streaming-playlists/hls/04a83562-a469-4282-92be-90734b35ca60/2a3ce7eb-1683-4a26-a547-23d272ed2611-master.m3u8

Il n’a pas dû être correctement copié vers la nouvelle partition.

J’ai supprimé les quelques vidéos qui ne fonctionnaient pas et j’ai exécuté prune-storage.js.

Maintenant, j’ai toujours une erreur de websocket depuis le début:

Firefox ne peut établir de connexion avec le serveur à l’adresse wss://tv.atmx.ca/tracker/socket.

D’après ce que j’ai lu, websocket devrait entrer sur le port 80 ou 443, que j’ai autorisés dans le firewall. Y aurait-il autre chose?

Chez moi ça fonctionne, la connexion websocket est bien établie sur wss://tv.atmx.ca/tracker/socket.

J’ai répondu un peu vite. J’ai effectivement le message d’erreur. Mais la connexion semble bien être établie. Je n’ai pas le temps de creuser.

Pas de problème et merci beaucoup pour l’aide c’est très apprécié!

Ramener les dossiers videos et streaming-playlists a rétabli la lecture!