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'); }