Google Business Profile video: 30 seconds, 75 MB, 720p
Google Business Profile videos can be up to 30 seconds, 75 MB and 720p or higher. Cut a longer promo clip to length with Sume's video trim, one call.

A Google Business Profile video can be up to 30 seconds long, up to 75 MB, and 720p or higher. Photos should be JPG or PNG between 10 KB and 5 MB, with 720 x 720 recommended and 250 x 250 the minimum. If you have a longer promo clip, Sume's video trim cuts a [start, end) range out of it as a new MP4 in one call, for $0.02 per job on the docs' read date.
The numbers are from Google's Manage your Business Profile photos & videos page, read on 2026-10-02.
What are Google's photo and video limits?
Google also says photos should be "in focus and well lit, and have no significant alterations or excessive use of filters". Keep that in mind before you generate or retouch a photo for the profile.
| Media | Limit |
|---|---|
| Photo format | JPG or PNG |
| Photo file size | 10 KB to 5 MB |
| Photo resolution | 720 x 720 recommended; 250 x 250 minimum |
| Video length | Up to 30 seconds |
| Video file size | Up to 75 MB |
| Video resolution | 720p or higher |
| Photo quality | In focus, well lit, no significant alterations or excessive filters |
How do I cut a longer clip to 30 seconds?
Sume's video trim takes one Sume-hosted clip, a start and exactly one of end or duration, and returns a new MP4 while the source stays untouched. The clip must already be on media.sume.com; there is no open-internet fetch, so import an outside file first. An Idempotency-Key header is required.
The default precision is exact, a frame-accurate re-encode, and audio defaults to keep. mode: "sync" waits up to 30 seconds for a finished job and returns 200, or 202 if it is still running, in which case you poll GET /v1/jobs/{id}/status and read GET /v1/jobs/{id}/result.
import os, requests
r = requests.post(
"https://api.sume.com/v1/video-trim",
headers={
"Authorization": f"Bearer {os.environ['SUME_API_KEY']}",
"Idempotency-Key": "gbp-promo-trim-001",
},
json={
"video_url": "https://media.sume.com/artifacts/artf_demo/promo.mp4",
"start": 0,
"duration": 30,
"mode": "sync",
},
timeout=60,
)
print(r.status_code, r.json())
After the cut: check size and resolution
A 30-second clip can still be over 75 MB at high bitrates, and a trim does not tell you the resolution Google will accept. Check the result's file size and that it is 720p or higher before you upload. Sume's video generation defaults to 720p, so a clip made there starts at Google's floor; ask for 1080p if you want headroom.
Because Google asks for unaltered photos, use AI for the video and posts, and use real photographs for the photo gallery.
Sources
Related posts
More in Use cases
- Display campaigns moving to Demand Gen: which images to prepare
Google is folding Display campaigns into Demand Gen. Prepare the image set Demand Gen uses, then generate each ratio with one Sume image request per size.
- Local Services Ads photos: 640x640, 10 MB, no phone numbers
Local Services Ads business photos need 640 x 640 px or more, up to 10 MB and 100 images per account, with no phone numbers shown. Plan a compliant set.
- Merchant Center: AI product images must keep AI metadata
Google Merchant Center says generative-AI images must contain metadata marking them AI-generated. Check your exported file with exiftool before uploading.
- GPT Image 2.5 ad headline text: quote the copy, test medium vs high
For an ad still with a headline, quote the exact words, state position and type style, and render at medium and high to compare. A Sume script and its cost.
Written by Sume