Um link do IGTV, no estado atual, seria roteado pelo oneboxer genérico, o que (provavelmente) funcionaria para as primeiras solicitações de qualquer site. Após um pequeno número de solicitações, o Instagram (provavelmente) redirecionará essas solicitações para uma tela de login, que é o que @renato está vendo.
Como @renato aponta, o mecanismo onebox do Instagram não está configurado para lidar com links no estilo IGTV. Acabei de criar um PR para isso:
Isso significa que o mecanismo onebox do Instagram buscará a URL do IG TV por meio do endpoint oficial de oEmbed do Instagram e, supondo que você tenha configurado um token de acesso, a solicitação de URL onebox não deve ser redirecionada para uma tela de login.
(O PR do onebox exigirá um aumento de versão do onebox e, em seguida, uma atualização do Gemfile no núcleo do Discourse.)
Só um pensamento: poderíamos aproveitar o og:video retornado (que possui secure_url, type, width e height) para exibir um player de vídeo, como no generic engine?
Estamos usando o endpoint da API oEmbed do Instagram, que não retorna o tipo de mídia, nem a URL do arquivo de vídeo, nem qualquer outra informação útil que nos permita construir uma onebox com um player incorporado.
Embora acessar a página diretamente contenha esses metadados, fazê-lo mais do que algumas vezes de forma não autenticada parece ativar um estado no servidor remoto que passa a exigir autenticação. É por isso que o link em sua primeira postagem está apontando para uma página de login.
No que diz respeito às oneboxes, parece que estamos bastante limitados no que podemos fazer com links do IGTV no momento.
Ao usar a API oEmbed, há um atributo html retornado. Vi que há uma discussão antiga propondo o uso desse html retornado, mas ela acaba inclinando-se para a solução atual.
Entendo que a abordagem atual é mais limpa e segura, então faz sentido mantê-la no núcleo.
Não é algo que eu precise atualmente, mas, caso precise, seria viável criar um plugin personalizado para usar essa incorporação “oficial” do Instagram — impondo uma altura fixa e recorrendo à solução do núcleo? Posso ter outro motor Onebox com o mesmo matches_regexp, ou devo tentar fazer um monkey patch em Onebox::Engine::InstagramOnebox?
O priority pode ajudar a controlar quais engines correspondem a URLs específicas.
Note também a abordagem adotada pela RedditMediaOnebox. Ela tentará retornar HTML personalizado, mas fará fallback para um onebox genérico se não souber como processar esse type específico de resultado.