import { useMemo } from 'react'
import ExternalLink from '../ExternalLink'
import Player from './Player'
export default function YoutubeEmbeddedPlayer({
url,
className
}: {
url: string
className?: string
mustLoad?: boolean // kept for API compatibility, now ignored
}) {
const { videoId, isShort } = useMemo(() => parseYoutubeUrl(url), [url])
if (!videoId) {
return
}
return
}
function parseYoutubeUrl(url: string) {
const patterns = [
/(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/)([^&\n?#]+)/,
/youtube\.com\/watch\?.*v=([^&\n?#]+)/,
/youtube\.com\/shorts\/([^&\n?#]+)/,
/youtube\.com\/live\/([^&\n?#]+)/
]
let videoId: string | null = null
let isShort = false
for (const [index, pattern] of patterns.entries()) {
const match = url.match(pattern)
if (match) {
videoId = match[1].trim()
isShort = index === 2 // Check if it's a short video
break
}
}
return { videoId, isShort }
}