> For the complete documentation index, see [llms.txt](https://anyint.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://anyint.gitbook.io/docs/models-and-modalities/videos.md).

# videos

The current published generic video flow is task-based and lives under the DashScope media routes.

## Published routes

| Route                                                               | Purpose                                      |
| ------------------------------------------------------------------- | -------------------------------------------- |
| `POST /v1/dashscope/services/aigc/video-generation/video-synthesis` | Create a video from prompt, image, and audio |
| `GET /v1/dashscope/tasks/{task_id}`                                 | Query video task status and fetch the result |

## Input pattern

The current schema combines:

* a text prompt
* an image URL
* an audio URL
* generation parameters such as duration and resolution

## Task lifecycle

The response returns a task immediately. After that:

1. store `task_id`
2. query the task route
3. wait for `task_status` to reach success
4. consume `video_url`

In the published examples, the task starts as `PENDING` and later becomes `SUCCEEDED`.

## Practical advice

* Design your UI as an async workflow, not a single request-response page
* Persist the original prompt, task ID, and returned asset URL together
* Keep polling as a fallback even if you also use webhooks elsewhere in your platform

## Where AI Music fits

If you are generating a music video from a song workflow rather than a generic video pipeline, look at [AI Music](/docs/ai-music/overview.md) instead of treating it as a plain video job.
