Video

Video embed. Supports YouTube, Vimeo, Dailymotion, Wistia, Facebook, Twitch, direct URL, and R2-hosted media.

Video embed. Supports YouTube, Vimeo, Dailymotion, Wistia, Facebook, Twitch, direct URL, and R2-hosted media.

Key files

Props

PropDefaultNotes
provider"youtube"youtube / vimeo / dailymotion / wistia / facebook / twitch / url / r2.
videoIdRequired. Video ID for known providers, full URL for facebook/url, mediaId for r2.
titleFor accessibility.
className, rootStandard.

R2 hosting

  • provider: "r2" swaps to <MediaInput kindFilter="video"> in the toolbar. videoId becomes a media library ID; getMediaContent resolves the delivery URL.
  • Renders as <video controls playsInline> with the R2 delivery URL.
  • See .claude/rules/media-uploads.md for upload pipeline.

Gotchas

  • Cross-provider videoId is invalid — a guard effect in VideoMainTab clears videoId when provider crosses the r2 boundary, since R2 mediaIds and remote provider IDs are mutually incompatible.
  • For autoplay, pair with muted: true.

Related