St Andrew's Day Mon 30 Nov 2026: pub and cafe hours clip with cues

St Andrew's Day 2026 is a Monday bank holiday in Scotland. Build a silent opening-hours clip from one venue photo with image-to-video and caption cues.

4 min readSume
All posts

St Andrew's Day 2026 falls on Monday 30 November, and the Scottish government lists it as a bank holiday, so a pub, cafe or shop in Scotland has a day when its usual hours may not apply. A short silent clip from one photo of your venue, with the day's hours burned on as cues, is the cheapest way to tell regulars before the day.

The date and the weekend rule come from mygov.scot's bank holiday page, read on 2026-10-13. Everything about Sume comes from the docs pages under sources.

What does mygov.scot say about 30 November 2026?

The page's 2026 table lists St Andrew's Day on 30 November, a Monday. It also explains that when a holiday falls on a weekend, a weekday becomes the bank holiday instead, usually the Monday after. Because 30 November is already a Monday this year, no substitute day is needed.

A bank holiday is not the same as a legal closing day: whether your venue opens is your decision, so the clip should state your own hours, not the holiday.

St Andrew's Day 2026 on the Scottish bank holiday list, from mygov.scot. Read 2026-10-13.
DateWhat happensSource
Mon 30 Nov 2026St Andrew's Day, listed as a Scottish bank holidaymygov.scot bank holiday page
Weekend ruleA weekday becomes the bank holiday, usually the Monday aftermygov.scot bank holiday page

Which Sume calls build the clip?

Step one is a video job at POST /v1/videos. Put your photo in frame_images with frame_type set to first_frame and Sume treats the job as image-to-video; send no photo and it is text-to-video. Before you pick a model, call GET /v1/videos/models and read supported_durations, supported_frame_images and supported_aspect_ratios for it, because limits differ by model. The docs state, for example, that wan-3.0 accepts 2 to 30 seconds.

Step two is POST /v1/video-captions with the finished clip's public HTTPS URL as video_url and a cues array of text, start and end. Because you send cues, Sume does not run speech-to-text and burns your text at those times. A silent clip with no cues fails with caption_no_speech, so the cues are not optional for a silent clip. Both calls are asynchronous jobs; poll or take a webhook for the result.

What should the cues say?

Put the date and your hours in the first four seconds. A five-cue plan for a 10-second clip:

Cue plan for a 10-second clip. The date is from mygov.scot, read 2026-10-13; the hours and offer are placeholders for your own.
Start (s)End (s)Cue textWhy
02St Andrew's Day, Monday 30 NovemberThe date, from the bank holiday list
24We are open 11 until 9Replace with your real hours
46Book a table by FridayYour own booking rule
68Tartan welcome for everyoneA tone line, no claim
810See you on the 30thClose on the date again

How do you send the caption job?

This script builds the cue payload and prints it, so you can check the JSON before you post it with your own API key and the real clip URL.

import json

cues = [
    (0, 2, "St Andrew's Day, Monday 30 November"),
    (2, 4, "We are open 11 until 9"),
    (4, 6, "Book a table by Friday"),
    (6, 8, "Tartan welcome for everyone"),
    (8, 10, "See you on the 30th")
]
payload = {
    "video_url": "https://example.com/st-andrews-day.mp4",
    "cues": [{"text": t, "start": s, "end": e} for s, e, t in cues],
}
print(json.dumps(payload, indent=2))

What can go wrong?

The video URL must be public HTTPS, so host the clip first. Generated motion can change signage and lettering in your photo, so check the result against the real shopfront before you caption it. If the photo shows a sign with old hours, caption over a different frame.

Hours are the part most likely to be wrong. Cues are plain text you author, so a typo ships as written; read every cue back before you post.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume