How to make video autoplay and loop without play button in custom section (Sense theme)

Hello Shopify Community,

I created a new custom section on my product page using a video-text code snippet I found online. The section looks great in terms of layout and design, and I successfully added it to the product page:
https://kyotsu.ch/products/chefmesser (see the “Unboxing” section)

However, the video does not behave as I want it to. Currently, it requires clicking a play button to start, and it opens fullscreen on play. I would like the video to:

  • autoplay as soon as the page/section loads,

  • loop continuously without stopping,

  • play inline on the page (no fullscreen or popup),

  • and have no visible play button or require any click to start.

I am using the Sense theme. Could someone please help me adjust the code so that the video plays automatically on loop without user interaction?

Thank you very much in advance for your support!

Best regards,
Tobias

Code:

{{ ‘component-image-with-text.css’ | asset_url | stylesheet_tag }}

{%- style -%}
.section-{{ section.id }}-padding {
padding-top: {{ section.settings.padding_top | times: 0.75 | round: 0 }}px;
padding-bottom: {{ section.settings.padding_bottom | times: 0.75 | round: 0 }}px;
}

@media screen and (min-width: 750px) {
.section-{{ section.id }}-padding {
padding-top: {{ section.settings.padding_top }}px;
padding-bottom: {{ section.settings.padding_bottom }}px;
}
}
{%- endstyle -%}

{%- liquid
assign fetch_priority = ‘auto’
if section.index == 1
assign fetch_priority = ‘high’
endif
if section.settings.color_scheme == section.settings.section_color_scheme and section.settings.content_layout == ‘no-overlap’
assign remove_color_classes = true
endif
-%}
{%- liquid
assign video_id = section.settings.video.id | default: section.settings.video_url.id
assign video_alt = section.settings.video.alt | default: section.settings.description
assign alt = ‘sections.video.load_video’ | t: description: video_alt | escape
assign poster = section.settings.video.preview_image | default: section.settings.cover_image

if section.settings.video != null
assign ratio_diff = section.settings.video.aspect_ratio | minus: poster.aspect_ratio | abs
if ratio_diff < 0.01 and ratio_diff > 0
assign fix_ratio = true
endif
endif
-%}

{%- if poster != null -%} {{ poster | image_url: width: 3840 | image_tag: sizes: sizes, widths: '375, 750, 1100, 1500, 1780, 2000, 3000, 3840', alt: alt }} {%- else -%} {{ 'hero-apparel-3' | placeholder_svg_tag: 'placeholder-svg placeholder' }} {%- endif -%} {{- 'icon-play.svg' | inline_asset_content -}} {%- if section.settings.video_url != blank -%} {%- assign loop = '' -%} {%- if section.settings.enable_video_looping -%} {%- assign loop = '&loop=1&playlist=' | append: video_id -%} {%- endif -%}

{%- if section.settings.video_url contains ‘youtube’ -%}

{%- elsif section.settings.video_url contains 'vimeo' -%}

{%- endif -%}
{%- else -%}

{{
section.settings.video
| video_tag:
image_size: ‘1100x’,
autoplay: true,
loop: section.settings.enable_video_looping,
controls: true,
muted: false
}}
{%- endif -%}

{%- for block in section.blocks -%} {% case block.type %} {%- when 'heading' -%}

{{ block.settings.heading }}

{%- when 'caption' -%}

{{ block.settings.caption | escape }}

{%- when 'text' -%}
{{ block.settings.text }}
{%- when 'button' -%} {%- if block.settings.button_label != blank -%} {{ block.settings.button_label | escape }} {%- endif -%} {%- endcase -%} {%- endfor -%}

{% schema %}
{
“name”: “Image With Video”,
“class”: “section”,
“disabled_on”: {
“groups”: [“header”, “footer”]
},
“settings”: [

{
“type”: “video_url”,
“id”: “video_url”,
“accept”: [“youtube”, “vimeo”],
“default”: “https://www.youtube.com/watch?v=_9VUPq3SxOc”,
“label”: “t:sections.video.settings.video_url.label”,
“info”: “t:sections.video.settings.video_url.info”
},
{
“type”: “video”,
“id”: “video”,
“label”: “t:sections.video.settings.video.label”
},
{
“type”: “image_picker”,
“id”: “cover_image”,
“label”: “t:sections.video.settings.cover_image.label”
},
{
“type”: “select”,
“id”: “height”,
“options”: [
{
“value”: “adapt”,
“label”: “t:sections.image-with-text.settings.height.options__1.label”
},
{
“value”: “small”,
“label”: “t:sections.image-with-text.settings.height.options__2.label”
},
{
“value”: “medium”,
“label”: “t:sections.image-with-text.settings.height.options__3.label”
},
{
“value”: “large”,
“label”: “t:sections.image-with-text.settings.height.options__4.label”
}
],
“default”: “adapt”,
“label”: “t:sections.image-with-text.settings.height.label”
},
{
“type”: “select”,
“id”: “desktop_image_width”,
“options”: [
{
“value”: “small”,
“label”: “t:sections.image-with-text.settings.desktop_image_width.options__1.label”
},
{
“value”: “medium”,
“label”: “t:sections.image-with-text.settings.desktop_image_width.options__2.label”
},
{
“value”: “large”,
“label”: “t:sections.image-with-text.settings.desktop_image_width.options__3.label”
}
],
“default”: “medium”,
“label”: “t:sections.image-with-text.settings.desktop_image_width.label”
},
{
“type”: “select”,
“id”: “layout”,
“options”: [
{
“value”: “image_first”,
“label”: “t:sections.image-with-text.settings.layout.options__1.label”
},
{
“value”: “text_first”,
“label”: “t:sections.image-with-text.settings.layout.options__2.label”
}
],
“default”: “image_first”,
“label”: “t:sections.image-with-text.settings.layout.label”
},
{
“type”: “select”,
“id”: “image_behavior”,
“options”: [
{
“value”: “none”,
“label”: “t:sections.all.animation.image_behavior.options__1.label”
},
{
“value”: “ambient”,
“label”: “t:sections.all.animation.image_behavior.options__2.label”
},
{
“value”: “zoom-in”,
“label”: “t:sections.all.animation.image_behavior.options__4.label”
}
],
“default”: “none”,
“label”: “t:sections.all.animation.image_behavior.label”
},
{
“type”: “header”,
“content”: “t:sections.image-with-text.settings.header.content”
},
{
“type”: “select”,
“id”: “content_layout”,
“options”: [
{
“value”: “no-overlap”,
“label”: “t:sections.image-with-text.settings.content_layout.options__1.label”
},
{
“value”: “overlap”,
“label”: “t:sections.image-with-text.settings.content_layout.options__2.label”
}
],
“default”: “no-overlap”,
“label”: “t:sections.image-with-text.settings.content_layout.label”
},
{
“type”: “select”,
“id”: “desktop_content_position”,
“options”: [
{
“value”: “top”,
“label”: “t:sections.image-with-text.settings.desktop_content_position.options__1.label”
},
{
“value”: “middle”,
“label”: “t:sections.image-with-text.settings.desktop_content_position.options__2.label”
},
{
“value”: “bottom”,
“label”: “t:sections.image-with-text.settings.desktop_content_position.options__3.label”
}
],
“default”: “top”,
“label”: “t:sections.image-with-text.settings.desktop_content_position.label”
},
{
“type”: “select”,
“id”: “desktop_content_alignment”,
“options”: [
{
“value”: “left”,
“label”: “t:sections.image-with-text.settings.desktop_content_alignment.options__1.label”
},
{
“value”: “center”,
“label”: “t:sections.image-with-text.settings.desktop_content_alignment.options__2.label”
},
{
“value”: “right”,
“label”: “t:sections.image-with-text.settings.desktop_content_alignment.options__3.label”
}
],
“default”: “left”,
“label”: “t:sections.image-with-text.settings.desktop_content_alignment.label”
},
{
“type”: “select”,
“id”: “mobile_content_alignment”,
“options”: [
{
“value”: “left”,
“label”: “t:sections.image-with-text.settings.mobile_content_alignment.options__1.label”
},
{
“value”: “center”,
“label”: “t:sections.image-with-text.settings.mobile_content_alignment.options__2.label”
},
{
“value”: “right”,
“label”: “t:sections.image-with-text.settings.mobile_content_alignment.options__3.label”
}
],
“default”: “left”,
“label”: “t:sections.image-with-text.settings.mobile_content_alignment.label”
},
{
“type”: “header”,
“content”: “t:sections.image-with-text.settings.header_colors.content”
},
{
“type”: “color_scheme”,
“id”: “section_color_scheme”,
“label”: “t:sections.all.colors.label”,
“default”: “scheme-1”
},
{
“type”: “color_scheme”,
“id”: “color_scheme”,
“label”: “t:sections.multirow.settings.container_color_scheme.label”,
“default”: “scheme-1”
},
{
“type”: “header”,
“content”: “t:sections.all.padding.section_padding_heading”
},
{
“type”: “range”,
“id”: “padding_top”,
“min”: 0,
“max”: 100,
“step”: 4,
“unit”: “px”,
“label”: “t:sections.all.padding.padding_top”,
“default”: 36
},
{
“type”: “range”,
“id”: “padding_bottom”,
“min”: 0,
“max”: 100,
“step”: 4,
“unit”: “px”,
“label”: “t:sections.all.padding.padding_bottom”,
“default”: 36
}
],
“blocks”: [
{
“type”: “heading”,
“name”: “t:sections.image-with-text.blocks.heading.name”,
“limit”: 1,
“settings”: [
{
“type”: “inline_richtext”,
“id”: “heading”,
“default”: “t:sections.image-with-text.blocks.heading.settings.heading.default”,
“label”: “t:sections.image-with-text.blocks.heading.settings.heading.label”
},
{
“type”: “select”,
“id”: “heading_size”,
“options”: [
{
“value”: “h2”,
“label”: “t:sections.all.heading_size.options__1.label”
},
{
“value”: “h1”,
“label”: “t:sections.all.heading_size.options__2.label”
},
{
“value”: “h0”,
“label”: “t:sections.all.heading_size.options__3.label”
},
{
“value”: “hxl”,
“label”: “t:sections.all.heading_size.options__4.label”
},
{
“value”: “hxxl”,
“label”: “t:sections.all.heading_size.options__5.label”
}
],
“default”: “h1”,
“label”: “t:sections.all.heading_size.label”
}
]
},
{
“type”: “caption”,
“name”: “t:sections.image-with-text.blocks.caption.name”,
“limit”: 1,
“settings”: [
{
“type”: “text”,
“id”: “caption”,
“default”: “t:sections.image-with-text.blocks.caption.settings.text.default”,
“label”: “t:sections.image-with-text.blocks.caption.settings.text.label”
},
{
“type”: “select”,
“id”: “text_style”,
“options”: [
{
“value”: “subtitle”,
“label”: “t:sections.image-with-text.blocks.caption.settings.text_style.options__1.label”
},
{
“value”: “caption-with-letter-spacing”,
“label”: “t:sections.image-with-text.blocks.caption.settings.text_style.options__2.label”
}
],
“default”: “caption-with-letter-spacing”,
“label”: “t:sections.image-with-text.blocks.caption.settings.text_style.label”
},
{
“type”: “select”,
“id”: “text_size”,
“options”: [
{
“value”: “small”,
“label”: “t:sections.image-with-text.blocks.caption.settings.caption_size.options__1.label”
},
{
“value”: “medium”,
“label”: “t:sections.image-with-text.blocks.caption.settings.caption_size.options__2.label”
},
{
“value”: “large”,
“label”: “t:sections.image-with-text.blocks.caption.settings.caption_size.options__3.label”
}
],
“default”: “medium”,
“label”: “t:sections.image-with-text.blocks.caption.settings.caption_size.label”
}
]
},
{
“type”: “text”,
“name”: “t:sections.image-with-text.blocks.text.name”,
“limit”: 1,
“settings”: [
{
“type”: “richtext”,
“id”: “text”,
“default”: “t:sections.image-with-text.blocks.text.settings.text.default”,
“label”: “t:sections.image-with-text.blocks.text.settings.text.label”
},
{
“type”: “select”,
“id”: “text_style”,
“options”: [
{
“value”: “body”,
“label”: “t:sections.image-with-text.blocks.text.settings.text_style.options__1.label”
},
{
“value”: “subtitle”,
“label”: “t:sections.image-with-text.blocks.text.settings.text_style.options__2.label”
}
],
“default”: “body”,
“label”: “t:sections.image-with-text.blocks.text.settings.text_style.label”
}
]
},
{
“type”: “button”,
“name”: “t:sections.image-with-text.blocks.button.name”,
“limit”: 1,
“settings”: [
{
“type”: “text”,
“id”: “button_label”,
“default”: “t:sections.image-with-text.blocks.button.settings.button_label.default”,
“label”: “t:sections.image-with-text.blocks.button.settings.button_label.label”,
“info”: “t:sections.image-with-text.blocks.button.settings.button_label.info”
},
{
“type”: “url”,
“id”: “button_link”,
“label”: “t:sections.image-with-text.blocks.button.settings.button_link.label”
},
{
“type”: “checkbox”,
“id”: “button_style_secondary”,
“default”: false,
“label”: “t:sections.image-with-text.blocks.button.settings.outline_button.label”
}
]
}
],
“presets”: [
{
“name”: “t:sections.image-with-text.presets.name”,
“blocks”: [
{
“type”: “heading”
},
{
“type”: “text”
},
{
“type”: “button”
}
]
}
]
}
{% endschema %}

@tobiaszellweger Did you ever get any help with this? Looking at the bottom of your product page, it seems like the video is auto-playing now.

I see that it’s fixed now. I left a detailed step by step solution, but it looks like it was removed :sweat_smile: . The video had a play button overlay that was preventing the loop, and there were attributes that required interaction with the video for it to play. None of those are there anymore, so it’s resolved.