import styles from './embed.module.css'; interface EmbedProps { url: string; } const Embed = ({ url }: EmbedProps) => { const parsedUrl = new URL(url); if (youtubeHosts.has(parsedUrl.host) || (parsedUrl.host.startsWith('yt.') && parsedUrl.searchParams.has('v'))) { return ; } if (xHosts.has(parsedUrl.host)) { return ; } if (redditHosts.has(parsedUrl.host)) { return ; } if (twitchHosts.has(parsedUrl.host)) { return ; } if (tiktokHosts.has(parsedUrl.host)) { return ; } if (instagramHosts.has(parsedUrl.host)) { return ; } if (odyseeHosts.has(parsedUrl.host)) { return ; } if (bitchuteHosts.has(parsedUrl.host)) { return ; } if (streamableHosts.has(parsedUrl.host)) { return ; } if (spotifyHosts.has(parsedUrl.host)) { return ; } if (soundcloudHosts.has(parsedUrl.host)) { return ; } }; interface EmbedComponentProps { parsedUrl: URL; } const youtubeHosts = new Set([ 'youtube.com', 'www.youtube.com', 'youtu.be', 'www.youtu.be', 'm.youtube.com', 'music.youtube.com', // working Invidious instances - https://docs.invidious.io/instances/ - https://uptime.invidious.io/ 'yewtu.be', 'inv.nadeko.net', 'yt.artemislena.eu', 'invidious.nerdvpn.de', ]); const YoutubeEmbed = ({ parsedUrl }: EmbedComponentProps) => { let embedSrc = ''; const isInvidious = parsedUrl.host !== 'youtube.com' && parsedUrl.host !== 'www.youtube.com' && parsedUrl.host !== 'youtu.be' && parsedUrl.host !== 'www.youtu.be'; if (parsedUrl.searchParams.has('list')) { const playlistId = parsedUrl.searchParams.get('list'); embedSrc = `https://www.youtube.com/embed/videoseries?list=${playlistId}`; } else { let videoId = parsedUrl.searchParams.get('v'); 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'); } else { videoId = parsedUrl.pathname.split('/').pop() || null; } } } if (videoId) { embedSrc = `https://www.youtube.com/embed/${videoId}`; } } if (embedSrc) { return (