Instagram TV oneboxing

Perdón si esto ya se ha discutido antes, pero ¿el soporte para oneboxing de enlaces de IGTV está en la hoja de ruta?

Cuando intento usar un enlace de IGTV, algo como https://www.instagram.com/tv/ID/, la respuesta es similar a la descrita en este tema:

https://www.instagram.com/tv/CIlKL1OBwE0/?hl=pt-br

Al hacer cURL a este enlace, hay og:image, og:description, og:video, etc.

Tras una mirada rápida, la URL no es compatible con el motor de oneboxing de Instagram:

Gracias.

3 Me gusta

¿Debería funcionar esto @jamie.wilson?

2 Me gusta

Un enlace de IGTV, tal como está ahora mismo, sería enrutado a través del oneboxer genérico, lo cual (probablemente) funcionaría para las primeras solicitudes de cualquier sitio dado. Tras un pequeño número de solicitudes, IG (probablemente) redirigirá esas solicitudes a una pantalla de inicio de sesión, que es lo que está viendo @renato.

Como señala @renato, el motor onebox de IG no está configurado para manejar enlaces con formato de IGTV. Acabo de crear una PR para solucionarlo:

Esto significa que el motor onebox de IG recuperará la URL de IG TV a través del endpoint oficial de oEmbed de IG y, suponiendo que hayas configurado un token de acceso, la solicitud de la URL onebox no debería ser redirigida a una pantalla de inicio de sesión.

(La solicitud de la PR de onebox requerirá un incremento de versión de onebox y, posteriormente, una actualización del Gemfile en el núcleo de Discourse.)

6 Me gusta

¡Gracias, ustedes son geniales!

Solo una idea: ¿podríamos aprovechar el og:video devuelto (que tiene secure_url, type, width y height) para mostrar un reproductor de video, como en el motor genérico?

Estamos utilizando el punto final de la API oEmbed de Instagram, el cual no devuelve el tipo de medio, ni la URL del archivo de video, ni ningún otro dato útil que nos permita construir un onebox con un reproductor incrustado.

Aunque acceder directamente a la página sí contiene estos metadatos, hacerlo más de unas pocas veces sin autenticación parece activar un estado en el servidor remoto que comienza a exigir autenticación. Por eso el enlace en tu primer mensaje apunta a una página de inicio de sesión.

En cuanto a los oneboxes, parece que por el momento tenemos bastante limitado lo que podemos hacer con los enlaces de IGTV.

4 Me gusta

Al usar la API oEmbed, se devuelve un atributo html. Veo que hay una discusión antigua que propone utilizar este html devuelto, pero al final se inclina hacia la solución actual.

Entiendo que el enfoque actual es más limpio y seguro, por lo que tiene sentido mantenerlo en el núcleo.

No es algo que necesite realmente ahora mismo, pero si llegara a necesitarlo, ¿sería viable crear un plugin personalizado para usar esta incrustación “oficial” de Instagram, aplicando una altura fija y recurriendo a la solución del núcleo como respaldo? ¿Puedo tener otro motor de Onebox con la misma matches_regexp o debería intentar hacer un monkey patch de Onebox::Engine::InstagramOnebox?

Gracias.

priority puede ayudar a controlar qué motores coinciden con URLs específicas.

También ten en cuenta el enfoque que adopta RedditMediaOnebox. Intentará devolver HTML personalizado, pero recurrirá a un onebox genérico si no sabe cómo procesar ese tipo específico de resultado.

4 Me gusta