Google Play preview video: check the YouTube URL in Python
Google Play wants a plain YouTube URL: public or unlisted, embeddable, ads off, no timecode. A short Python check, plus how to make the MP4 with Sume first.

Google Play does not take a video file. It takes the YouTube URL of one video, and that video must meet several settings. This post lists them as Google states them, then gives a small Python check for the URL itself. The settings inside YouTube you still verify by hand.
What does Google require?
These are the rules on Google's own help page. Each one is a setting on the YouTube side, not a property of the file.
| Requirement | What the page says |
|---|---|
| URL | The video's YouTube URL, with no playlist, channel or timecode parameters |
| Privacy | Public or unlisted |
| Age | The video cannot be age-restricted |
| Ads | Ads must be disabled |
| Embedding | The video must be embeddable |
| Autoplay | Only the first 30 seconds autoplay |
How do I check the URL?
The script below flags playlist, timecode and channel URLs. The parameter names list, t, start and time_continue are our reading of "playlist and timecode parameters", not a list from Google. Run it before you paste into the Play Console.
from urllib.parse import urlparse, parse_qs
BAD_PARAMS = {"list", "t", "start", "time_continue"}
HOSTS = {"www.youtube.com", "youtube.com", "youtu.be"}
def check_play_url(url):
u = urlparse(url)
if u.scheme != "https" or u.hostname not in HOSTS:
return "not an https YouTube URL"
if u.path.startswith(("/channel", "/c/", "/@", "/playlist")):
return "channel or playlist URL, use one video URL"
found = BAD_PARAMS & set(parse_qs(u.query))
if found or u.fragment.startswith("t="):
return "remove playlist/timecode parts: " + ", ".join(sorted(found) or ["#t="])
return "ok"
for url in ["https://www.youtube.com/watch?v=abc123",
"https://www.youtube.com/watch?v=abc123&list=PL1&t=30s"]:
print(check_play_url(url), "<-", url)How do I make the video itself?
Make the MP4 first. For a screen-recording demo, Video trim cuts the best range into a new MP4 for a flat $0.02. For a creator-style app clip, the sume-mobile-app-ugc Format in the catalog is built around a visible phone and one clear app benefit.
Then upload to YouTube and set the privacy, age, ads and embedding options there. Sume does not do that step in this flow.
What belongs in the first 30 seconds?
Only the first 30 seconds autoplay, so put the main benefit and the app in use there. Anything later is for viewers who press play. Check the opening with a still at second 0 and one at second 5 using video frames.
What else belongs in the checklist?
The URL check is one of several things to do before you submit the listing.
- The video is public or unlisted on YouTube, not private.
- The first 30 seconds show the app in use, not a logo.
- The link works without a login.
- The same checks are repeated for each language you list.
Sources
Related posts
More in Use cases
- Griffin-Lite waitlist: six checks before planning a live avatar launch
Tavus Griffin-Lite is a research preview with no customer date or price on its page. Six checks before you plan around it, and what to ship on Sume meanwhile.
- Headline card above an app screen recording: compose stack, $0.36
Timeline compose stack puts a headline image over a video for $0.02 per job. Three headline variants over one app recording cost $0.36 with the images.
- Hide jump cuts with alternating punch-ins: one crop copy, N slots
One $0.02 video-filter crop makes a 1.25x punched-in copy. Alternate wide and punched slots at each pause cut for $0.02 total, not $0.02 per cut.
- How many words fit in a 30-second voiceover, and what it costs
A 30-second voiceover is about 75 words or 450 characters at a planning pace of 150 wpm. Sume TTS bills characters, so here is the length-to-cost table.
Written by Sume