O problema também aparece em alguns sites para adultos, onde membros estavam tentando compartilhar links; fiz um teste rápido colando vários URLs de vídeo de diferentes lugares, e vários dos principais sites para adultos também não funcionam.
Isso parece ser um bug relativamente sério, apenas no sentido de que afeta os embeds do Facebook. Meus membros (menos familiarizados com tecnologia) gostam de compartilhar links para coisas no Facebook, em parte porque é tão popular e universal. Além disso, se alguém postar esse URL em uma mensagem, ele é analisado e transformado em algo que não funciona, e o URL original desaparece. Então você nem consegue acessar aquele URL se quisesse… ele simplesmente não está mais disponível.
Então… é possível instruir o Discourse a NÃO tentar incorporar vídeos automaticamente nesses domínios? Eu estava procurando por uma configuração como ‘bloquear URLs que contenham estas palavras na incorporação de mídia’, onde eu pudesse adicionar esses domínios. (Ou talvez uma lista branca de URLs aprovados, como YouTube e Vimeo, para evitar problemas futuros com novos sites.)
Se não for possível, existe uma correção rápida que eu possa fazer nos meus fóruns para ajudar?
Sim, eu diria que isso é crítico. Para mim, não é grande coisa se o Discourse não suportar vídeos do Facebook. O problema real é quando um membro cola um link (o que é bem comum) e isso gera uma mensagem de erro… e o link original some. Tenho várias mensagens assim no meu fórum agora. Nós, administradores, estamos consertando manualmente conforme aparecem, mas, obviamente, isso não é uma solução ideal.
Acredito que isso seja um bug sério apenas porque o Facebook (juntamente com outros sites de vídeo que testei) é extremamente popular.
Adoraria encontrar uma correção rápida… me avise se posso ajudar?
A solução mais rápida aqui seria adicionar www.facebook.com à configuração: onebox domains blacklist. Dessa forma, o onebox não tentará incorporar vídeos do facebook.com.
O link de vídeo acima mostra o erro: Bad URL timestamp.
Até mesmo o link na tag og:image mostra o mesmo erro.
Não temos nenhuma informação para exibir na onebox do Facebook, exceto o título do vídeo. Acredito que devemos codificar a onebox para bloquear links de vídeo do Facebook.
A propósito, lembre-se de que isso acontece em outros sites além do Facebook; um membro tentou postar um link para uma página de vídeo no xvideos.com e também falhou. (Aviso NSFW! Esse é MUITO um site adulto!) Testei com alguns outros sites e encontrei o mesmo problema.
Acho que o link não vai expirar, pois a URL aponta basicamente para um plugin do Facebook que incorporará o vídeo de qualquer link de vídeo que passarmos no parâmetro href.
Observe que a onebox de vídeo com falha geralmente indica que o erro está no site que você está tentando incorporar. No caso do Facebook, era o Facebook sendo muito restritivo e permitindo a reprodução de vídeo apenas por um determinado período.
Geralmente, contornamos esses erros apenas para sites muito populares (exemplo: Instagram), para que a comunidade em geral possa se beneficiar. Se o site não for popular e você precisar incorporá-lo no seu site, a maneira recomendada é criar um plugin personalizado adicionando um motor Onebox personalizado para esse site.
Hmm. Existe uma maneira de permitir apenas domínios específicos que o onebox tentará incorporar? Se não, parece que temos a seguinte situação:
Eu administro um fórum comunitário onde os membros gostam de linkar sites com vídeos. (Esses podem ser qualquer site, claro… não sabemos no momento.)
Se um site tiver um erro no código que impeça a incorporação de funcionar, o Discourse distorce a incorporação (feio), e pior ainda, remove a URL original para que outros não possam ver o que o OP estava tentando compartilhar.
Não parece que o passo 2 deveria ser: “Se um site tiver um erro no código que impeça a incorporação de funcionar, o Discourse para de tentar incorporar e, em vez disso, apenas deixa o link passar?”
Não consigo corrigir isso com a lista negra porque não sei quais domínios são afetados por isso e, claro, qualquer site pode ter esse problema no futuro. Assim como vimos aqui com o Facebook.
Ok, isso está bom. Não tenho uma boa noção de quão grande é esse problema; lidar manualmente com eles é uma ótima solução se houver poucos domínios com esse problema.
Ainda acho que o Discourse deveria lidar com dados externos malformados de maneira mais graciosa do que “criar uma mensagem de erro gigantesca e remover o conteúdo mais importante da postagem do OP” — e acho que você provavelmente também pensa assim. Mas, por enquanto, a blacklist é uma solução alternativa aceitável. Obrigado.