--- title: Video description: |- The `Video` component renders a video for the Storefront API's [Video object](https://shopify.dev/api/storefront/reference/products/video). The component outputs a `video` element. You can [customize this component](https://shopify.dev/api/hydrogen/components#customizing-hydrogen-components) using passthrough props. api_version: 2026-01 api_name: hydrogen-react source_url: html: https://shopify.dev/docs/api/hydrogen-react/latest/components/video md: https://shopify.dev/docs/api/hydrogen-react/latest/components/video.md --- # Video The `Video` component renders a video for the Storefront API's [Video object](https://shopify.dev/api/storefront/reference/products/video). The component outputs a `video` element. You can [customize this component](https://shopify.dev/api/hydrogen/components#customizing-hydrogen-components) using passthrough props. ## Props * **data** **PartialDeep\** **required** An object with fields that correspond to the Storefront API's [Video object](https://shopify.dev/api/storefront/2026-01/objects/video). * **previewImageOptions** **LoaderParams** An object of image size options for the video's `previewImage`. Uses `shopifyImageLoader` to generate the `poster` URL. * **sourceProps** **HTMLAttributes\ & { 'data-testid'?: string; }** Props that will be passed to the `video` element's `source` children elements. ### LoaderParams * crop The URL param that controls the cropping region ```ts Crop ``` * height The URL param that controls height ```ts number ``` * src The base URL of the image ```ts string ``` * width The URL param that controls width ```ts number ``` ### Crop ```ts 'center' | 'top' | 'bottom' | 'left' | 'right' ``` Examples ### Examples * #### Example code ##### Description I am the default example ##### JavaScript ```jsx import {Video} from '@shopify/hydrogen-react'; export default function MyProductVideo({products}) { const firstMediaElement = products.edges[0].node.media.edges[0].node; if (firstMediaElement.__typename === 'Video') { return