Source: https://ailoot.ai/models/vi/google-veo-3-1-lite/
Canonical: https://ailoot.ai/models/vi/google-veo-3-1-lite/
Language: vi

# Google: Veo 3.1 Lite

[Markdown](https://ailoot.ai/models/vi/google-veo-3-1-lite/index.md) · [JSON](https://ailoot.ai/models/vi/google-veo-3-1-lite/facts.json)

## [Google: Veo 3.1 Lite](https://ailoot.ai/models/vi/google-veo-3-1-lite/)

Veo 3.1 Lite tạo video với âm thanh gốc từ mô tả văn bản hoặc ảnh ban đầu. Quy trình Lite được công bố tạo một đoạn phim dài 4, 6 hoặc 8 giây, khung ngang hoặc dọc, với các giới hạn cụ thể khác Veo 3.1 và Fast.

- [**Ailoot Ultra · Video** `POST /v1/videos` `google/veo-3.1-lite`](https://ailoot.ai/models/vi/google-veo-3-1-lite/#method-0)

Về mô hình

Mô tả này trình bày khả năng của mô hình. Đầu vào, đầu ra và tùy chọn có trên Ailoot được liệt kê bên dưới cho phương thức đã chọn.

Veo 3.1 Lite là thành viên Lite của Google trong dòng tạo video Veo 3. Mô hình tổng hợp video có âm thanh từ mô tả ngôn ngữ tự nhiên hoặc ảnh đầu vào. Đầu ra là đoạn phim được tạo, không phải phân tích văn bản của bản ghi có sẵn. Thẻ mô hình Lite của nhà sản xuất dẫn đến Veo 3 về kiến trúc nền, tư liệu huấn luyện và hạn chế đã biết, còn tài liệu riêng của Lite xác định tính năng và giới hạn tạo video riêng.

Kiến trúc được tham chiếu dùng khuếch tán tiềm ẩn trên biểu diễn âm thanh theo thời gian và biểu diễn video không gian–thời gian. Mô hình cơ sở được huấn luyện bằng âm thanh, video và ảnh, với chú thích ở các mức chi tiết khác nhau, cùng tư liệu huấn luyện đã lọc và loại trùng. Điều này giải thích mục đích tạo kết hợp hình ảnh và âm thanh. Nó không công bố số tham số riêng của Lite hoặc xác lập rằng mọi chuyển động được tạo đều theo thực tế vật lý. Với cảnh thực tế cần làm, hãy quyết định hành động nhìn thấy và âm thanh tương ứng cùng nhau.

Tài liệu Lite cụ thể nêu giới hạn đầu vào văn bản 1,024 token và một video đầu ra. Cột Lite trong hướng dẫn tạo video liệt kê thời lượng 4, 6 và 8 giây, mặc định 720p và 1080p yêu cầu đoạn phim 8 giây. Ngang 16:9 là tỷ lệ mặc định và dọc 9:16 cũng được liệt kê; đầu ra được công bố ở 24 khung hình mỗi giây. Âm thanh gốc luôn bật trong quy trình đó. Các giá trị này thuộc quy trình Lite được nhà sản xuất nêu tên, không thuộc một phiên bản Veo không liên quan hay phản hồi ứng dụng được đo riêng.

Lite không hỗ trợ đầu ra 4K hoặc nối dài video. Bảng tham số cũng đánh dấu tính năng nhiều tham chiếu referenceImages và đầu vào video để nối dài là không khả dụng trong cột Lite. Ảnh ban đầu có thể xác lập khung hình mở đầu; bảng liệt kê ảnh lastFrame cùng ảnh ban đầu đó cho một chuyển cảnh. Giữ cách điều khiển khung hình này tách biệt với trộn nhiều tham chiếu phong cách hoặc chủ thể. Thiết lập tạo người của nhà sản xuất tuỳ theo chế độ: bảng Lite liệt kê allow\_all cho văn bản thành video và allow\_adult cho ảnh thành video cùng nội suy, trong khi quy tắc khu vực có thể hạn chế thêm cấu hình được công bố đó. Chọn ảnh mở đầu khớp với cảnh đầu tiên bạn thực sự muốn, với chủ thể, khung hình và chi tiết nhìn thấy được chuẩn bị trước khi yêu cầu chuyển động.

Với văn bản thành video, mô tả chủ thể, hành động, môi trường và phong cách dự định. Thêm vị trí và chuyển động máy quay, khung hình, tiêu điểm và ánh sáng khi cần. Một cảnh sản phẩm tự soạn có thể giữ vật thể ở giữa khi máy quay tiến gần một chi tiết chất liệu và ánh sáng xung quanh thay đổi nhẹ. Xác định trạng thái đầu, hành động chính và khoảnh khắc cuối để đoạn phim ngắn giải quyết một ý tưởng thống nhất. Tập hợp dài các hành động không liên quan là tác vụ khác với một cảnh quay có trọng tâm.

Với ảnh thành video, cung cấp khung đầu rõ và giải thích phần nào cần chuyển động, phần nào cần ổn định. Chỉ định chuyển động chủ thể và mọi chuyển động máy quay riêng. Nếu dùng ràng buộc khung cuối, chuẩn bị bố cục kết thúc tương thích và mô tả chuyển tiếp giữa chúng. Kiểm tra kết quả thay vì mặc định danh tính, vị trí hoặc hình dạng yêu cầu giữ giống hệt suốt đoạn phim. Thẻ mô hình được tham chiếu xác định tính nhất quán hoàn toàn trong cảnh phức tạp và chuyển động phức tạp vẫn là thách thức.

Hướng dẫn câu lệnh hỗ trợ chỉ dẫn rõ ràng cho hội thoại, hiệu ứng âm thanh và không khí âm thanh. Đặt lời nói chính xác trong dấu ngoặc kép, xác định người nói và mô tả âm thanh theo quan hệ với hành động nhìn thấy. Không nên nhầm hiệu ứng âm thanh và không khí nền với một câu thoại. Tiếng Anh được công bố là hỗ trợ đầy đủ cho câu lệnh, còn các ngôn ngữ khác chưa được đánh giá trong hướng dẫn đó. Kiểm tra lời nghe được, thời điểm và chất lượng âm thanh như một phần của cùng tài nguyên video, thay vì coi âm thanh là bản chép đúng câu lệnh được bảo đảm.

Quy trình của nhà sản xuất là bất đồng bộ: yêu cầu tạo trả về một tác vụ, và lấy kết quả hoàn chỉnh sau khi trạng thái báo hoàn tất. Giữ danh tính tác vụ và kiểm tra đoạn phim trả về. Hướng dẫn mô tả thời gian lưu phía nhà sản xuất hai ngày và dấu SynthID, nên tài nguyên lưu giữ cần gồm kết quả đã tải, câu lệnh, ảnh nguồn và thiết lập đã chọn. Seed có thể tăng khả năng lặp lại nhưng không bảo đảm tính xác định. Kiểm tra tính liên tục của chủ thể, hành động, khung hình, âm thanh và điểm kết thúc cảnh dự định trước khi dùng đoạn phim trong bản dựng; chỉ hoàn tất xử lý chưa chứng minh đáp ứng yêu cầu sáng tạo.

**Ailoot Ultra · Video** `POST /v1/videos` `google/veo-3.1-lite`

[`google/veo-3.1-lite`](https://ailoot.ai/models/vi/#m=google%2Fveo-3.1-lite&route=Ultra&caller=google%2Fveo-3.1-lite&fmt=videos)

Google /`google/veo-3.1-lite`

### Bắt đầu

Biến mô tả cảnh thành video dài 4, 6 hoặc 8 giây ở độ phân giải 720p.

- Thể hiện sản phẩm đang chuyển động
- Tạo cảnh giới thiệu bối cảnh
- Thử một chuyển động máy quay ngắn

Đầu vào được chấp nhận

Văn bản · Ảnh

Kết quả

Video

### Có trên Ailoot · đầu vào & phương thức

**Ailoot Ultra · Video** `POST /v1/videos`

Đầu vào

`text`, `image`

Đầu ra

`video`

Định dạng đầu ra

mp4

Số đầu ra

Tối đa 4 đầu ras

| Trường | Loại | Yêu cầu | Giá trị & giới hạn | Mặc định |
| --- | --- | --- | --- | --- |
| Trường`model` | Loại`string` | Yêu cầuBắt buộc | Giá trị & giới hạn google/veo-3.1-lite | Mặc định— |
| Trường`prompt` | Loại`string` | Yêu cầuBắt buộc | Giá trị & giới hạn Độ dài tối thiểu: 1 Số byte tối đa: 10.000 Đơn vị: byte UTF8 | Mặc định— |
| Trường`duration` | Loại`integer` | Yêu cầuBắt buộc | Giá trị & giới hạn 4, 6, 8 Đơn vị: giây | Mặc định— |
| Trường`resolution` | Loại`string` | Yêu cầuBắt buộc | Giá trị & giới hạn 720p | Mặc định— |
| Trường`aspect_ratio` | Loại`string` | Yêu cầuBắt buộc | Giá trị & giới hạn 16:9, 9:16 | Mặc định— |
| Trường`generate_audio` | Loại`boolean` | Yêu cầuBắt buộc | Giá trị & giới hạn false | Mặc định— |
| Trường`frame_images` | Loại`array` | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Điều kiện: Bỏ qua khi dùng text\_to\_video. Nếu có: phải có đúng một mục {"type":"image\_url","image\_url":{"url":"\<URL HTTPS thực tế\>"},"frame\_type":"first\_frame"}; mục chỉ có type,image\_url,frame\_type; image\_url chỉ có url. Không có khóa bổ sung hoặc trùng lặp. Chỉ dùng duration=4,resolution="720p",aspect\_ratio="16:9",generate\_audio=false. URL phải phân tích được với giao thức https, tên máy chủ không rỗng, không có userinfo và không có ký tự # nguyên dạng; giữ nguyên chuỗi truy vấn đã ký và đường dẫn đã mã hóa. Mã nguồn không kiểm tra MIME, dung lượng tệp hoặc kích thước pixel của đầu vào. | Mặc định— |

Tổ hợp tư liệu đầu vào

**Văn bản thành video** · Bắt buộc: prompt

**Ảnh thành video** · Bắt buộc: prompt, frame\_images

Tham số phương thức và vòng đời

| Tham số | Hợp đồng |
| --- | --- |
| Tham số`content_type` | Hợp đồngapplication/json |
| Tham số`required` | Hợp đồngmodel, prompt, duration, resolution, aspect\_ratio, generate\_audio |
| Tham số`other_options` | Hợp đồngfalse |
| Tham số`resolution` | Hợp đồng720p |
| Tham số`prompt_max_bytes` | Hợp đồng10000 |
| Tham số`duration` | Hợp đồng4, 6, 8 |
| Tham số`aspect_ratio` | Hợp đồng16:9, 9:16 |
| Tham số`generate_audio` | Hợp đồngfalse |
| Tham số`material_types` | Hợp đồngtext, image |
| Tham số`parameters` | Hợp đồng{"name":"model","type":"string","required":true,"default\_known":false,"default":null,"enum\_known":true,"enum":\["google/veo-3.1-lite"\],"availability":"source\_interface"}, {"name":"prompt","type":"string","required":true,"default\_known":false,"default":null,"enum\_known":false,"enum":null,"availability":"source\_interface","min\_length":1,"maximum\_bytes":10000,"maximum\_length":null,"unit":"byte UTF8"}, {"name":"duration","type":"integer","required":true,"default\_known":false,"default":null,"enum\_known":true,"enum":\[4,6,8\],"availability":"source\_interface","unit":"giây"}, {"name":"resolution","type":"string","required":true,"default\_known":false,"default":null,"enum\_known":true,"enum":\["720p"\],"availability":"source\_interface"}, {"name":"aspect\_ratio","type":"string","required":true,"default\_known":false,"default":null,"enum\_known":true,"enum":\["16:9","9:16"\],"availability":"source\_interface"}, {"name":"generate\_audio","type":"boolean","required":true,"default\_known":false,"default":null,"enum\_known":true,"enum":\[false\],"availability":"source\_interface"}, {"name":"frame\_images","type":"array","required":false,"default\_known":false,"default":null,"enum\_known":false,"enum":null,"availability":"source\_interface","conditions":"Bỏ qua khi dùng text\_to\_video. Nếu có: phải có đúng một mục {\\"type\\":\\"image\_url\\",\\"image\_url\\":{\\"url\\":\\"\<URL HTTPS thực tế\>\\"},\\"frame\_type\\":\\"first\_frame\\"}; mục chỉ có type,image\_url,frame\_type; image\_url chỉ có url. Không có khóa bổ sung hoặc trùng lặp. Chỉ dùng duration=4,resolution=\\"720p\\",aspect\_ratio=\\"16:9\\",generate\_audio=false. URL phải phân tích được với giao thức https, tên máy chủ không rỗng, không có userinfo và không có ký tự # nguyên dạng; giữ nguyên chuỗi truy vấn đã ký và đường dẫn đã mã hóa. Mã nguồn không kiểm tra MIME, dung lượng tệp hoặc kích thước pixel của đầu vào."} |

Bí danh phương thức: `/v1/videos/generations`, `/videos`, `/videos/generations`

Vòng đời: `submit_once_poll_original`

`GET /v1/videos/{request_id}`

`GET /v1/videos/generations/{request_id}`

`GET /v1/videos/{request_id}/content`

`GET /v1/videos/generations/{request_id}/content`

Tạo một lần và lưu ID được trả về.

Thăm dò trạng thái ban đầu; giữ lại mọi tài sản đã hoàn tất và thời lượng.

### Bảng giá

##### Cách tính phí cuối cùng

Các đơn giá hiển thị dùng để ước tính chi phí trước khi tạo. Khoản phí cuối cùng được tính dựa trên chi phí ghi nhận cho lượt tạo gốc. Thời lượng đầu ra đo được và số lượng dự kiến không phải là số lượng cuối cùng dùng để tính phí.

Thông tin biểu giá không bổ sung tùy chọn yêu cầu. Các tham số được hỗ trợ nằm trong phương thức đã chọn.

Chế độ nhanh

Chưa chỉ định Khi chọn chế độ nhanh

Chế độ Flex

Chưa chỉ định Khi chọn chế độ flex

Mức độ suy luận tối đa

Chưa chỉ định Khi áp dụng mức điều chỉnh mặc định (default) cho mức độ suy luận tối đa

#### Mức phí ước tính để so sánh

#### Giá theo cấu hình

Đối chiếu từng khoản phí với điều kiện hiển thị. Dùng một mức phí cho mỗi nhóm cấu hình thay thế.

| Cấu hình | Biểu mức phí | Số lượng dự báo | Tạo âm thanh | Độ phân giải | Đơn vị tính phí | Điều kiện tính phí | Phí |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Cấu hìnhGiá cơ sở cho token | Biểu mức phíMức phí cơ bản | Số lượng dự báo— | Tạo âm thanh— | Độ phân giải— | Đơn vị tính phí— | Điều kiện tính phí— | Phí Đầu vào · Token đầu vào · Ước tính chỉ để so sánh **—** / 1K token Đầu ra · Token đầu ra · Ước tính chỉ để so sánh **—** / 1K token Đầu vào · Đọc bộ nhớ đệm · Ước tính chỉ để so sánh **—** / 1K token Đầu vào · Ghi bộ nhớ đệm · Ước tính chỉ để so sánh **—** / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ · Ước tính chỉ để so sánh **—** / 1K token |
| Cấu hìnhGiá video | Biểu mức phí— | Số lượng dự báo— | Tạo âm thanh— | Độ phân giải— | Đơn vị tính phímỗi giây video | Điều kiện tính phíâm thanh: with\_audio | Phí Đầu ra · Giá video · Ước tính chỉ để so sánh **$0.16** mỗi giây video |
| Cấu hìnhGiá video | Biểu mức phí— | Số lượng dự báo— | Tạo âm thanh— | Độ phân giải— | Đơn vị tính phímỗi giây video | Điều kiện tính phíâm thanh: with\_audio; độ phân giải: 720p | Phí Đầu ra · Giá video · Ước tính chỉ để so sánh **$0.1** mỗi giây video |
| Cấu hìnhGiá video | Biểu mức phí— | Số lượng dự báo— | Tạo âm thanh— | Độ phân giải— | Đơn vị tính phímỗi giây video | Điều kiện tính phíâm thanh: without\_audio | Phí Đầu ra · Giá video · Ước tính chỉ để so sánh **$0.1** mỗi giây video |
| Cấu hìnhUltra | Biểu mức phí— | Số lượng dự báoCấu hình được yêu cầu; chỉ là ước tính. | Tạo âm thanhKhông có âm thanh | Độ phân giải720p | Đơn vị tính phímỗi giây video đầu ra | Điều kiện tính phí— | Phí Đầu ra · Giây video đầu ra ước tính · Ước tính chỉ để so sánh **$0.06** mỗi giây video đầu ra Đơn giá hiển thị dùng để ước tính chi phí trước khi tạo. Khoản phí cuối cùng được tính từ chi phí ghi nhận cho lần tạo ban đầu. Thời lượng vật lý của video không phải số lượng dùng để tính tiền. |
| Cấu hìnhChi phí tạo ước tính | Biểu mức phí— | Số lượng dự báoước tính cho một lần tạo | Tạo âm thanh— | Độ phân giải— | Đơn vị tính phí— | Điều kiện tính phí— | Phí Đầu ra · Chi phí tạo ước tính · Ước tính chỉ để so sánh **$0.24** ước tính trước khi tạo Ước tính này không phải là khoản phí bổ sung hay mức giá cố định cho lượt tạo đã hoàn tất. |

Ailoot tạm giữ một khoản ước tính trước yêu cầu. Sau khi có kết quả, phí cuối cùng được quyết toán theo mức sử dụng đo được. Việc quyết toán khi truyền luồng dùng bản ghi mức sử dụng cuối cùng. [Cách hoạt động của cơ chế tạm giữ và quyết toán →](https://ailoot.ai/docs/vi/billing/reserve/)

#### Chi tiết giá cước tham chiếu

Biểu tham chiếu cấp mô hình không thay đổi việc chọn phương thức, báo giá hoặc khoản phí. Khoản phí đang áp dụng dùng mức phí phương thức Ailoot đã chọn.

Tham chiếu giá theo cấu hình video

#### Giá theo cấu hình

Đối chiếu từng khoản phí với điều kiện hiển thị. Dùng một mức phí cho mỗi nhóm cấu hình thay thế.

| Cấu hình | Điều kiện tính phí | Phí |
| --- | --- | --- |
| Cấu hìnhGiá video | Điều kiện tính phíâm thanh: with\_audio | Phí Đầu ra · Giá video **$0.16** mỗi giây video Giá tham khảo được công bố cho cấu hình đang hiển thị. Khoản phí cuối cùng dựa trên cấu hình thực tế được ghi nhận khi tính phí. |
| Cấu hìnhGiá video | Điều kiện tính phíâm thanh: without\_audio | Phí Đầu ra · Giá video **$0.1** mỗi giây video Giá tham khảo được công bố cho cấu hình đang hiển thị. Khoản phí cuối cùng dựa trên cấu hình thực tế được ghi nhận khi tính phí. |
| Cấu hìnhGiá video | Điều kiện tính phíâm thanh: with\_audio; độ phân giải: 720p | Phí Đầu ra · Giá video **$0.1** mỗi giây video Giá tham khảo được công bố cho cấu hình đang hiển thị. Khoản phí cuối cùng dựa trên cấu hình thực tế được ghi nhận khi tính phí. |
| Cấu hìnhGiá video | Điều kiện tính phíâm thanh: without\_audio; độ phân giải: 720p | Phí Đầu ra · Giá video **$0.06** mỗi giây video Giá tham khảo được công bố cho cấu hình đang hiển thị. Khoản phí cuối cùng dựa trên cấu hình thực tế được ghi nhận khi tính phí. |

### Ví dụ yêu cầu

#### Ailoot Ultra · Video

curlcurl · tạo chuyển động từ khung hình đầu tiên của bạn

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "google/veo-3.1-lite", "prompt": "A cat in a spacesuit walking on the Moon", "duration": 4, "resolution": "720p", "aspect_ratio": "16:9", "generate_audio": false}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_URL:?Set the actual HTTPS URL of your first-frame image}"
export AILOOT_IMAGE_URL
python3 - <<'PY_REQUEST'
import json,os,re
from pathlib import Path
from urllib.parse import urlsplit
image=os.environ["AILOOT_IMAGE_URL"]
try:
    parsed=urlsplit(image)
    valid=(image.startswith("https://") and parsed.scheme=="https" and bool(parsed.hostname)
           and parsed.username is None and parsed.password is None and "#" not in image
           and not any(ord(c)<32 or ord(c)==127 for c in image)
           and re.search(r"%(?![0-9A-Fa-f]{2})",image) is None)
except ValueError:
    valid=False
if not valid:
    raise SystemExit("Use your actual HTTPS image URL with a hostname, no userinfo and no fragment")
p={"model":"google/veo-3.1-lite","prompt":"The subject makes a slow, natural movement. Keep the opening composition.","duration":4,"resolution":"720p","aspect_ratio":"16:9","generate_audio":False,"frame_images":[{"type":"image_url","image_url":{"url":image},"frame_type":"first_frame"}]}
Path("request.json").write_text(json.dumps(p,ensure_ascii=False),encoding="utf-8")
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
print(json.dumps(r,ensure_ascii=False,indent=2))
print("Keep the complete JSON, headers and original returned id. Use the existing GET status tab for that original operation, then save every completed owned output. Never resubmit an unknown generation.")
PY_RESULT
```

### Nhận và lưu kết quả

#### Ailoot Ultra · Video

mp4

- `GET /v1/videos/{request_id}`
- `GET /v1/videos/generations/{request_id}`
- `GET /v1/videos/{request_id}/content`
- `GET /v1/videos/generations/{request_id}/content`

##### Kiểm tra trạng thái tác vụ

GET trạng thái

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/$operation_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o status.json
python3 - <<'PY_STATUS'
import json
from pathlib import Path
r=json.loads(Path("status.json").read_text())
print(json.dumps(r))
if r.get("status")=="completed":
    for x in r.get("data",[]):print(x)
PY_STATUS
```

##### Lưu tất cả tài nguyên đã hoàn tất

GET tất cả tài nguyên đã hoàn tất

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}"
export AILOOT_STATUS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
from urllib.parse import urlsplit,urljoin
f=Path(os.environ["AILOOT_STATUS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual completed status file")
r=json.loads(f.read_text())
if r.get("status")!="completed" or not isinstance(r.get("data"),list) or not r["data"]:raise SystemExit("Wait for a completed status with asset paths")
urls=[]
for x in r["data"]:
    if not isinstance(x,str) or "\n" in x or "\r" in x:raise SystemExit("Invalid asset path")
    u=urljoin("https://api.ailoot.ai",x)
    z=urlsplit(u)
    if z.scheme!="https" or z.netloc!="api.ailoot.ai" or z.username or z.password:raise SystemExit("Use the actual Ailoot asset paths from status")
    urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_REQUEST
index=0
while IFS= read -r asset_url; do
  curl --fail-with-body --silent --show-error "$asset_url" \
    -H "Authorization: Bearer $AILOOT_API_KEY" -o "video-${index}.mp4"
  index=$((index + 1))
done < asset-urls.txt
```

Lượt đọc nội dung khác

GET nội dung

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/$operation_id/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
```

##### Lưu tất cả kết quả đã hoàn tất

Lưu mọi video đã hoàn tất hoặc tệp trả về; truy xuất từng URL tài nguyên thực tế được trả về.

data\[\] khi hoàn tất chứa tất cả URL nội dung đã ký thuộc quyền sở hữu. Truy xuất từng URL được trả về, hoặc dùng điểm cuối nội dung với index đặt thành một chỉ số đầu ra thực tế. Tác vụ gốc thất bại có thể trả về charge\_pending\_check; kiểm tra tác vụ gốc đó thay vì tạo lại. Bản âm thanh AAC hợp lệ có thể tồn tại ngay cả khi generate\_audio=false; giữ lại toàn bộ MP4 gốc bao gồm bản âm thanh đó.

##### Nếu cần kiểm tra phản hồi gốc

Đọc tác vụ gốc hiện có; tuyệt đối không gửi lại lần gửi chưa rõ kết quả.

Số đầu ra tối đa: 4.

Trường phản hồi

| Trường | Loại | Ý nghĩa |
| --- | --- | --- |
| Trường`id` | Loạistring | Ý nghĩa— |
| Trường`object` | Loạistring | Ý nghĩa— |
| Trường`model` | Loạistring | Ý nghĩa— |
| Trường`status` | Loạistring | Ý nghĩa— |
| Trường`data[]` | Loạisigned content URL | Ý nghĩa— |
| Trường`charge_pending_check` | Loạiboolean | Ý nghĩa— |
| Trường`error.code` | Loạistring | Ý nghĩa— |
| Trường`error.message` | Loạistring | Ý nghĩa— |
| Trường`operation_id` | Loạistring | Ý nghĩaPhản hồi trạng thái/nội dung gốc HTTP503 result\_pending\_check: cùng ID video công khai ban đầu trong id. |
| Trường`error.type` | Loạistring | Ý nghĩaserver\_error khi HTTP503 result\_pending\_check. |

Lỗi và bước tiếp theo

| Phản hồi | Điều kiện | Bước tiếp theo |
| --- | --- | --- |
| Phản hồi400 · `invalid_request_error` | Điều kiệnTrường bắt buộc, cách biểu diễn tài liệu hoặc giá trị tham số không hợp lệ | Bước tiếp theoSửa các trường được chỉ ra trước khi gửi yêu cầu tạo mới. |
| Phản hồi409 · `video_not_ready` | Điều kiệnNội dung kết quả ban đầu chưa có sẵn | Bước tiếp theoThăm dò ID ban đầu được trả về và tuân thủ Retry-After. |
| Phản hồi`server_error` | Điều kiệnPhản hồi trả về cho biết thao tác hoặc kết quả cần được kiểm tra | Bước tiếp theoGiữ lại ID thao tác/tác vụ gốc đã trả về, các header của yêu cầu và toàn bộ phản hồi; tiếp tục truy xuất thao tác gốc đó bằng các phương thức được hỗ trợ. Không gửi lại yêu cầu tạo. |
| Phản hồi503 · `result_pending_check` | Điều kiệnGET trạng thái/nội dung gốc: tác vụ chưa được công bố, tác vụ gốc không ở trạng thái failed/cancelled/expired và trạng thái cục bộ là unknown hoặc trạng thái tác vụ gốc là completed. | Bước tiếp theoGiữ lại id và operation\_id ban đầu (cùng ID video công khai), phản hồi và tiêu đề; chỉ đọc trạng thái/nội dung ban đầu. Tuyệt đối không gửi yêu cầu tạo mới. |
| Phản hồi422 · `price_unavailable` | Điều kiệnKhông thể phân tích đối tượng frame\_images được cung cấp hoặc hồ sơ điều kiện của nó, hoặc hồ sơ đã phân tích đầy đủ chưa có bảng giá sẵn sàng áp dụng khớp chính xác với hồ sơ đó. | Bước tiếp theoGiữ lại model, prompt, duration, resolution, aspect\_ratio và generate\_audio. Thêm frame\_images chứa đúng một mục first\_frame theo định dạng đối tượng quy định. Đặt duration=4, resolution="720p", aspect\_ratio="16:9" và generate\_audio=false. Bước xác thực này chạy trước khi gửi yêu cầu. |

### Bí danh

#### Bí danh mô hình

**Ailoot Ultra** [`google/veo-3.1-lite`](https://ailoot.ai/models/vi/#m=google%2Fveo-3.1-lite&route=Ultra&caller=google%2Fveo-3.1-lite&fmt=videos)

#### Bí danh đường dẫn phương thức

`/v1/videos/generations`, `/videos`, `/videos/generations`

#### ID gọi liên quan

[`google/veo-3.1-lite`](https://ailoot.ai/models/vi/#m=google%2Fveo-3.1-lite&route=Ultra&caller=google%2Fveo-3.1-lite&fmt=videos)

FAQ · Google: Veo 3.1 Lite

Có những đầu vào và kết quả nào?

`POST /v1/videos` · `google/veo-3.1-lite`: `text`, `image` → `video`

Yêu cầu sử dụng những trường nào?

`POST /v1/videos` · `google/veo-3.1-lite`: `model`, `prompt`, `duration`, `resolution`, `aspect_ratio`, `generate_audio`, `frame_images`

Kết nối Ailoot với Claude Code, OpenCode, Hermes hoặc ứng dụng của bạn.

## Công ty và danh mục dự án của công ty

Công ty và danh mục dự án của công ty: hàng triệu khách hàng; doanh số hàng tỷ mỗi tháng.

## Mua token với giá ưu đãi.

Ưu đãi thuê bao cho nhu cầu thường xuyên. Mã khuyến mãi giảm đến 50% khi mua token.

Thuê bao

Chọn gói ưu đãi cho các yêu cầu thường xuyên của bạn.

Mã giảm đến 50%

Nhập mã khi mua. Giá được tính lại theo chương trình đang áp dụng.

Chi phí trong lịch sử

Mô hình, token và số tiền được lưu cho mỗi yêu cầu.

[Chọn gói thuê bao](https://ailoot.ai/docs/vi/billing/subscriptions/) · [Xem giá mô hình](https://ailoot.ai/models/vi/)

## Kết nối API vào sản phẩm bạn đang bán.

SaaS, ứng dụng và bot — theo đề nghị giao kết chính thức và thỏa thuận cấp phép Ailoot. Muốn bán lại, hãy yêu cầu giấy phép bán lại.

Ứng dụng thương mại

Tích hợp tạo văn bản, ảnh, video và âm thanh vào các tính năng trả phí của dịch vụ.

Giấy phép bán lại

Gửi mô tả dự án và cách cung cấp quyền truy cập. Yêu cầu điều khoản sử dụng và bán lại bằng văn bản.

Tài liệu trên website

Đề nghị giao kết, thỏa thuận cấp phép và chính sách xử lý dữ liệu có sẵn trước khi kết nối.

[Yêu cầu giấy phép bán lại](mailto:support@ailoot.ai) · [Đề nghị giao kết và thỏa thuận cấp phép](https://ailoot.ai/legal/offer?lang=vi)

## Ailoot · Công ty và danh mục dự án của công ty





Ailoot dựa trên kinh nghiệm vận hành tích lũy, cơ sở khách hàng lớn, dịch vụ ổn định và việc kiểm soát KPI liên tục.





Công ty và danh mục dự án của công ty: hàng triệu khách hàng; doanh số hàng tỷ mỗi tháng.





Ailoot áp dụng kinh nghiệm vận hành này để cung cấp quyền truy cập API vào các tính năng AI trong sản phẩm của khách hàng, tác tử, ứng dụng và quy trình tự động hóa.
