Add og:video meta tags for video post embeds

When a post contains a video embed, include og:video, og:video:secure_url,
og:video:type (application/vnd.apple.mpegurl), and og:video:width/height
meta tags alongside the existing og:image thumbnail. Also sets the Twitter
card type to "player" for video posts instead of "summary_large_image".

Handles both standalone video embeds and record-with-media video embeds.

https://claude.ai/code/session_01H7uYXdTD17cQcfYPHhoWSr
This commit is contained in:
Claude
2026-02-20 13:18:01 +00:00
parent 80c0aa35e2
commit 4bf8fc8d85
2 changed files with 21 additions and 0 deletions
+10
View File
@@ -589,6 +589,11 @@ func (srv *Server) WebPost(c echo.Context) error {
if postView.Embed.EmbedVideo_View.Thumbnail != nil { if postView.Embed.EmbedVideo_View.Thumbnail != nil {
data["imgThumbUrls"] = []string{*postView.Embed.EmbedVideo_View.Thumbnail} data["imgThumbUrls"] = []string{*postView.Embed.EmbedVideo_View.Thumbnail}
} }
data["videoPlaylistUrl"] = postView.Embed.EmbedVideo_View.Playlist
if postView.Embed.EmbedVideo_View.AspectRatio != nil {
data["videoWidth"] = postView.Embed.EmbedVideo_View.AspectRatio.Width
data["videoHeight"] = postView.Embed.EmbedVideo_View.AspectRatio.Height
}
} else if hasMediaImages { } else if hasMediaImages {
var thumbUrls []string var thumbUrls []string
for i := range postView.Embed.EmbedRecordWithMedia_View.Media.EmbedImages_View.Images { for i := range postView.Embed.EmbedRecordWithMedia_View.Media.EmbedImages_View.Images {
@@ -599,6 +604,11 @@ func (srv *Server) WebPost(c echo.Context) error {
if postView.Embed.EmbedRecordWithMedia_View.Media.EmbedVideo_View.Thumbnail != nil { if postView.Embed.EmbedRecordWithMedia_View.Media.EmbedVideo_View.Thumbnail != nil {
data["imgThumbUrls"] = []string{*postView.Embed.EmbedRecordWithMedia_View.Media.EmbedVideo_View.Thumbnail} data["imgThumbUrls"] = []string{*postView.Embed.EmbedRecordWithMedia_View.Media.EmbedVideo_View.Thumbnail}
} }
data["videoPlaylistUrl"] = postView.Embed.EmbedRecordWithMedia_View.Media.EmbedVideo_View.Playlist
if postView.Embed.EmbedRecordWithMedia_View.Media.EmbedVideo_View.AspectRatio != nil {
data["videoWidth"] = postView.Embed.EmbedRecordWithMedia_View.Media.EmbedVideo_View.AspectRatio.Width
data["videoHeight"] = postView.Embed.EmbedRecordWithMedia_View.Media.EmbedVideo_View.AspectRatio.Height
}
} }
} }
+11
View File
@@ -33,7 +33,18 @@
<meta property="og:image" content="{{ imgThumbUrl }}"> <meta property="og:image" content="{{ imgThumbUrl }}">
<meta property="twitter:image" content="{{ imgThumbUrl }}"> <meta property="twitter:image" content="{{ imgThumbUrl }}">
{% endfor %} {% endfor %}
{%- if videoPlaylistUrl %}
<meta property="og:video" content="{{ videoPlaylistUrl }}">
<meta property="og:video:secure_url" content="{{ videoPlaylistUrl }}">
<meta property="og:video:type" content="application/vnd.apple.mpegurl">
{%- if videoWidth %}
<meta property="og:video:width" content="{{ videoWidth }}">
<meta property="og:video:height" content="{{ videoHeight }}">
{% endif -%}
<meta name="twitter:card" content="player">
{% else %}
<meta name="twitter:card" content="summary_large_image"> <meta name="twitter:card" content="summary_large_image">
{% endif -%}
{% else %} {% else %}
<meta property="og:image" content="{{ postView.Author.Avatar }}"> <meta property="og:image" content="{{ postView.Author.Avatar }}">
<meta property="twitter:image" content="{{ postView.Author.Avatar }}"> <meta property="twitter:image" content="{{ postView.Author.Avatar }}">