Record a TikTok app review video with an AI agent
TikTok wants a demo video before it reviews your app, with your domain on screen, every scope shown and a file under 50 MB. Here is how an agent records it with DemoTake, while you do the sign-in.
You've built a web app that connects to TikTok. Before TikTok for Developers approves it, you have to upload a demo video that shows the app working: signing in with TikTok, asking for each permission, and using it. A coding agent can record that video for you. It knows the flow, because it built it. The parts it can't do are the parts that belong to you: signing in to your TikTok account and pressing the button on the consent screen.
This post walks through recording a TikTok review video with an agent and DemoTake 1.2: what the reviewer looks for, how to plan the take, how to hand sign-in to a person, and how to end up with a file the upload form accepts.
TikTok's requirements change over time. Read the current app review guidelines in the TikTok for Developers portal before you record. This post describes the rules as they stood when we wrote it.
What TikTok's reviewers look for
The review form asks for the website URL of your app and the products and scopes you want, and for a demo video. The rules for the video are short and strict:
- The domain must match. The website shown in the video has to be the one you entered in the form. So the address bar has to be on screen.
- Every product and scope demonstrated. If you ask for
user.info.basicandvideo.upload, the video shows the sign-in, the consent screen that lists them, and the feature that uses each one. - MP4 or MOV, at most 50 MB. A two-minute screen recording at full quality can easily be bigger than that.
The first two are about content. The third is about the file. Videos get rejected for all three.
The story we started from
A team recorded exactly this with an agent and DemoTake 1.1. Their app connects a TikTok account and sends a video to the user's TikTok inbox as a draft. The agent drove Chrome with a browser automation tool while DemoTake recorded. The owner signed in to TikTok and pressed Continue on the consent screen. After approval, the upload ran on a server for about a minute before the app showed a result.
The recording worked on the first try, and the editing tools did most of the work. But they couldn't finish the video in DemoTake:
- A crop to remove the browser's tabs and an automation bar was accepted, but had no visible effect in the export.
- The browser window showed unrelated tabs, and the automation bar came and went during the take. A single crop can't keep the address bar and drop a bar that appears just below it.
- The export showed two cursors: the automation tool's and DemoTake's.
- The first export was 88 MB for two minutes, close to twice TikTok's limit.
They finished the video by hand in another tool. DemoTake 1.2 is largely their list of fixes.
Plan the take as scenes
Start with one scene per thing the reviewer must see. Each scene ends on a screen that proves something happened, and the scene with the consent screen says which scopes it shows.
- 1Open settings✓ Connect TikTok button visible on your domainPending
- 2Sign in to TikTok✓ TikTok's consent screenPending
- 3Authorize✓ Consent screen lists user.info.basic and video.uploadPending
- 4Upload✓ The app says the video was sentPending
- 5Draft in TikTok inbox✓ The draft is visible in TikTokPending
Tell the agent the platform, your app URL and your scopes. It passes them to take_create as a review preset:
{
"purpose": "reviewer",
"platform": "tiktok",
"app_url": "https://example.com",
"scopes": ["user.info.basic", "video.upload"],
"target": { "url_contains": "example.com" },
"browser": { "mode": "page", "address_bar": "drawn" }
}The preset captions each scene with its description after recording, exports small files under 45 MB by default, and tells the review check what to look for at the end.
Record only the page, keep the address bar
browser: {mode: "page", address_bar: "drawn"} records the page area of the browser window and nothing else: no tab strip, no bookmarks, no automation bar. Above the page, DemoTake draws a clean address bar from the tab's address, with a lock, the domain and the path. It never shows the query string, where sign-in flows often carry codes. When the app sends you to TikTok's sign-in page and back, the address bar follows.
- Other tabs and tab groups
- An automation bar that comes and goes
- The real toolbar
- Just your app
- Your domain in a clean address bar
- Follows the redirect to TikTok and back
url_contains finds the window by the address of its tab, not by a window title that changes whenever another tab becomes active. If your agent drives the browser with an automation tool, DemoTake leaves its own drawn pointer off, so the video has one cursor.
Hand the sign-in to a person
Your agent shouldn't type your TikTok password, and it shouldn't press Continue on a consent screen for you. When it gets there, it hands the step over:
{
"message": "Sign in to TikTok and stop at the consent screen",
"resume_when": { "text": "wants to access your account", "timeout": 600 }
}DemoTake pauses the recording and shows the message on your Mac, in a banner and a small panel that floats over your other windows, with a Resume button. You sign in at your own pace. When the consent screen's text appears, recording picks up by itself. The sign-in isn't in the video, but the reviewer notes say a person did it.
The minute of server work after approval gets the same treatment with take_wait. Recording pauses until the app shows its result, then picks up with a short "A moment later" card. Nobody has to watch a spinner.
Edit for the reviewer, not for a launch
A review video is proof, not marketing. Shorten the waiting, keep everything else.
- Footage review shortens still stretches, and keeps consent and result screens on screen long enough to read.
- Captions come from your scene descriptions, so the reviewer reads "TikTok asks for 2 permissions" while the consent screen is up. They're attached to their scenes, so they stay in place when you change the cut.
- A crop or a camera focus now shows exactly the region you asked for, in every frame. Your agent can check any moment with a preview of the edited frame, without exporting.
Export under 50 MB
With the TikTok preset, the export uses upload-friendly quality and keeps the file under 45 MB, which leaves room below the 50 MB limit. Upload-friendly is H.264 at 30 frames per second, tuned for app recordings. If the first file comes out too big, DemoTake encodes it again at a lower bitrate. The finished export reports its size and whether it fits TikTok's limit.
If you record it yourself, the same settings are in the Export sheet: Quality › Upload-friendly, and Keep under a size.
Check it before you upload
Last, your agent runs review_check. It checks four things:
- the domain in the video matches your app URL, and the address bar is visible,
- every scope has a scene in the cut that shows it,
- every consent screen stays up for at least three seconds,
- the latest export is MP4 or MOV and at most 50 MB.
Each check passes or says what to fix. The result includes a checklist to paste into the review form: the video file, the website shown, the steps, where each scope appears, and which steps a person did. In the app, the same check is under Platform review in Reviewer Mode, with Copy Checklist.
DemoTake can't promise that TikTok approves your app. It can make sure the video shows what reviewers ask for, and that the file is accepted by the form.
Try it
Connect your agent (Connect your agent), open your web app in Chrome, Edge, Brave, Arc or Safari, and ask:
Record our TikTok app review video from the browser tab. Our app URL is https://example.com and we need user.info.basic and video.upload. I'll sign in when you ask.
The full workflow, including Meta, Google and Apple reviews, is in Record a platform review video. For what reviewers want from a consent screen, see The Google OAuth verification video.