La incrustación de videos normales de YouTube funciona.
No encuentro este problema en try.discourse o meta.
Supongo que proviene de una configuración del sitio no configurada correctamente.
La integración de YouTube es algo que creamos nosotros mismos. Alguien necesita enviar un pr-welcome para la compatibilidad con Shorts. Moviendo a Feature
Mientras tanto, siempre puedes añadir la URL manual del iframe a la configuración del sitio allowed iframes:
¿Podrías decirme qué URL debo añadir en los iframes permitidos para que el vídeo se muestre como lo hiciste tú? Haría el trabajo perfectamente por ahora, aunque sea alto.
En cuanto a la altura del vídeo, es posible hacerlo menos alto estableciendo una max-height con CSS en el iframe. El problema es que el iframe no tiene ningún atributo que especifique que es un vídeo corto (vertical).
Pero entonces, ¿qué debo hacer para que aparezca el video?
Si escribo en mi publicación https://www.youtube.com/shorts/SWeTMdyv50Q, no funcionará.
Si escribo <iframe>https://www.youtube.com/shorts/SWeTMdyv50Q</iframe>, no funcionará.
Si escribo https://www.youtube.com/embed/SWeTMdyv50Q, funcionará, pero mostrará el video corto con la relación de aspecto de video de YouTube estándar (lo cual está bien para mí, aunque preferiría tener otra relación de aspecto y no tener que escribir manualmente “embed” en la URL):
Haz clic derecho en un video de Shorts y selecciona “Copiar código de inserción”. Eso es lo que quise decir con “código de inserción manual”, disculpa si no fui claro.
Además, reemplazar /shorts/ por watch?v=, la URL predeterminada de un video de Youtube, funciona.
Por lo tanto, en Youtube, en \u003chttps://www.youtube.com/shorts/SWeTMdyv50Q\u003e, hacer clic derecho -\u003e Copiar URL del video funcionará ya que devuelve https://youtu.be/SWeTMdyv50Q que se muestra correctamente en Discourse (aunque con la proporción ancha normal).
Lo he hecho, aunque puede que haya estropeado un poco mi pull request porque, por alguna razón, todavía no estoy acostumbrado a GitHub… Realmente necesito leer el manual (y, me dice un amigo, crear ramas desde mi fork de Discourse…).
Solo como información, acabo de editar el archivo lib\\onebox\\engine\\youtube_onebox.rb para añadir
# https://www.youtube.com/shorts/wi2jAtpBl0Y
if uri.path["/shorts/"]
id ||= uri.path[/\/shorts\/([\w\-]+)/, 1]
end
Solo me pregunto si sería más fácil simplemente cambiar esa URL? Porque youtube.com/shorts/something es totalmente igual que youtube.com/embed/something, y con /embed/ la incrustación/embebido funciona perfectamente aquí.
https://youtube.com/shorts/aQFdwUeZxkA no funciona:
Pero https://youtube.com/embed/aQFdwUeZxkA funciona:
Todavía no te sigo. ¿Quién cambiaría la URL? ¿El publicador? Pero el publicador no quiere reescribir manualmente parte de una URL (ni siquiera sabrá por qué el video no se incrusta), solo quiere copiar y pegar, y listo, funciona.
Edición: ¿o quieres decir que el código Oneboxing de Discourse reemplazaría /shorts/ por /embed/?
¡Sí, tal vez! No soy exactamente un mago del código
Sí, solo estoy teniendo problemas con el archivo de prueba de Ruby. No funciona y no sé por qué. Nunca antes había usado/creado pruebas unitarias, así que…
it \"puede analizar resultados 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
Y también he añadido esto al principio del archivo, en before do: