Embed cassé sur mon instance 2.1.0 et iOS

Bonjour,

je gère une instance PeerTube upgradé en 2.1.0 dernièrement et mes utilisateurs me disent qu’ils n’accèdent pas aux vidéos avec leur appareil iOS.
Effectivement avec Safari/iOS 13 sur iPhone la lecture, avec le player embarqué, ne marche plus.

Toutes les vidéos de mon instance sont HS avec le embed, il y a une erreur javascript (en + d’un warning sur HLS.js)
https://videos.adhocmusic.com/videos/embed/4cbcd93d-f281-4124-a987-e1b3c3a4d63b
(à noter que le test-embed fonctionne)
https://videos.adhocmusic.com/videos/test-embed/4cbcd93d-f281-4124-a987-e1b3c3a4d63b

[Warning] HLS.js does not seem to be supported. (8.chunk.js, line 1)
[Log] Fallback to webtorrent. (10.chunk.js, line 1)
[Error] TypeError: null is not an object (evaluating 'this.player_.language')
localize — 7.chunk.js:2:17322
(fonction anonyme) — video-embed.6feca3ba5f6f4935d7df.bundle.js:1:21940
generatorResume
a — video-embed.6feca3ba5f6f4935d7df.bundle.js:1:17258
promiseReactionJob

	(fonction anonyme) (video-embed.6feca3ba5f6f4935d7df.bundle.js:1:18693)
	generatorResume
	s (video-embed.6feca3ba5f6f4935d7df.bundle.js:1:17305)
	promiseReactionJob

En revanche une autre instance (aussi en 2.1.0 je pense) le embed marche bien (et rien dans la console d’erreur/warning)
https://peertube.datagueule.tv/videos/embed/b69424ee-33c8-4f7e-a47c-5c33d9c30b71

Contexte:
J’ai joué à activer/désactiver le HLS depuis la v2.0, à lancer optimize-old-videos, prune-storage mais rien y fait.
Je soupçonne une corruption dans ma base de données postgres ?..
J’ai bien relancé l’instance, réexécuté le script ./upgrade.sh …

Pourriez-vous m’aider à comprendre ce bug ?

Merci pour l’aide. Et à dispo pour + de précisions de debug

J’ajoute des précisions sur le serveur qui héberge mon instance:

  • Kimsufi OVH (KS-4)
  • Debian 9.12
  • Yarn 1.21.1
  • FFMPEG 4.2.2
  • PeerTube 2.1.0
  • PostGres 9.6
  • node v10.19.0

Je pense que c’est un bug de CSP. Voir ici : https://github.com/Chocobozzz/PeerTube/issues/2509
Il a été corrigé et sera disponible dans la version 2.1.1

PS : Chez moi, avec firefox, tous tes liens fonctionnent

Salut @JohnLivingston et merci pour ton retour.
j’avais lu cette issue mais il me semble que les bugs CSP sont généralement + explicites dans les consoles d’erreur. Ma config était en csp: enable: false, je l’ai passé à false (et restart l’instance) mais même problème. Précision: uniquement sous iOS. Tout marche très bien (chez moi) sur Safari desktop, Firefox.

Bonjour,

Ça semble être un bug du côté de PeerTube. Je regarderai.

1 « J'aime »

Salut,

En voyant this.player_.language sur la ligne [Error] et localize juste en dessous, je me dis que c’est plutôt quelque chose en rapport avec la langue sur le Debian. C’est quelque chose de pernicieux parfois, il suffit d’utiliser une “localisation” non reconnue par un système pour que ça ne fonctionne pas bien.

mon Debian est configuré avec la locale fr_FR.UTF-8 ce qui est somme toute classique :slight_smile:
Après j’ai l’impression que le problème se situe plutôt côté client, et les bundle js sont déjà précompilés par webpack dans le .zip distribué (et je ne me suis pas amusé à bidouiller le code ou le recompiler, je laisse ça aux spécialistes :grin:). On va donc attendre un retour de maitre @Chocobozzz, le problème est entre de bonnes mains maintenant :cowboy_hat_face:

Ça devrait être corrigé dans la prochaine version de PeerTube via ce commit : https://github.com/Chocobozzz/PeerTube/commit/133d9c112a19720eccc20def0c01aa0ec009c27a

Merci pour la remontée du bug :slight_smile:

Merci à toi de la réactivité ! (et aux autres d’avoir pris le temps de lire mes messages)
J’ai hacké comme un malpropre sur mon instance le video-embed.xxx.bundle.js en ajoutant ta modif et ça a bien solutionné le problème iOS de mon côté :sunglasses:
Je pense que les autres instances ne sont touchées que si elles avaient activé le HLS.