Mục lục bài viết
- Workflow này hoạt động ra sao?
- Những gì cần chuẩn bị trước khi bắt đầu
- Bước 1: Tải và sao chép code JSON của Workflow
- Bước 2: Dán code JSON vào n8n để tạo Workflow
- Bước 3: Chuẩn bị thư mục Google Drive theo đúng chuẩn
- Bước 4: Thiết lập node "Video mới" (Google Drive Trigger)
- Bước 5: Thiết lập node "Tạo mô tả video"
- Bước 6: Thiết lập node "Tags"
- Bước 7: Thiết lập node "Tên Video"
- Bước 8: Thiết lập node "Gemini Model" – vì sao một node phục vụ cả ba nhánh AI?
- Bước 9: Thiết lập node "Tải video mới lên" (Download)
- Bước 10: Thiết lập node "Tải video lên Youtube" (Upload)
- Bước 11: Thiết lập node "Delete File from Upload Folder (Optional)"
- Kiểm tra toàn bộ Workflow và kích hoạt
- Các lỗi thường thấy khi thiết lập Workflow này
- Câu hỏi thường gặp
Workflow này hoạt động ra sao?
Workflow này tự động theo dõi một thư mục Google Drive mỗi phút, khi phát hiện có file video mới được thêm vào, hệ thống sẽ dùng AI để tự sinh ra tiêu đề chuẩn SEO, mô tả hấp dẫn và bộ tag phù hợp dựa trên tên file, sau đó tự động tải video lên Youtube ở chế độ riêng tư kèm đầy đủ metadata vừa tạo, và cuối cùng xóa file gốc khỏi Drive để dọn dẹp thư mục. Toàn bộ quá trình diễn ra không cần con người can thiệp, bạn chỉ cần thả đúng file video vào đúng thư mục, hệ thống sẽ tự xử lý trong vòng 60 giây.
Workflow gồm 8 node chính, hoạt động theo trình tự:
|
Thứ tự |
Tên Node |
Vai trò |
|
1 |
Video mới |
Quét thư mục Google Drive mỗi phút, kích hoạt khi có file mới |
|
2 |
Tạo mô tả video |
AI sinh đoạn mô tả (description) dựa trên tên file |
|
3 |
Tags |
AI sinh danh sách từ khóa (tags) phân cách bằng dấu phẩy |
|
4 |
Tên Video |
AI sinh tiêu đề chuẩn SEO, giới hạn dưới 90 ký tự |
|
5 |
Gemini Model |
Cung cấp mô hình ngôn ngữ Gemini cho cả ba node AI phía trên |
|
6 |
Tải video mới lên |
Tải file video về dạng nhị phân (binary) để chuẩn bị upload |
|
7 |
Tải video lên Youtube |
Đăng video lên YouTube kèm tiêu đề, mô tả, tag vừa tạo |
|
8 |
Delete File from Upload Folder |
Xóa file gốc khỏi Drive sau khi đã xử lý xong |
Những gì cần chuẩn bị trước khi bắt đầu
Trước khi import workflow, hãy đảm bảo bạn có đủ các yếu tố sau:
- Tài khoản n8n (bản Cloud hoặc self-hosted đều dùng được)
- Tài khoản Google để tạo thư mục Google Drive và kết nối YouTube
- File JSON workflow "Tải video từ Google Drive lên Youtube với dữ liệu tạo tự động.json" đã có sẵn
- API Key Google Gemini để kết nối node Gemini Model
- Quyền truy cập Google Cloud Console nếu bạn chưa từng kết nối Google Drive/YouTube với n8n trước đó (để cấp quyền OAuth2)
Bước 1: Tải và sao chép code JSON của Workflow
Mở file JSON workflow bằng một trình soạn thảo văn bản bất kỳ (Notepad, VS Code hoặc Sublime Text).
Nhấn Ctrl + A để chọn toàn bộ nội dung file → nhấn Ctrl + C để sao chép toàn bộ đoạn mã JSON vào clipboard.
Lưu ý: Không cần hiểu nội dung JSON này để làm theo hướng dẫn, bạn chỉ cần sao chép đúng và chính xác toàn bộ nội dung, n8n sẽ tự động dựng lại toàn bộ sơ đồ node từ đoạn mã này.
Bước 2: Dán code JSON vào n8n để tạo Workflow
Có hai cách để đưa workflow vào n8n, chọn cách nào phù hợp với bạn.
Cách 1 – Dán trực tiếp lên canvas (nhanh nhất)
Đăng nhập vào n8n → nhấn "+ Add workflow" để tạo workflow trống mới. Nhấn chuột vào vùng canvas trống (khu vực làm việc màu xám/đen). Nhấn Ctrl + V để dán đoạn JSON đã copy ở Bước 1. n8n tự động nhận diện đây là cấu trúc workflow và dựng lại toàn bộ 8 node với đầy đủ vị trí, kết nối như bản gốc.

Cách 2 – Import từ file (nếu giữ nguyên file .json)
Tạo workflow mới trong n8n. Nhấn vào biểu tượng ba chấm (⋯) ở góc trên bên phải màn hình. Chọn "Import from File". Chọn file JSON từ máy tính → nhấn Open.
Sau khi import thành công, bạn sẽ thấy đúng sơ đồ workflow: node trigger Google Drive nối sang ba node AI chạy tuần tự, tiếp đến node tải file, node đăng lên YouTube và node xóa file, cùng một node Gemini Model nằm riêng bên dưới nối tới cả ba node AI bằng đường nét đứt.
Bước 3: Chuẩn bị thư mục Google Drive theo đúng chuẩn
Workflow này không cần một cấu trúc dữ liệu phức tạp như bảng tính, chỉ cần một thư mục Google Drive cố định để làm nơi thả video vào.
Cách chuẩn bị:
- Truy cập drive.google.com, tạo một thư mục mới, ví dụ đặt tên "Upload YouTube"
- Mở thư mục đó, sao chép ID thư mục từ đường link trên trình duyệt (chuỗi ký tự nằm sau /folders/ trong URL)

- Giữ lại ID này để dán vào node trigger ở Bước 4

Về file video thả vào thư mục, có vài lưu ý kỹ thuật quan trọng cần nắm: định dạng file nên là MP4 để đảm bảo tương thích tốt nhất với YouTube Data API, dung lượng file càng lớn thì thời gian node tải xuống và tải lên càng lâu (một file khoảng 30-40MB thường mất vài chục giây cho mỗi chiều), và quan trọng nhất là file phải được thả trực tiếp vào đúng thư mục gốc đã cấu hình, không được thả vào các thư mục con bên trong, vì trigger sẽ không phát hiện được thay đổi diễn ra trong thư mục con.
Cùng với đó tiêu đề hãy rõ ràng, nội dung trong video nếu có lời thoại cũng phải rõ ràng, như vậy thì phần Mô tả và từ khóa cùng với tiêu đề mới có thể được Gemini tạo phù hợp.
Bước 4: Thiết lập node "Video mới" (Google Drive Trigger)
Nhấn đúp chuột vào node "Video mới" để mở cấu hình.
Tại mục Credential, chọn hoặc tạo mới kết nối Google Drive OAuth2 nếu chưa từng kết nối.
Thiết lập các tham số:
|
Tham số |
Giá trị |
|
Poll Times |
Every Minute (hoặc thay đổi tùy nhu cầu của bạn) |
|
Trigger On |
Changes Involving a Specific Folder |
|
Folder |
Dán ID thư mục đã sao chép ở Bước 3 |
|
Watch For |
File Created |
Lưu ý quan trọng: n8n hiển thị rõ cảnh báo "Changes within subfolders won't trigger this node", nghĩa là node này chỉ theo dõi thay đổi ngay trong thư mục đã chỉ định, hoàn toàn không quét các thư mục con bên trong nó.
Nhấn nút "Fetch Test Event" màu cam để kiểm tra, output trả về sẽ hiển thị thông tin file mẫu gồm loại file (kind: drive#file), phần mở rộng (fileExtension: mp4), quyền sao chép và mã checksum, xác nhận node đã kết nối và đọc được dữ liệu từ thư mục thành công.
Bước 5: Thiết lập node "Tạo mô tả video"
Nhấn đúp chuột vào node "Tạo mô tả video".
Đây là node đầu tiên trong chuỗi ba node AI, có nhiệm vụ sinh ra đoạn mô tả (description) sẽ được dùng khi đăng video lên YouTube.

Thiết lập:
|
Tham số |
Giá trị |
|
Source for Prompt (User Message) |
Define below |
|
Prompt (User Message) |
Tham chiếu đến tên file từ node trigger |
|
Require Specific Output Format |
Tắt (off) |
|
Enable Fallback Model |
Tắt (off) |
Trong ô Prompt (User Message), nội dung tham chiếu đến trường tên file của node trigger để AI có dữ liệu đầu vào xử lý. Ở phần Chat Messages, thêm một Prompt với Type Name or ID là System, nội dung chỉ định rõ ba yêu cầu bắt buộc: viết trực tiếp bài mô tả không kèm lời chào hay giải thích, mở đầu theo mẫu câu xưng "tôi", và bắt buộc chèn từ 3 đến 5 hashtag phù hợp ở cuối bài.
Việc quy định rõ ràng "TUYỆT ĐỐI KHÔNG lời chào, KHÔNG giải thích" trong system message là kỹ thuật quan trọng để ép mô hình ngôn ngữ trả về đúng nội dung cần dùng, tránh tình trạng AI chèn thêm các câu dạng "Dưới đây là mô tả bạn yêu cầu:" vào trước nội dung thực sự, gây lỗi khi nội dung đó được dùng trực tiếp làm mô tả video.
Kết quả trả về của node này được lưu trong trường text, và sẽ được các node phía sau tham chiếu lại bằng cú pháp gọi tên node cụ thể.
Bước 6: Thiết lập node "Tags"
Nhấn đúp chuột vào node "Tags".
Node này chạy ngay sau node "Tạo mô tả video" trong chuỗi tuần tự, nhưng vẫn lấy dữ liệu tên file gốc từ node trigger để sinh ra bộ từ khóa.

Thiết lập:
|
Tham số |
Giá trị |
|
Source for Prompt (User Message) |
Define below |
|
Prompt (User Message) |
Tham chiếu đến tên file từ node trigger |
Ở phần Chat Messages, thêm Prompt với Type Name or ID là System , nội dung yêu cầu AI chỉ trả về danh sách từ khóa phân cách bằng dấu phẩy, không phân nhóm, không gạch đầu dòng, không giải thích thêm. Yêu cầu định dạng nghiêm ngặt này đảm bảo kết quả trả về có thể dùng trực tiếp làm giá trị tag khi đăng video mà không cần xử lý thêm bất kỳ bước làm sạch dữ liệu nào.
Bước 7: Thiết lập node "Tên Video"
Nhấn đúp chuột vào node "Tên Video".
Đây là node cuối cùng trong chuỗi ba node AI, chịu trách nhiệm sinh tiêu đề sẽ hiển thị công khai trên YouTube.
Thiết lập:
|
Tham số |
Giá trị |
|
Source for Prompt (User Message) |
Define below |
|
Prompt (User Message) |
Tham chiếu đến tên file từ node trigger |
Ở phần Chat Messages, thêm Prompt với Type Name or ID là System , nội dung yêu cầu AI chỉ trả về đúng một câu tiêu đề ngắn gọn, giới hạn dưới 90 ký tự, không gạch đầu dòng, không số thứ tự, không đặt trong dấu ngoặc kép, không giải thích thêm.

Về con số 90 ký tự: giới hạn kỹ thuật thực tế của trường tiêu đề video trên YouTube Data API là 100 ký tự, việc quy định AI viết dưới 90 ký tự tạo ra một khoảng đệm an toàn, tránh trường hợp tiêu đề bị YouTube từ chối hoặc cắt cụt nếu AI tính toán độ dài không chính xác tuyệt đối.
Vì sao ba node AI được nối tuần tự thay vì chạy song song cùng lúc từ node trigger? Cả ba node đều chỉ cần đúng một dữ liệu đầu vào là tên file, về lý thuyết có thể tách nhánh chạy đồng thời. Tuy nhiên, thiết kế nối tuần tự giúp kiểm soát thứ tự gọi API tới Gemini rõ ràng hơn, tránh gửi ba yêu cầu cùng lúc có thể chạm giới hạn tốc độ (rate limit) của tài khoản API, đồng thời giúp việc theo dõi log thực thi trong tab Executions trở nên dễ đọc hơn khi các bước hiển thị theo đúng trình tự logic: mô tả trước, tag sau, tiêu đề cuối cùng.
Bước 8: Thiết lập node "Gemini Model" – vì sao một node phục vụ cả ba nhánh AI?
Nhấn đúp chuột vào node "Gemini Model".
Tại mục Credential, nhấn vào ô chọn → tạo mới kết nối nếu chưa có, dán API Key Gemini của bạn vào đúng trường yêu cầu.
Thiết lập:
|
Tham số |
Giá trị |
|
Credential |
Google Gemini(PaLM) Api account |
|
Model |
models/gemini-3.6-flash |
Điểm đáng chú ý nhất ở node này là nó không nằm trên luồng dữ liệu chính (main), mà kết nối tới cả ba node "Tạo mô tả video", "Tags" và "Tên Video" thông qua một loại liên kết riêng gọi là ai_languageModel, thể hiện bằng đường nét đứt màu xanh lá trên sơ đồ thay vì đường nối liền thông thường.
Đây là cái cách n8n cho phép nhiều node AI dùng chung một cấu hình mô hình ngôn ngữ, thay vì phải khai báo API Key và chọn model riêng lẻ ba lần cho ba node khác nhau. Khi bạn cần đổi sang phiên bản model khác hoặc cập nhật API Key mới, chỉ cần sửa một lần tại node Gemini Model này, toàn bộ ba nhánh AI phía trên sẽ tự động áp dụng thay đổi.

Khi chạy thử, bạn có thể thấy node này được gọi ba lần liên tiếp, thể hiện qua chỉ số "Run 3 of 3" trên giao diện, tương ứng với ba lượt gọi từ ba node "Tạo mô tả video", "Tags" và "Tên Video".
Bước 9: Thiết lập node "Tải video mới lên" (Download)
Nhấn đúp chuột vào node "Tải video mới lên".
Node này chỉ chạy sau khi cả ba bước sinh dữ liệu AI đã hoàn tất, đây là thiết kế có chủ đích: việc gọi API sinh văn bản diễn ra nhanh và tốn ít tài nguyên hơn nhiều so với tải xuống một file video dung lượng lớn, nên Workflow ưu tiên hoàn thành các bước AI nhẹ nhàng trước, tránh lãng phí thời gian tải file nếu một trong các bước sinh nội dung gặp lỗi giữa chừng.

Thiết lập:
|
Tham số |
Giá trị |
|
Credential |
Google Drive account |
|
Resource |
File |
|
Operation |
Download |
|
File |
By ID, tham chiếu đến ID file từ node trigger |
Nhấn "Execute step" để kiểm tra. Nếu cấu hình đúng, dữ liệu đầu ra sẽ hiển thị một trường nhị phân (binary) tên là data , kèm thông tin file gồm tên file, phần mở rộng, loại MIME dạng video/mp4 và dung lượng file. Hãy ghi nhớ chính xác tên trường "data" này, vì node tiếp theo cần khai báo đúng tên trường để nhận diện được file nhị phân vừa tải về.
Bước 10: Thiết lập node "Tải video lên Youtube" (Upload)
Nhấn đúp chuột vào node "Tải video lên Youtube".
Tại mục Credential, nhấn "Create New Credential" nếu chưa kết nối YouTube trước đó. Một cửa sổ popup của Google sẽ hiện ra, yêu cầu đăng nhập tài khoản Google và cấp quyền cho n8n quản lý video trên kênh YouTube của bạn, nhấn Allow để hoàn tất.

Thiết lập đầy đủ các tham số:
|
Tham số |
Giá trị |
Giải thích |
|
Resource |
Video |
Xác định thao tác liên quan đến video |
|
Operation |
Upload |
Đăng video mới lên kênh |
|
Title |
Tham chiếu đến kết quả từ node "Tên Video" |
Lấy tiêu đề do AI vừa sinh |
|
Region Code |
Viet Nam - VN |
Mã vùng phát hành video |
|
Category Name or ID |
News & Politics (ID 25) |
Danh mục phân loại nội dung trên YouTube |
|
Input Binary Field |
data |
Phải khớp chính xác với tên trường nhị phân từ node Download ở Bước 9 |
|
Description |
Tham chiếu đến kết quả từ node "Tạo mô tả video" |
Lấy mô tả do AI vừa sinh |
|
Privacy Status |
Private |
Video ở chế độ riêng tư sau khi đăng |
|
Made For Kids |
False |
Khai báo video không hướng đến trẻ em |
|
Tags |
Tham chiếu đến kết quả từ node "Tags" |
Lấy danh sách từ khóa do AI vừa sinh |
Về trường Input Binary Field, đây là điểm kỹ thuật dễ gây lỗi nhất trong toàn bộ workflow: n8n xác định file cần upload bằng cách khớp đúng tên trường nhị phân, nếu node Download ở bước trước xuất ra trường tên "data" nhưng node Upload lại khai báo tìm trường "file" hoặc bất kỳ tên nào khác, quá trình tải lên sẽ thất bại ngay lập tức vì không tìm thấy dữ liệu nhị phân tương ứng.
Về lựa chọn Privacy Status là Private, đây là thiết lập an toàn hợp lý cho một quy trình tự động: video sẽ được đăng lên kênh nhưng chưa hiển thị công khai ngay, cho bạn cơ hội vào YouTube Studio kiểm tra lại tiêu đề, mô tả, tag do AI sinh ra trước khi tự tay đổi sang chế độ công khai hoặc không công khai (unlisted) khi đã ưng ý.
Về Category ID 25 tương ứng với News & Politics, đây chỉ là một trong nhiều mã danh mục YouTube hỗ trợ, bạn có thể đổi sang mã khác tùy nội dung kênh của mình, ví dụ 22 cho People & Blogs, 27 cho Education hay 28 cho Science & Technology, miễn là chọn đúng tên danh mục hiển thị trong dropdown thay vì gõ tay mã số.
Nhấn "Execute step" để kiểm tra, output trả về sẽ hiển thị trường uploadId , chính là mã định danh video vừa được tạo trên YouTube, dùng để xác nhận video đã đăng thành công.
Bước 11: Thiết lập node "Delete File from Upload Folder (Optional)"
Nhấn đúp chuột vào node "Delete File from Upload Folder (Optional)".
Đây là node dọn dẹp cuối cùng, xóa file video gốc khỏi thư mục Google Drive sau khi đã upload thành công lên YouTube, giúp thư mục theo dõi luôn sạch sẽ và tránh workflow xử lý nhầm lại file cũ ở những lần quét tiếp theo.
Thiết lập:
|
Tham số |
Giá trị |
|
Credential |
Google Drive account |
|
Resource |
File |
|
Operation |
Delete |
|
File |
By ID, tham chiếu đến ID file gốc từ node trigger |

Nhấn "Execute step" để kiểm tra, output trả về gồm trường id của file vừa xóa và trường success mang giá trị true , xác nhận file đã được xóa khỏi Drive thành công.
📌 Lưu ý: Node này được đánh dấu "Optional" trong tên gọi, nghĩa là bạn hoàn toàn có thể xóa hẳn node này khỏi workflow nếu muốn giữ lại file gốc trong Drive làm bản lưu trữ, thay vì để hệ thống tự động xóa sau mỗi lần xử lý.
Kiểm tra toàn bộ Workflow và kích hoạt
Sau khi hoàn tất cả 8 node, thực hiện kiểm tra cuối cùng:
- Nhấn nút "Execute workflow" ở dưới canvas để chạy thử toàn bộ luồng một lần
- Theo dõi từng node sáng lên màu xanh (✓) khi chạy thành công
- Mở YouTube Studio, kiểm tra mục Nội dung, xác nhận video vừa upload xuất hiện ở chế độ riêng tư kèm đúng tiêu đề, mô tả và tag
- Mở lại thư mục Google Drive, kiểm tra file gốc đã được xóa khỏi thư mục sau khi xử lý xong
Khi mọi thứ hoạt động đúng, nhấn vào công tắc Active ở góc trên bên phải màn hình workflow để kích hoạt chạy tự động theo lịch, từ giờ bạn chỉ cần thả video vào đúng thư mục Drive, hệ thống sẽ tự vận hành 24/7 mà không cần mở n8n thủ công.
Các lỗi thường thấy khi thiết lập Workflow này
- Lỗi "binary data not found" ở node Upload: Thường do tên trường Input Binary Field không khớp chính xác với tên trường nhị phân do node Download tạo ra. Kiểm tra lại cả hai node đang dùng cùng tên trường, mặc định là "data".
- Node Gemini Model báo lỗi API Key hoặc quota: Kiểm tra API Key Gemini đã được kích hoạt đúng dịch vụ Generative Language API trong Google Cloud Console hay chưa, và tài khoản còn hạn mức sử dụng miễn phí hay không.
- Trigger không kích hoạt dù đã thả video vào thư mục: Nguyên nhân phổ biến nhất là file bị thả nhầm vào một thư mục con bên trong thư mục đang theo dõi, thay vì thư mục gốc đã cấu hình ID chính xác.
- Video bị kẹt ở trạng thái "Đang xử lý" trên YouTube Studio: Đây là hiện tượng bình thường với các file dung lượng lớn hoặc thời lượng dài, không phải lỗi từ workflow. Bạn chỉ cần chờ YouTube xử lý xong phần mã hóa video trước khi đổi sang chế độ công khai.
- Mô tả hoặc tag bị YouTube cắt bớt: YouTube giới hạn mô tả video tối đa 5000 ký tự và tổng độ dài tất cả tag không vượt quá 500 ký tự. Nếu system message của node AI không kiểm soát chặt độ dài, kết quả sinh ra quá dài có thể bị cắt cụt khi đăng.
Câu hỏi thường gặp
Video có thể tự động chuyển sang chế độ công khai ngay sau khi đăng không?
Có thể, chỉ cần đổi giá trị Privacy Status trong node Upload từ Private sang Public hoặc Unlisted. Tuy nhiên nên cân nhắc giữ Private trong giai đoạn đầu để có cơ hội kiểm tra lại nội dung do AI sinh ra trước khi công khai.
Có thể thay Gemini bằng mô hình AI khác không?
Hoàn toàn được. n8n hỗ trợ sẵn các node model khác như OpenAI hay Anthropic, chỉ cần thay thế node Gemini Model bằng node tương ứng và nối lại đúng liên kết ai_languageModel tới ba node Chain LLM, không cần thay đổi cấu trúc luồng dữ liệu chính phía trước và sau nó.
Vì sao phải tải video xuống rồi tải lên lại thay vì chuyển thẳng từ Drive sang YouTube?
Vì YouTube Data API yêu cầu nhận dữ liệu video dưới dạng nhị phân được gửi trực tiếp trong request, n8n cần tải file về bộ nhớ tạm dưới dạng binary trước, sau đó mới có thể đính kèm dữ liệu đó vào yêu cầu upload gửi tới YouTube.
Workflow này có giới hạn số lượng video xử lý mỗi ngày không?
Bản thân workflow không giới hạn, nhưng YouTube Data API áp dụng hạn mức gọi API hàng ngày (quota) cho mỗi project trên Google Cloud, thao tác upload video tốn khá nhiều đơn vị quota mỗi lần, nên nếu xử lý số lượng lớn video mỗi ngày, bạn cần theo dõi mục quota trong Google Cloud Console để tránh bị tạm khóa quyền truy cập API.
Hướng dẫn AI
AI Tools
Học IT
AI
Hàm Excel