Version de youtube-dl obsolète, souci d'importation persistant après sa mise à jour

Bonjour,

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.

Exemple : l’import de Twitch me retournait un message d’erreur.

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 :

sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /app/node_modules/youtube-dl/bin/youtube-dl && chmod a+rx /app/node_modules/youtube-dl/bin/youtube-dl

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é ? :slight_smile:

Merci d’avance pour votre aide,

Draowyr

Salut,

Loin de moi l’envie de faire le gnangnan :smile:, mais lors de la recherche suivante sur Framacolibri, je trouve différents posts qui aborde le sujet youtube-dl, sa mise à jour, sur docker.

https://framacolibri.org/search?q=youtube-dl

As-tu déjà parcourus ces posts là ?

Bonjour @PaliPalo,

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ù. :slight_smile:


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.

Merci pour la réponse,

Draowyr

Super! Et d’avance merci de la réponse que tu nous rapporteras

Bonsoir,

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.

À savoir que lorsque j’utilise youtube-dl en ligne de commande, l’importation des deux clips incriminés fonctionne à merveille.

Merci d’avance,

Draowyr

Les warnings ne sont pas toujours liés à la source du problème. As tu les logs serveur liés à l’importation ?

Bonjour,

Vous avez raison. Voici les logs que génère PeerTube lors d’une tentative d’importation :

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é ??

Merci de l’attention apportée au sujet,

Draowyr

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.

C’est peut être en lien avec ça : https://github.com/lovell/sharp/issues/1255

Bonjour,

C’est assez étrange car le clip suivant : https://clips.twitch.tv/FineHelpfulCobblerCharlieBitMe fonctionne très bien à l’importation (https://pastebin.com/AjUa8ppy) et a pourtant été publié dans la même période que celui qui échoue.

Peut-être que le format utilisé varie d’un clip à l’autre finalement ? Ce qui serait assez étrange.

En tout cas, j’espère que tout ça permettra d’améliorer PeerTube. :slight_smile:

Draowyr

En utilisant l’option --list-thumbnails de youtube-dl sur les 2 liens twitch fournis, tout est en jpg. D’ailleurs, le log parle bien du fichier https://clips-media-assets2.twitch.tv/22823002480-index-0000004474-preview-480x272.jpg.

Ça doit plutôt être lié à soit un bug dans sharp, soit un bug dans la façon de passer le fichier à sharp. Je n’ai pas le temps de fouiller plus.

Ou, 3e hypothèse : ça plante avant, et on donne un fichier vide à sharp.

Ah, j’ai trouvé un truc !
Le fichier https://clips-media-assets2.twitch.tv/22823002480-index-0000004474-preview-480x272.jpg est en erreur 403 «access denied» !

1 Like

@Draowyr quelle version de PeerTube fais-tu tourner ? Parce que nous n’utilisons plus sharp pour traiter les images à partir de la 2.4.

Je ne sais pas où récupérer cette information.

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.

1 Like

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.

Merci pour l’aide ! :slight_smile:

Petite update :

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 ?