L’intégration des vidéos Youtube classiques fonctionne.
Je ne rencontre pas ce problème sur try.discourse ou meta.
Je suppose que cela vient d’un paramètre du site mal configuré.
Le oneboxing YouTube est quelque chose que nous avons créé sur mesure. Quelqu’un doit soumettre une demande de pr-welcome pour la compatibilité avec les Shorts. Passage à Feature
En attendant, vous pouvez toujours ajouter l’URL de l’iframe manuelle au paramètre de site allowed iframes :
Pourriez-vous me dire quelle URL je dois ajouter dans les iframes autorisées afin d’afficher la vidéo comme vous l’avez fait ? Cela ferait parfaitement l’affaire pour l’instant, même si elle est effectivement haute.
Quant à la hauteur de la vidéo, il est possible de la rendre moins haute en définissant une max-height avec CSS sur l’iframe. Le problème est que l’iframe n’a aucun attribut qui spécifie qu’il s’agit d’une vidéo courte (verticale).
Mais alors, que dois-je faire pour que la vidéo apparaisse ?
Si j’écris dans mon post https://www.youtube.com/shorts/SWeTMdyv50Q, cela ne fonctionnera pas.
Si j’écris <iframe>https://www.youtube.com/shorts/SWeTMdyv50Q</iframe>, cela ne fonctionnera pas.
Si j’écris https://www.youtube.com/embed/SWeTMdyv50Q, cela fonctionnera, mais affichera la courte vidéo avec le rapport largeur/hauteur standard des vidéos YouTube (ce qui me convient, bien que je préférerais avoir un autre rapport et ne pas avoir à écrire manuellement « embed » dans l’URL) :
Faites un clic droit sur une vidéo YouTube Shorts et sélectionnez « Copier le code d’intégration ». C’est ce que je voulais dire par « code d’intégration manuel », désolé de ne pas avoir été clair.
De plus, remplacer /shorts/ par watch?v=, l’URL par défaut d’une vidéo Youtube, fonctionne.
Ainsi, sur Youtube, sur https://www.youtube.com/shorts/SWeTMdyv50Q, faire un clic droit → Copier l’URL de la vidéo fonctionnera car cela renvoie https://youtu.be/SWeTMdyv50Q qui est correctement affiché sur Discourse (avec le rapport largeur/hauteur habituel cependant).
Je ne suis pas développeur mais je suppose que quelque chose comme ça pourrait faciliter les choses pour un développeur qui voudrait faire un pr-welcome ?
Je l’ai fait, bien que j’aie peut-être un peu foiré ma pull request car pour une raison quelconque, je ne suis toujours pas habitué à GitHub… Je dois vraiment lire le manuel (et, un ami me dit, créer des branches à partir de ma fork Discourse…).
Juste pour information, j’ai juste édité le fichier lib\\onebox\\engine\\youtube_onebox.rb pour ajouter
# https://www.youtube.com/shorts/wi2jAtpBl0Y
if uri.path["/shorts/"]
id ||= uri.path[/\\/shorts\\/([\\w\\-]+)/, 1]
end
Les gens copient-collent généralement leur lien Youtube depuis leur barre d’adresse.
Maintenant, Youtube a une nouvelle URL /shorts/, les gens copieront-colleront ces liens /shorts/ et ils ne sont pas encore pris en charge par le oneboxing de Youtube.
Les liens /embed/ le sont, mais ils nécessitent que l’utilisateur recherche l’URL d’intégration sur Youtube, ce que pratiquement personne ne fait
Je me demande juste s’il serait plus facile de changer cette URL ? Parce que youtube.com/shorts/something est exactement la même chose que youtube.com/embed/something, et avec /embed/ l’intégration/l’incorporation fonctionne très bien ici.
https://youtube.com/shorts/aQFdwUeZxkA ne fonctionne pas :
Mais https://youtube.com/embed/aQFdwUeZxkA fonctionne :
Je ne vous suis toujours pas. Qui changerait l’URL ? L’afficheur ? Mais l’afficheur ne veut pas réécrire manuellement une partie d’une URL (il ne saura même pas pourquoi la vidéo ne s’intègre pas), il veut juste copier-coller, et voilà, ça marche.
Edit : ou voulez-vous dire que le code Oneboxing de Discourse remplacerait /shorts/ par /embed/ ?
Oui, peut-être ! Je ne suis pas exactement un sorcier du code
Oui, j’ai juste du mal avec le fichier de test ruby. Ça ne fonctionne pas et je ne sais pas pourquoi. Je n’ai jamais utilisé/créé de tests unitaires auparavant donc…
it \"peut analyser les résultats de youtube shorts\" do
preview = expect(Onebox.preview('https://www.youtube.com/watch?v=wi2jAtpBl0Y').placeholder_html)
preview.to match(/reacts/)
preview.to match(/hqdefault/)
end
Et j’ai aussi ajouté ceci au début du fichier, dans before do :