Hello ae,
Hiện nay, việc tích hợp Generative AI vào workflow là xu hướng tất yếu. Tuy nhiên, chi phí API cho các model xịn thường khá "chát". Gần đây, mình có xem được video hướng dẫn của bạn Hong Vu chia sẻ về cách sử dụng Veo 3 Ultra trên n8n qua Access Token, tiện quá nên làm lại bài chi tiết và workflow cho mọi người test. Với 45.000 credit miễn phí với tài khoản Gemini Ultra thì việc tự động hoá được luồng tạo sẽ tối ưu được rất nhiều cho việc xây kênh.
Bài viết này sẽ chia sẻ cách Reverse Engineering (dịch ngược) API để đưa Veo 3 Ultra vào n8n. Tut này giúp anh em xây dựng quy trình tự động hóa tạo video/ảnh chất lượng cao gần như "không giới hạn" mà không tốn tiền mua API bên ngoài.
Tại sao nên chơi kèo này?
- Gần như Free & Khủng: 45.000 credit là con số rất lớn, đủ để anh em "bào" hàng ngàn bức ảnh hoặc video mỗi tháng. Giá Veo 3 Ultra giờ cũng khá rẻ, đâu đó 50k.
- Chất lượng Top Tier: Veo 3 Ultra (Video) và Nano Banana Pro (Ảnh) hiện tại đang thuộc hàng top về độ chi tiết và tuân thủ prompt.
- Automation hóa: Đưa vào n8n giúp anh em kết nối với Telegram, Drive, Tiktok... để làm content tự động 100%.
Bước 1: Chuẩn bị "Đồ nghề" (Project ID & Token)
Để n8n giả lập được trình duyệt của anh em, chúng ta cần 2 thông số: Project ID và Access Token.
1. Lấy Project ID
- Truy cập công cụ Flow của Google Labs: https://labs.google/fx/tools/flow
- Bấm "New Project".
- Nhìn lên thanh địa chỉ, copy dãy ký tự sau chữ
project/.- Ví dụ:
.../project/67b83727-7a14-4d91-869b-5aa43bc28135-> ID là67b83727-7a14-4d91-869b-5aa43bc28135.
- Ví dụ:
2. Lấy Access Token (Quan trọng)
- Truy cập link này (khi đã login Google): https://labs.google/fx/api/auth/session
- Anh em sẽ thấy một đoạn JSON, copy toàn bộ chuỗi trong trường
access_token.
⚠️ Lưu ý: Token này thường sống được khoảng 24 giờ. Mỗi ngày trước khi chạy tool, anh em chịu khó vào lấy lại token mới update vào n8n nhé. (Muốn tự động hoàn toàn thì nghiên cứu thêm Puppeteer để auto lấy token).
Bước 2: Setup n8n để tạo ảnh (Nano Banana Pro)
Mình đi từ tạo ảnh trước vì nó đơn giản và trả kết quả ngay.
1. Cấu hình Node HTTP Request
-
Method:
POST -
Authentication:
Generic Credential Type->Header Auth(Hoặc Bearer Token). -
Value: Dán Access Token vừa lấy vào (Format:
Bearer <token>).
2. Lấy Endpoint & Payload
Anh em mở F12 (Tab Network) trên trình duyệt, thực hiện tạo thử 1 ảnh để bắt request flowMedia:batchGenerateImages.
Endpoint URL:
https://aisandbox-pa.googleapis.com/v1/projects/{{ $json.projectID }}/flowMedia:batchGenerateImages(Nhớ thay Project ID bằng biến để tái sử dụng).Body (JSON): Copy object từ tab Payload (F12).
Dưới đây là mẫu JSON mình đã tối ưu (đã thêm hàm random seed để không bị trùng ảnh):
JSON tạo ảnh NGANG:
{
"requests": [
{
"clientContext": {
"sessionId": ";{{ $now.toMillis() }}",
"projectId": "{{ $json.projectID }}",
"tool": "PINHOLE"
},
"seed": {{ Math.floor(Math.random() * 900000) + 100000 }},
"imageModelName": "GEM_PIX_2",
"imageAspectRatio": "IMAGE_ASPECT_RATIO_LANDSCAPE",
"prompt": "{{ $json.prompt }}",
"imageInputs": []
}
]
}
JSON tạo ảnh DỌC:
{
"requests": [
{
"clientContext": {
"sessionId": ";{{ $now.toMillis() }}",
"projectId": "{{ $json.projectID }}",
"tool": "PINHOLE"
},
"seed": {{ Math.floor(Math.random() * 900000) + 100000 }},
"imageModelName": "GEM_PIX_2",
"imageAspectRatio": "IMAGE_ASPECT_RATIO_PORTRAIT",
"prompt": "{{ $json.prompt }}",
"imageInputs": []
}
]
}
Kết quả sau khi chạy node, anh em sẽ nhận được URL ảnh. Dùng thêm 1 node HTTP Request (GET) để tải về là xong.
Thành quả demo:
Bước 3: Setup n8n tạo Video (Veo 3 Ultra)
Video không trả về ngay mà phải chờ render, nên chúng ta cần cơ chế Polling (Vòng lặp kiểm tra trạng thái).
1. Endpoint tạo Video
-
URL:
https://aisandbox-pa.googleapis.com/v1/video:batchAsyncGenerateVideoText - JSON Body (Video Ngang - Ultra):
{
"clientContext": {
"sessionId": ";{{ $now.toMillis() }}",
"projectId": "{{ $json.projectID }}",
"tool": "PINHOLE",
"userPaygateTier": "PAYGATE_TIER_ONE"
},
"requests": [
{
"aspectRatio": "VIDEO_ASPECT_RATIO_LANDSCAPE",
"seed": {{ Math.floor(Math.random() * 900000) + 100000 }},
"textInput": {
"prompt": {{ JSON.stringify($json.prompt) }}
},
"videoModelKey": "veo_3_1_t2v_fast_ultra"
}
]
}
Mẹo: Muốn video dọc thì đổi
aspectRatiothànhVIDEO_ASPECT_RATIO_PORTRAITvàvideoModelKeythànhveo_3_1_t2v_fast_portrait_ultra.
2. Xử lý quy trình chờ (Polling Loop)
Sau khi gửi lệnh tạo, server trả về Pending. Anh em cần setup workflow như sau:
- Node Wait: Chờ khoảng 30-50s (Veo render khá lâu).
-
Node Check Status: Gửi request kiểm tra xem xong chưa.
-
URL:
https://aisandbox-pa.googleapis.com/v1/video:batchCheckAsyncVideoGenerationStatus - Body:
{ "operations": [ { "operation": { "name": "{{ $json.operations[0].operation.name }}" } } ] } -
URL:
-
Node If/Switch:
- Nếu
Pending-> Quay lại node Wait. - Nếu
Successful-> Lấy link video.
- Nếu
Video demo nhận được:
Một số lưu ý "sống còn" để workflow ổn định
- Rate Limit (Lỗi quá tải): Nếu anh em chạy tạo ảnh xong tạo video ngay lập tức, Google hay chặn vì spam. Hãy chèn một node Wait (5-10s) giữa các tác vụ để "nghỉ lấy hơi".
- JSON Syntax: Chú ý dấu phẩy, ngoặc nhọn. Copy y chang mẫu trên là an toàn nhất.
- Prompt: Nên dùng tiếng Anh để AI hiểu tốt nhất. Có thể kẹp thêm node Google Translate hoặc ChatGPT để dịch prompt tiếng Việt sang trước khi gửi cho Veo.
Kèo này tuy hơi thủ công đoạn lấy Token mỗi ngày (nếu không dùng tool auto), nhưng đổi lại anh em được tiếp cận công nghệ Video AI xịn nhất của Google hoàn toàn miễn phí.
Anh em có thể tải Workflow mẫu mình đã build sẵn về import vào n8n dùng luôn cho tiện:
👉 Download Workflow Veo 3 Ultra for n8n

Top comments (0)