web_video Shortcode

The web_video shortcode renders the video component.

The attributes below match the current Page Builder controls and public output. Use raw syntax only for reviewed content that cannot be maintained through the visual controls.

Usage

[web_video]

For a silent product-feature loop that starts when at least half of the video enters the viewport and keeps the source video's dimensions:

[web_video video_type="self-hosted" video_mp4_url="https://example.com/feature.mp4" video_autoplay_viewport="yes" video_loop="yes" video_controls="" video_aspect_ratio="original"]

Browser autoplay policies require autoplaying videos to be muted. The shortcode does this automatically for immediate, viewport, first-interaction, and hover autoplay. Leave Fullscreen play toggle disabled when the video should render inside the page.

Attributes

Attribute Default Accepted values Purpose
video_type youtube, vimeo, self-hosted Choose the video source.
video_youtube_url String unless stated otherwise Add YouTube link. Example: https://www.youtube.com/watch?v=##########. Available when video_type is youtube.
video_vimeo_url String unless stated otherwise Add Vimeo link. Example: https://vimeo.com/##########. Available when video_type is vimeo.
video_mp4_url HTTPS video URL or a Pomatio Video Hosting logical URL Add an MP4 link or paste Logical video URL from Media → Videos → Details. Both are treated as self-hosted sources. Available when video_type is self-hosted.
video_webm_url String unless stated otherwise Add video link. Example: https://your-domain.com/##########.webm. Available when video_type is self-hosted.
video_ogv_url String unless stated otherwise Add video link. Example: https://your-domain.com/##########.ogv. Available when video_type is self-hosted.
video_thumbnail String unless stated otherwise Select the image to be displayed as a thumbnail.
video_autoplay yes Start muted playback automatically. With a poster, the poster remains visible until playback actually starts.
video_start_after_interaction yes Creates and starts the muted player after the first pointer movement or action, touch, key press, wheel movement, or scroll. Videos using the fullscreen play toggle still wait for their own button click.
video_autoplay_viewport yes Start muted playback when at least half of the video enters the viewport.
video_autoplay_hover yes Start playing video when hovering with the mouse.
video_loop yes Play the video in an infinite loop.
video_controls yes yes Show video controls. Leave empty to hide every control, including for decorative autoplay loops.
video_control_volume yes yes Show the custom player's volume control.
video_control_time yes yes Show the custom player's current time and duration.
video_control_progress yes yes Show the custom player's progress bar.
video_control_subtitles yes yes Show the custom player's subtitles control when tracks are available.
video_control_quality yes yes Show the custom player's adaptive-quality selector when multiple renditions are available.
video_control_speed yes yes Show the custom player's playback-speed menu.
video_control_pip yes yes Show the custom player's Picture in Picture control when the browser supports it.
video_control_fullscreen yes yes Show the custom player's fullscreen control.
video_play_toggle_button yes Display only a play button and open the video in a modal when the visitor selects it.
video_play_toggle_button_style big_play big_play, 1, or a configured button-style slug Chooses the large play control or a button style defined in the POM design system. Available when video_play_toggle_button is yes.
video_play_toggle_button_text Watch video String unless stated otherwise Controls the text on the button. Available when video_play_toggle_button_style is 1.
video_play_toggle_button_aria_label Visible button text or Watch video Text Sets the accessible name of the fullscreen video link. When empty, a visible button uses its text and the large play control uses Watch video. Available when video_play_toggle_button is yes.
video_play_toggle_button_icon String unless stated otherwise Select the icon to be displayed within the button. Available when video_play_toggle_button_style is 1.
video_aspect_ratio horizontal horizontal, vertical, square, original, custom Uses 16:9, 9:16, 1:1, the dimensions reported by the source video, or a custom ratio. Existing shortcodes remain 16:9 by default. YouTube and Vimeo fall back to 16:9 when the provider does not expose intrinsic dimensions.
video_aspect_ratio_width 16 Positive number up to 10000 Width part of the ratio when video_aspect_ratio is custom, for example 4.
video_aspect_ratio_height 9 Positive number up to 10000 Height part of the ratio when video_aspect_ratio is custom, for example 3.
device_visibility String unless stated otherwise Applies the selected responsive visibility rule.
el_class String unless stated otherwise If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.

Customize the stylesheet

Go to Settings → POM Theme → Advanced → Custom CSS, expand Shortcode CSS assets, and open Video. The comparison shows the readable CSS generated by the current theme beside the editable source. Saving creates an optimized per-site replacement for the existing web-video stylesheet; reverting restores the current video.min.css asset.

The replacement changes CSS only. It does not change web_video, provider and source resolution, inline or fullscreen markup, playback, controls, autoplay modes, looping, aspect ratios, posters, buttons, accessibility labels, or request conditions. The existing web_video and web-jarallax-video scripts, their dependencies, VideoWorker behavior, modal fullscreen, and custom-player assets remain unchanged. Pages without Video content continue loading none of these module assets.

Verification

Check web_video with the intended media, an appropriate responsive size and any required alternative text or transcript. For an inline product-feature video, disable controls, enable the intended autoplay mode and loop, and verify its size before and after metadata loads. Test Original video ratio with a non-16:9 self-hosted source and Custom with both width and height values. When using the fullscreen play toggle, inspect the link and confirm that its aria-label describes the video action.

After editing the stylesheet, verify that inline playback and pause still work, open and close the fullscreen presentation with its button and Escape, and confirm that the configured scripts remain unchanged. A page without web_video must load neither the Video stylesheet nor its module and Jarallax Video scripts.

Choose the self-hosted player globally under Settings → POM Theme → Design system → Components → Video player. Default player preserves the existing theme player for direct media and Pomatio Video Hosting logical URLs. Custom player (Video.js 10) can use the standard Video.js skin or the theme's custom skin. The custom skin applies the global controls and accent colors to icons, labels, progress, and selected states. Its optional background color is empty by default and, when set, fills the complete control bar and its menus. Those color fields are hidden while the default skin is selected. Both Video.js skins enable the individual control choices above; those granular control fields are hidden from the Page Builder component while the default player is selected. The custom player entry is loaded only on pages that render a custom player, a hosted-video post, or a hosted playlist. Its HLS runtime is requested separately only when adaptive HLS playback is required; direct MP4, WebM, and OGV sources do not download that larger runtime. New hosted generations always include the standard progressive rendition independently from Scroll. If an older hosted logical URL has not yet completed that backfill, the shortcode temporarily uses its private HLS transport so the video remains playable instead of sending an unavailable URL to the legacy player.

For a Pomatio Video Hosting logical URL, confirm that playback works with the selected global player and that no permanent CloudFront or storage URL appears in the saved shortcode. The rendered page remains eligible for full-page caching because it contains only the stable logical asset identity; Pomatio Video Hosting checks current access and supplies short-lived delivery credentials when playback starts. With the custom player, also verify seeking, adaptive quality when several renditions are available, the configured controls, fullscreen entry and exit, and a compact thumbnail preview while pointing at the timeline. Fullscreen keeps the complete player container and its configured skin; browsers without container fullscreen use their native video presentation. Hosted HLS begins in Auto quality, caps the rendition to the physical player width including the screen pixel ratio, and reduces quality when measured bandwidth cannot sustain it. For looped HLS playback, the player preserves reusable back-buffer segments across quality changes when the browser permits it, reducing avoidable repeat downloads without guaranteeing that the browser will retain every segment. Autoplay, viewport autoplay, hover autoplay, looping, first-interaction loading, the poster, and the fullscreen play toggle keep their shortcode-level behavior. When any autoplay mode and a poster are enabled, the poster is the only visible player content until playback starts; the player does not display a loading message or spinner over it.