An MP4 has to prove itself before it gets uploaded
The render-verification gate sits between the muxer and the YouTube uploader. It takes in the final MP4, the reference beat grid, the original audio from Suno, and the edit decision list that the muxer used. The gate has one job: prove that the render is what we think it is. A file that looks fine on the surface can still be broken. We cannot upload that to a creator's channel.
The first checks are structural. We open the MP4 and look at the container. We verify the codecs, resolution, bitrate, and frame count. We check that the file is not truncated. A corrupt header or a missing moov atom fails immediately. We also confirm the duration matches the reference timeline within a tolerance. If the video is a half-second short, something went wrong.
Then we get to beat sync. The muxer places visual changes on beat boundaries. The gate runs a beat detection algorithm on the rendered audio track. It compares those detected beats with the timestamps in the edit decision list. We allow a tolerance of a few milliseconds. If the drift is too high, the render goes back to the muxer. This is the core quality check for a music video.
We scan for silence and black frames. The audio should not have unexpected gaps. The video should not have frozen sections. A segment that should show motion but sits static for a second is a red flag. These checks catch codec glitches and Sora artifacts. They also catch muxing errors that do not show up in the container structure.
There is also a policy layer. We sample a few frames from the render. We run a simple image analysis to make sure the artwork and captions match what Gemini generated. We check that the video is not too long or too short, and that the resolution meets the minimum for YouTube. This is not the full YouTube policy check, but it catches obvious problems early. It saves an API call later.
If every check passes, the gate writes a verification manifest. The manifest includes file hashes, frame counts, detected beat timestamps, and a hard pass decision. It also includes the exact tolerance values used for every comparison. The uploader stage reads this manifest and only then calls YouTube. No manifest means no upload. That is how the gate proves its work.
The whole process takes a few seconds per video. That is nothing compared to the rendering time. But it prevents a broken video from landing on a creator's channel. It also gives us a clean record if something goes wrong later. The gate does not make videos better. It makes sure the video we made is the video that goes out.