A developer calls client.videos.create with a sora-2 deployment through the OpenAI client and the resource's /openai/v1/ base URL. The call returns at once with an object whose status is queued and that contains no video data. The developer needs the finished MP4 file. What should the code do next?
Choose one.
Sora 2 video generation is an asynchronous job: create, poll, then download.
videos.create starts a render job and returns immediately with status queued. The app polls videos.retrieve (or uses the create_and_poll helper) until the status is completed, failed or cancelled, then downloads the MP4 with videos.download_content(video_id, variant="video"). There is no URL in the create response, no streaming mode, and remix is a separate generation that needs a completed source video.
- Recognise the queued status as a job, not a result.
- Recall the job states: queued, in_progress, then completed or failed.
- Fetch the file only after completion, with download_content.
- Reject options that expect content from the create call itself.
Exam tip: Sora 2: create returns a job ID; poll retrieve until completed, then download_content.
AI-103: Image and Video Generation and Editing in Foundry — GPT-image, FLUX and Sora 2 — the lesson that teaches this.