Je sollicite votre aide aujourd’hui pour tenter de résoudre un souci avec l’importation de vidéo à l’aide d’URL via PeerTube. J’ai installé récemment PeerTube dans un containeur Docker et je me suis rendu compte qu’il était impossible de récupérer un clip provenant de Twitch depuis l’interface web de PT.
Ce problème était causé par une version obsolète de youtube-dl, je m’en suis rendu compte en installant la dernière version de youtube-dl sur ma machine hôte : le téléchargement de vidéos provenant de Twitch fonctionnait sans accroc. Je me suis donc empressé de mettre à jour tout ça dans le conteneur avec les commandes suivantes :
J’ai ensuite vérifié que la dernière version était bien en place avec la commande : /app/node_modules/youtube-dl/bin/youtube-dl --version
J’ai réessayé d’importer un clip Twitch, ce coup-ci pas de message d’erreur. Le titre du clip est récupéré, mais l’importation du clip finit par échouer.
Plusieurs questions :
Quelqu’un a-t-il été confronté à un souci similaire ici ? Y a-t-il des choses que j’ai raté et omis de faire durant la mise à jour de youtube-dl dans le container ? Le support de la dernière version de youtube-dl nécessite-t-il un travail en amont pour que celle-ci soit compatible avec Peertube ?
PS : Je n’ai pas l’habitude de travailler sur du « linux »… A vrai dire, c’est la première fois que je vais aussi loin dans la gestion d’un serveur. Si vous avez besoin de plus de détails, n’hésitez pas à m’indiquer la marche à suivre pour que je puisse récupérer ce dont vous avez besoin. (ex: chemin d’accès vers un fichier .log, etc) (Normalement, je vous ai fourni assez de matières pour reproduire le soucis de votre côté)
J’ai aussi cherché un peu sur le forum, mais je n’ai rien trouvé qui puisse m’aider à solutionner ce problème. Peut-être ai-je mal cherché ?
Loin de moi l’envie de faire le gnangnan , mais lors de la recherche suivante sur Framacolibri, je trouve différents posts qui aborde le sujet youtube-dl, sa mise à jour, sur docker.
Oui, bien-sûr ! C’est grâce à ces posts que je suis parvenu à mettre à jour youtube-dl dans le container Peertube. Mais malgré l’installation de la dernière version de youtube-dl, je ne parviens pas à importer des clips Twitch sur PeerTube.
C’est ça qui m’interroge. Youtube-dl, mis à jour avec sa dernière version, fonctionne très bien sur la machine hôte (& dans le container) et parvient à récupérer le fameux clip Twitch lorsque je passe en ligne de commande.
Je m’en vais quand même relire tous les posts au sujet de youtube-dl au cas où.
Par contre, il m’affiche un avertissement dès lors que je fais un ./app/node_modules/youtube-dl/bin/youtube-dl https://clips.twitch.tv/FineHelpfulCobblerCharlieBitMe dans le container : WARNING: Assuming --restrict-filenames since file system encoding cannot encode all characters. Set the LC_ALL environment variable to fix this.
Mais youtube-dl parvient tout de même à télécharger le fichier, mais ce message ne s’affiche pas lorsque je fais un youtube-dl [lien] sur la machine hôte.
Peut-être que cela explique l’échec de l’importation depuis l’interface web de PeerTube ? Je vais essayer de trouver un clip sans caractères « incompatibles » pour vérifier ça.
21h00. C’était bien une affaire de caractères spéciaux…
Le clip suivant : https://clips.twitch.tv/PlacidRespectfulBatHotPokket est importé sans accroc via l’interface de PeerTube. Je vais essayer de reconfigurer mon container Docker afin de me débarrasser de ce message d’erreur.
Je reviendrais vers vous avec la solution définitive (J’espère !) afin que ceux qui rencontreront le même problème que moi puissent régler le souci.
Ce que je croyais être un problème de caractères spéciaux n’en est pas un. Le problème provient de PeerTube lui-même et de son système d’importation via URL.
J’ai réussi à me débarrasser du message suivant WARNING: Assuming --restrict-filenames since file system encoding cannot encode all characters. Set the LC_ALL environment variable to fix this. lors de l’utilisation de youtube-dl à l’intérieur du container abritant PeerTube. Et malgré cela, l’importation de certains clips provenant de Twitch demeure impossible.
J’arrive à reproduire le soucis sur une autre instance (en l’occurrence video.antopie.org). Pouvez-vous me dire si vous arrivez à reproduire le soucis de votre côté ?
Pour vous aider, je vous mets les liens vers deux clips : l’un fonctionne à l’importation, l’autre ne fonctionne pas du tout et son importation échoue.
Vu ce que je lis dans les logs, ça me paraît plutôt étrange que ce soit uniquement certains clips Twitch qui échouent à l’importation et pas la totalité ??
Est ce que Twitch n’utiliserais pas un nouveau format d’images pour les thumbnails (genre WebP) ?
Le message d’erreur «Input buffer contains unsupported image format» vient de la librairie sharp, qui est dans les dépendances de peertube.
Mais j’utilise l’image Docker Hub chocobozzz/peertube:production-buster qui doit sûrement être l’une des dernières mises à jour (dernière update : il y a un mois).
EDIT : c’est écrit « PeerTube v2.0.0 » dans le footer.
Attention, chocobozzz/peertube:production-buster veut dire que tu utilises l’image chocobozzz/peertube en suivant le tag production-buster, qui est effectivement mis à jour régulièrement pour suivre la dernière release, mais que tu dois synchroniser localement, sinon il reste dans la dernière version que tu as localement… Il faut faire un docker pull si tu veux la mettre à jour.
Quoiqu’il en soit, il serait bon d’essayer de reproduire ce bug une fois que tu as fais la mise à jour.
D’accord, merci. D’ailleurs, je viens de remarquer que mon containeur utilise le tag production-stretch qui semble plus mis à jour depuis longtemps déjà. Je n’avais pas fait attention à cette différence de tag en suivant ce tutoriel (https://normandie-libre.fr/deployer-un-serveur-peertube-grace-a-docker/) pour installer Peertube.
Je vais mettre à jour tout ça dès que j’ai un peu de temps. Je vous dirais si cela a résolu mon soucis ou non.
J’ai effectué la mise à jour vers la version 2.4.0 et le problème est toujours là. Le scénario est le même, l’importation de l’un des clips fonctionne (https://pastebin.com/a31Jq6eH) mais l’importation de l’autre échoue : https://pastebin.com/TaRFh25u. Cependant, les logs sont différents des logs précédents et peuvent sûrement vous aider à y voir plus clair.
Vous pouvez essayer de reproduire le souci de votre côté :
Oups. Je me souvenais avoir vu un changement à ce sujet, mais je ne savais plus dans quel sens. J’ai fait un grep dans mon répertoire de travail, pensant qu’il était suffisamment à jour. Raté.
J’ai l’impression que le fichier ramené par youtube-dl est vide : Invalid data found when processing input\nCannot determine format of input stream 0:0 after EOF\nError marking filters as finished
L’erreur 403 sur l’image que j’évoque plus haut me fait poser la question : cette vidéo a-t-elle des droits limités ?