From 306e7b081ff72a2acfbe629e1f7ebc0f7ba432de Mon Sep 17 00:00:00 2001 From: "Tom (plebeius.eth)" Date: Thu, 27 Feb 2025 12:26:38 +0100 Subject: [PATCH] feat(embeds): add support to youtube shorts --- src/components/embed/embed.tsx | 2 ++ src/lib/utils/media-utils.ts | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/components/embed/embed.tsx b/src/components/embed/embed.tsx index 43f49228..e979ae0f 100644 --- a/src/components/embed/embed.tsx +++ b/src/components/embed/embed.tsx @@ -74,6 +74,8 @@ const YoutubeEmbed = ({ parsedUrl }: EmbedComponentProps) => { if (!videoId) { if (parsedUrl.host.includes('youtu.be')) { videoId = parsedUrl.pathname.substring(1); + } else if (parsedUrl.pathname.includes('/shorts/')) { + videoId = parsedUrl.pathname.split('/shorts/')[1]; } else if (isInvidious) { if (parsedUrl.pathname.startsWith('/watch')) { videoId = parsedUrl.searchParams.get('v'); diff --git a/src/lib/utils/media-utils.ts b/src/lib/utils/media-utils.ts index 0acafe0b..f6cfdfb3 100644 --- a/src/lib/utils/media-utils.ts +++ b/src/lib/utils/media-utils.ts @@ -52,6 +52,8 @@ export const getHasThumbnail = (commentMediaInfo: CommentMediaInfo | undefined, const getYouTubeVideoId = (url: URL): string | null => { if (url.host.includes('youtu.be')) { return url.pathname.slice(1); + } else if (url.pathname.includes('/shorts/')) { + return url.pathname.split('/shorts/')[1].split('/')[0]; } else if (url.searchParams.has('v')) { return url.searchParams.get('v'); }