Einbettungen von Videos von facebook.com und anderen Seiten funktionieren nicht

Ein Mitglied von mir hat diesen Facebook-Link einzeln gepostet, und Discourse hat versucht, ihn zu parsen, was jedoch nicht geklappt hat.

Lassen Sie mich denselben Link direkt auf einer eigenen Zeile versuchen:

Falls Sie ihn oben nicht sehen, wird Folgendes angezeigt:

Das Problem tritt auch bei einigen Erwachsenenseiten auf, auf denen Mitglieder versuchten, Links zu teilen; ich habe einen kurzen Test durchgeführt, bei dem ich eine Reihe von Video-URLs von verschiedenen Orten eingefügt habe – mehrere der wichtigsten Erwachsenenseiten funktionieren ebenfalls nicht.

Dies scheint ein relativ schwerwiegender Fehler zu sein, da er nur die Einbettungen für Facebook betrifft. Meine (weniger technikaffinen) Mitglieder teilen gerne Links zu Inhalten auf Facebook, unter anderem weil diese Plattform so beliebt und universell ist. :frowning: Außerdem wird eine solche URL, wenn jemand sie in eine Nachricht postet, in etwas umgewandelt, das nicht funktioniert, und die ursprüngliche URL ist weg. Man kann also nicht einmal mehr auf diese URL zugreifen, wenn man wollte … sie ist überhaupt nicht mehr verfügbar.

Also … ist es möglich, Discourse anzufweisen, bei diesen Domains NICHT automatisch Videos einzubetten? Ich habe nach einer Einstellung wie „URLs mit diesen Wörtern von der Medien-Einbettung ausschließen“ gesucht, in der ich diese Domains hinzufügen könnte. (Oder vielleicht eine Whitelist mit genehmigten URLs wie YouTube und Vimeo, um zukünftige Probleme mit neuen Seiten im Voraus zu vermeiden.)

Wenn das nicht geht, gibt es dann eine schnelle Lösung, die ich auf meinen Foren umsetzen kann?

Firefox (Desktop)

Hier auf meinem Desktop, mit Firefox 75 auf dem Mac … bekomme ich das graue Fehlerfeld.

Safari (Desktop)

Hier auf Safari wird der erste Frame des Videos angezeigt, aber wenn Sie auf die Schaltfläche „Abspielen

iPhone - Safari iOS

Genau wie bei Chrome oder Safari (Desktop)… das Video wird angezeigt, lässt sich aber nicht abspielen.

Discourse unterstützt Facebook-Videos offiziell nicht im Onebox-Format.

Vielleicht möchten Sie sich Folgendes ansehen:

2 „Gefällt mir“

Können wir die Onebox-Ausgabe so ändern, dass kein defekter Player erstellt wird? Ich denke, wir sollten sie so funktionieren lassen wie früher

3 „Gefällt mir“

Ja, das würde ich als kritisch einstufen. Es ist mir nicht wichtig, ob Discourse Facebook-Videos nicht unterstützt. Es ist jedoch ein großes Problem, wenn ein Mitglied einen Link einfügt (was kaum ungewöhnlich ist) und dies eine Fehlermeldung auslöst … und der ursprüngliche Link verschwunden ist. Ich habe derzeit mehrere solche Nachrichten in meinem Forum. Wir Administratoren beheben sie manuell, sobald wir sie bemerken, aber das ist offensichtlich keine gute Lösung.

Ich halte dies für einen schwerwiegenden Fehler, nur weil Facebook (zusammen mit anderen von mir getesteten Videoseiten) extrem populär ist.

Ich würde gerne eine schnelle Lösung finden … lass mich wissen, ob ich helfen kann?

4 „Gefällt mir“

Die schnellste Lösung hier wäre, www.facebook.com zur Einstellung onebox domains blacklist hinzuzufügen. Auf diese Weise versucht Onebox nicht, Videos von facebook.com einzubetten.

3 „Gefällt mir“

Was sich hier geändert hat, ist, dass Facebook die OpenGraph-Metadaten aktualisiert hat, um Video-Links hinzuzufügen, die zu stark eingeschränkt sind:

<meta property="og:video:secure_url" content="https://video.fjai1-2.fna.fbcdn.net/v/t42.9040-2/10000000_626864624535070_4779621138076532736_n.mp4?_nc_cat=107&amp;_nc_sid=985c63&amp;efg=eyJybHIiOjM1MiwicmxhIjoxMzI5LCJ2ZW5jb2RlX3RhZyI6InN2ZV9zZCJ9&amp;_nc_oc=AQkUihmrvyg1wU9qH_NjqkLUzl0XSYJGE6JREtPH7jxKc1aXEIuGLSbauCEPM-hI-DCuJRacr1hCB6HHZre1lxto&amp;rl=352&amp;vabr=196&amp;_nc_ht=video.fjai1-2.fna&amp;oh=3fd1d5e14f27d55bc0d2a91d4714148b&amp;oe=5EA6E533" />

Der obige Video-Link zeigt den Fehler: Bad URL timestamp. :man_facepalming:

Selbst der Link im og:image-Tag zeigt denselben Fehler.

Wir haben keine Informationen, die wir in der Facebook-Onebox anzeigen können, außer dem Videotitel. Ich denke, wir sollten die Onebox so hardcoden, dass sie Facebook-Video-Links ausschließt.

6 „Gefällt mir“

Ausgezeichnet, danke… das ist perfekt.

Übrigens eine Erinnerung daran, dass dies auch bei anderen Seiten als Facebook auftritt; ein Mitglied versuchte, einen Link zu einer Videoseite auf xvideos.com zu posten, was ebenfalls fehlschlug. (NSFW-Warnung! Das ist SEHR WENIG eine Erwachsenenseite!) Ich habe es mit einigen anderen Seiten getestet und dasselbe festgestellt.

1 „Gefällt mir“

Können wir für Facebook das Attribut twitter:player verwenden und dafür ein Iframe einsetzen? Es scheint eine nicht ablaufende URL zu sein:

Screenshot 2020-04-27 at 12.26.42

(Wie ironisch, dass Facebook kaputte OpenGraph-Daten liefert, aber funktionierende Twitter-Daten :joy:)

Alternativ könnten wir dieselbe Logik wie bei Instagram anwenden: Eine große Miniaturansicht mit einer :play_or_pause_button:-Schaltfläche anzeigen, die verlinkt ist.

4 „Gefällt mir“

Ich habe das ausprobiert und dabei defekte Links für die twitter:image- und twitter:player-Tags erhalten. Funktionieren sie bei dir?

1 „Gefällt mir“

In @pnoerics Beispielvideo sehe ich

<meta name="twitter:player" content="https://www.facebook.com/plugins/video.php?height=222&width=400&href=https://www.facebook.com/dccarmen/videos/10222567743521148/">

Das scheint gut zu funktionieren.

Aber wenn du welche findest, die nicht funktionieren, sollten wir das wahrscheinlich vermeiden.

1 „Gefällt mir“

Bei demselben Link sehe ich Folgendes:

https://www.facebook.com/plugins/video.php?height=222&amp;width=400&amp;href=https://www.facebook.com/dccarmen/videos/10222567743521148/

Beachten Sie das &amp;, das die URL unterbricht. Wenn man es durch & ersetzt, funktioniert es. Also können wir einen Workaround finden.

twitter:image-Links sind weiterhin defekt (hier ein Beispiel).

Wir haben also zwei Möglichkeiten:

  1. twitter:player-Links verwenden, um Facebook-Videos einzubetten
  2. Facebook-Videos in der Onebox auf die schwarze Liste setzen und sie als normale Links anzeigen

Welche bevorzugen Sie, @codinghorror?

3 „Gefällt mir“

Wir können das versuchen, aber sind wir sicher, dass die Links nicht ablaufen?

Ich glaube nicht, dass der Link abläuft, da die URL im Grunde auf ein Facebook-Plugin verweist, das ein Video einbettet, unabhängig davon, welchen Videolink wir im href-Parameter übergeben.

https://www.facebook.com/plugins/video.php?height=222&width=400&href=https://www.facebook.com/dccarmen/videos/10222567743521148/

Daher können wir ein iframe verwenden, um das Facebook-Video einzubetten.

1 „Gefällt mir“

Nein, die Korrektur ist spezifisch für Facebook.

Beachten Sie, dass ein fehlerhaftes Video-Onebox normalerweise darauf hinweist, dass der Fehler auf der Seite liegt, die Sie einbetten möchten. Im Fall von Facebook war es Facebook, das zu restriktiv war und die Videowiedergabe nur für eine bestimmte Zeitspanne zuließ.

Wir umgehen diese Fehler in der Regel nur bei sehr beliebten Seiten (Beispiel: Instagram), damit die breitere Gemeinschaft davon profitieren kann. Wenn die Seite nicht beliebt ist und Sie sie auf Ihrer eigenen Seite einbetten möchten, ist der empfohlene Weg, ein benutzerdefiniertes Plugin zu erstellen, das eine benutzerdefinierte Onebox-Engine für diese Seite hinzufügt.

2 „Gefällt mir“

Ok.

Hmm. Gibt es eine Möglichkeit, Domains zu whitelisten, die Onebox versuchen wird einzubetten? Falls nicht, scheint sich folgende Situation zu ergeben:

  1. Ich betreibe ein Community-Forum, in dem Mitglieder gerne Links zu Seiten mit Videos teilen. (Das könnten natürlich beliebige Seiten sein – wir wissen es im Moment nicht.)

  2. Wenn eine Seite einen Fehler in ihrem Code hat, der das Einbetten verhindert, verzerrt Discourse das Embed (hässlich) und entfernt im schlimmsten Fall sogar die ursprüngliche URL, sodass andere nicht mehr sehen können, was der ursprüngliche Poster teilen wollte.

Sollte Schritt 2 nicht vielmehr lauten: „Wenn eine Seite einen Fehler in ihrem Code hat, der das Einbetten verhindert, stellt Discourse den Versuch des Einbettens ein und lässt stattdessen den Link einfach durch?

Du kannst es definitiv beheben – schließe einfach die Domains, bei denen du Probleme feststellst, auf einer Blacklist. Das ist keine Unmöglichkeit.

2 „Gefällt mir“

Ok, das ist in Ordnung. Ich habe kein gutes Gefühl dafür, wie groß das Problem ist; die manuelle Bearbeitung ist eine hervorragende Lösung, wenn es nicht viele Domains mit diesem Problem gibt.

Ich bin immer noch der Meinung, dass Discourse fehlerhafte externe Daten auf eine elegantere Weise behandeln sollte als nur „eine riesige Fehlermeldung erstellen und den wichtigsten Inhalt aus dem Beitrag des OPs entfernen

2 „Gefällt mir“