Reguläre YouTube-Videoeinbettungen funktionieren.
Ich habe dieses Problem nicht auf try.discourse oder meta.
Ich vermute, es liegt an einer nicht richtig konfigurierten Website-Einstellung.
Youtube Oneboxing ist etwas, das wir speziell entwickelt haben. Jemand muss einen pr-welcome für die Shorts-Kompatibilität einreichen. In der Zwischenzeit können Sie immer die manuelle iframe-URL zu den allowed iframes Site-Einstellungen hinzufügen:
Könnten Sie mir bitte sagen, welche URL ich zu den erlaubten iframes hinzufügen soll, damit das Video so angezeigt wird, wie Sie es getan haben? Es würde vorerst perfekt funktionieren, auch wenn es tatsächlich hoch ist.
Was die Videohöhe betrifft, ist es möglich, sie durch Festlegen einer max-height mit CSS auf dem iframe zu reduzieren. Das Problem ist, dass der iframe kein Attribut irgendeiner Art hat, das angibt, dass es sich um ein kurzes (vertikales) Video handelt.
Wenn ich in meinen Beitrag schreibe https://www.youtube.com/shorts/SWeTMdyv50Q, funktioniert es nicht.
Wenn ich schreibe <iframe>https://www.youtube.com/shorts/SWeTMdyv50Q</iframe>, funktioniert es nicht.
Wenn ich schreibe https://www.youtube.com/embed/SWeTMdyv50Q, funktioniert es, zeigt aber das kurze Video mit dem Standard-Seitenverhältnis von YouTube-Videos an (was für mich in Ordnung ist, obwohl ich es vorziehen würde, ein anderes Seitenverhältnis zu haben und nicht manuell „embed“ in die URL schreiben zu müssen):
Klicken Sie mit der rechten Maustaste auf ein Shorts-Video und wählen Sie „Einbettungscode kopieren“. Das meinte ich mit „manueller Einbettungscode“, Entschuldigung, dass ich mich nicht klar ausgedrückt habe.
Außerdem funktioniert der Ersatz von /shorts/ durch watch?v=, die Standard-URL eines YouTube-Videos.
Wenn Sie also auf YouTube unter \u003chttps://www.youtube.com/shorts/SWeTMdyv50Q\u003e mit der rechten Maustaste klicken -\u003e Videolink kopieren wählen, funktioniert dies, da es https://youtu.be/SWeTMdyv50Q zurückgibt, was auf Discourse korrekt angezeigt wird (allerdings mit dem normalen breiten Verhältnis).
Ich habe es zwar geschafft, aber ich habe meinen Pull Request vielleicht ein wenig vermasselt, weil ich aus irgendeinem Grund noch nicht an GitHub gewöhnt bin… Ich muss wirklich das Handbuch lesen (und, sagt mir ein Freund, Zweige von meiner Discourse-Fork erstellen…).
Nur zur Information, ich habe gerade die Datei lib\\onebox\\engine\\youtube_onebox.rb bearbeitet, um Folgendes hinzuzufügen:
# https://www.youtube.com/shorts/wi2jAtpBl0Y
if uri.path["/shorts/"]
id ||= uri.path[/\\/shorts\\/([\\w\\-]+)/, 1]
end
Normalerweise kopieren und fügen Leute ihre YouTube-Links aus ihrer Adressleiste ein.
Jetzt hat YouTube neue /shorts/-URLs. Leute werden diese /shorts/-Links kopieren und einfügen, und sie werden noch nicht vom YouTube-Oneboxing unterstützt.
/embed/-Links werden unterstützt, aber sie erfordern, dass der Benutzer tatsächlich auf YouTube nach der Einbettungs-URL sucht, was so gut wie niemand tut
Ich frage mich nur, ob es einfacher wäre, diese URL zu ändern? Denn youtube.com/shorts/etwas ist genau dasselbe wie youtube.com/embed/etwas, und mit /embed/ funktioniert Oneboxing/Embedding hier einwandfrei.
Ich folge dir immer noch nicht. Wer würde die URL ändern? Der Poster? Aber der Poster möchte nicht manuell einen Teil einer URL umschreiben (er würde nicht einmal wissen, warum das Video nicht eingebettet wird), er möchte nur kopieren und einfügen, und zack, es funktioniert.
Bearbeiten: Oder meinst du, dass der Oneboxing-Code von Discourse /shorts/ durch /embed/ ersetzen würde?
Ja, vielleicht! Ich bin nicht gerade ein Code-Zauberer
Ja, ich habe nur Schwierigkeiten mit der Ruby-Testdatei. Sie funktioniert nicht und ich weiß nicht warum. Ich habe noch nie Unit-Tests verwendet/erstellt, also…
Ich habe versucht, dies am Ende der Datei hinzuzufügen:
it \"kann YouTube Shorts-Ergebnisse parsen\" do
preview = expect(Onebox.preview('https://www.youtube.com/watch?v=wi2jAtpBl0Y').placeholder_html)
preview.to match(/reacts/)
preview.to match(/hqdefault/)
end