◆ booting phatdev.net
<PhatLam/>
000%
← Tất cả case study
AI và nội dung · AI · Facebook

IGA Social: 303 clip dựng xong, 293 lên YouTube, lịch Facebook cả tuần soạn bằng một nút

Một cửa hàng đá quý cần đăng bài đều, mà caption viết tay mỗi lần một kiểu và AI viết tự do thì hay bịa. Mình gom việc vào một ứng dụng nội bộ: AI chỉ soạn nháp trong luật, người duyệt luôn là người quyết.

Đăng 8/11/2026 · 7 phút đọc

IGA Social: 303 clip dựng xong, 293 lên YouTube, lịch Facebook cả tuần soạn bằng một nút
Khách hàng
IGA (Infinity Gems An Thịnh), cửa hàng đá quý
Lĩnh vực
Đá quý và vật phẩm phong thuỷ, nội dung mạng xã hội
Năm
2026
Vai trò
Kế hoạch, kiến trúc và vận hành (code viết cùng Claude Code)
Thời gian
Ghi nhận từ tháng 10/2026, đang dùng nội bộ hằng ngày
Công nghệ
  • Next.js 15
  • React 19
  • Docker
  • FFmpeg
  • Sharp
  • Playwright
  • Facebook API
  • YouTube API
303
clip video đã dựng xong trong kho
293
clip đã đưa lên YouTube
4.556
sản phẩm trong danh mục, đồng bộ mỗi ngày
77
điểm cuối API trong ứng dụng

Bối cảnh

IGA (Infinity Gems An Thịnh) là cửa hàng bán đá quý, đá bán quý và vật phẩm phong thuỷ. Một cửa hàng như vậy cần đăng bài đều đặn: ảnh sản phẩm, video ngắn, caption, bài trên Facebook và YouTube.

Trước khi có công cụ này, việc đó rải ra nhiều chỗ. Clip quay bằng điện thoại nằm trong máy hoặc trong một nhóm chat. Thông tin sản phẩm nằm trên web bán hàng. Caption thì viết tay, mỗi lần một kiểu.

Mình làm IGA Social, một ứng dụng web nội bộ gom các việc đó vào một chỗ. Nó không tự đăng mọi thứ. AI soạn nháp, người duyệt xem và quyết định, rồi bài mới đi.

Sơ đồ đường đi từ web bán hàng và clip điện thoại, qua AI soạn nháp và dựng video, tới người duyệt, rồi ra Fanpage, YouTube và trang giới thiệu
Đường đi của nội dung: người duyệt nằm ở giữa, trước mọi thứ được đăng ra ngoài.

Thách thức

Có ba chuyện làm cửa hàng đá quý khó đăng bài đều.

Thứ nhất là sức người. Mỗi bài cần chọn món, chọn ảnh, viết chữ, dựng video, hẹn giờ. Công việc này lại rải ra nhiều nơi, nên rất dễ đứt giữa chừng.

Thứ hai là AI viết tự do rất dễ sai. Nó bịa chi tiết không có thật, hoặc hứa công dụng phong thuỷ quá đà. Kiểu nội dung đó dễ bị Facebook gỡ và làm mất uy tín cửa hàng. Một caption công khai cũng không được lộ giá.

Thứ ba là dữ liệu nằm ở nhiều nơi: web bán hàng có hơn bốn nghìn món, clip nằm trong điện thoại, mô tả YouTube viết tay. Khi mỗi kênh ghi một kiểu thì thông tin dễ lệch nhau.

Cách làm

1. Một ứng dụng, dữ liệu là tệp chép được

IGA Social là một ứng dụng Next.js 15 đóng gói trong Docker, có giao diện quản trị, 77 điểm cuối API (các địa chỉ để ứng dụng và tiện ích trao đổi dữ liệu) và một worker (tiến trình chạy nền) quét việc mỗi phút.

Mình chọn không dùng cơ sở dữ liệu. Mỗi bộ dữ liệu (sản phẩm, ảnh, caption, video, lịch, tài khoản) là một tệp JSON. Lý do rất thực tế: khi sao lưu hay khôi phục chỉ cần chép thư mục. Mỗi lần ghi đi qua một tệp tạm rồi mới đổi tên, nên mất điện giữa chừng không làm hỏng tệp chính.

Đăng nhập dùng chung dịch vụ xác thực của các ứng dụng nội bộ khác, phiên có hiệu lực 14 ngày.

2. Lịch cả tuần bằng một nút, AI chỉ viết trong khuôn

Ở mục FB Sync, bấm "Soạn tuần mới" là ra 7 bài ở trạng thái chờ duyệt. Hệ thống chọn món theo vòng xoay, ưu tiên món ít được đăng nhất. Nó xoay 7 góc viết (sản phẩm, kiến thức, mẹo, hỏi đáp, hậu trường, quà tặng, phong thuỷ) và luân phiên 3 giọng văn: chuyên gia, cảm xúc, chốt đơn. Các dịp âm lịch như mùng 1, rằm, Phật Đản, Vu Lan được gắn sẵn kèm một góc viết gợi ý.

Mỗi bài hiện như một thẻ Facebook, kèm bốn nút: Duyệt, Sửa hoặc góp ý, Viết lại, Bỏ. Chế độ tự đăng mặc định tắt.

Sơ đồ bảy góc viết, ba giọng văn và ba lớp kiểm tra trước khi đăng
Một lượt soạn tuần: bảy góc viết, ba giọng, ba lớp kiểm tra.

Luật viết được đưa thẳng vào hướng dẫn cho AI: phong thuỷ chỉ ở mức nhẹ, cấm cam kết công dụng, cấm những cụm sáo rỗng đặc trưng của văn AI. Viết xong còn một bước lọc bằng quy tắc. Ở khâu đăng, một bộ chặn giá giữ caption công khai không có giá, kể cả bài viết tay. Nếu cùng sản phẩm vừa được đăng vài ngày trước, hoặc phần mở bài giống một bài cũ, hệ thống hỏi lại trước khi đăng.

3. Từ clip điện thoại đến video dọc

Clip vào qua ba đường: tải tay, thả vào thư mục hộp thư, hoặc kéo từ một nhóm chat qua bot nhắn tin. Mỗi clip đi qua một hàng đợi dựng bằng FFmpeg, tối đa 2 việc cùng lúc. Video có đoạn mở, thẻ thông số hai dòng, nhạc nền và đoạn kết, xuất ở 1440x2560 H.264. Nếu clip có giọng nói thì giữ giọng và hạ nhạc xuống.

Mỗi video qua ba lớp kiểm tra: lúc dựng, so với thông số hiện tại của sản phẩm (đổi thông tin thì tự dựng lại), và dò lại từng tệp trước khi gửi. Clip thiếu thông tin bị gắn cờ và không lọt vào lô gửi.

Sơ đồ bốn bước: clip gốc, hàng đợi dựng, ba lớp kiểm tra, đăng
Clip đi qua hàng đợi dựng và ba lớp kiểm tra trước khi đăng.

4. Dữ liệu thật trước, chữ của AI sau

Mô tả YouTube không do AI viết tự do. Nó được lắp từ khuôn: đoạn giới thiệu loại đá do cửa hàng viết sẵn, rồi các dòng loại đá, kích thước, trọng lượng lấy từ dữ liệu thật. Clip chưa gắn với sản phẩm trên web thì mô tả không có dòng giá.

Danh mục sản phẩm là bản phản chiếu những món còn hàng của web bán hàng, chỉ lưu tên, mã, liên kết, nhóm và tình trạng, chưa tải ảnh. Chỉ khi một món được chọn để làm nội dung, hệ thống mới tải ảnh, đổi sang WebP và tạo trang giới thiệu công khai có dữ liệu có cấu trúc cho công cụ tìm kiếm. Ảnh gốc luôn được giữ để đăng.

Trang danh mục công khai ở bản máy tính: các nút chọn mệnh và lưới sản phẩm đá
Trang danh mục công khai do ứng dụng tạo ra, có nút lọc theo mệnh (đã che giá và tên cửa hàng).

Kết quả

Các số dưới đây lấy từ trang dự án và tài liệu IGA Social, ghi nhận ngày 22/10/2026, là số đếm trong ứng dụng đang chạy. Chúng cho biết quy mô đã làm, chưa phải lượt xem hay doanh thu, và mình chưa đo thời gian công việc được tiết kiệm.

Số Nghĩa là gì
303 clip đã dựng xong trong kho
293 clip đã có trên YouTube
4.556 sản phẩm trong danh mục, đồng bộ mỗi ngày từ web bán hàng
77 điểm cuối API trong ứng dụng

Mỗi tuần có sẵn 7 bài nháp để duyệt thay cho việc viết tay từng bài. Mô tả YouTube và thông số trên video cùng lấy từ một nguồn dữ liệu, nên giữa các kênh không lệch nhau. Ứng dụng đang được dùng nội bộ hằng ngày.

Trang giới thiệu công khai của một sản phẩm đáDanh sách sản phẩm công khai
Hai trang công khai của IGA Social trên điện thoại (390 x 844). Phần quản trị cần đăng nhập nên không chụp.

Có một việc chưa làm được. Kênh TikTok đã nối sẵn đăng nhập và API đăng video, nhưng đang chờ TikTok duyệt ứng dụng, nên video chưa lên công khai ở đó.

Bài học

Để AI chạy được trong một cửa hàng, hãy viết luật trước rồi mới bật AI. Luật nằm cả trước khi viết (hướng dẫn) lẫn sau khi viết (bộ lọc, chặn giá, kiểm trùng). Một lớp thôi thì chưa đủ. Cách viết yêu cầu cho AI để nó không bịa mình đã ghi ở bài Viết yêu cầu cho AI sao cho nó làm đúng và không bịa.

Số liệu nên lắp từ dữ liệu thật, không để AI đoán. Thông số, kích thước, mô tả YouTube đều lấy từ sản phẩm. AI chỉ lo phần chữ mềm.

Người duyệt luôn là người quyết. Chế độ tự đăng tắt sẵn, bài mới ở trạng thái chờ duyệt. Mình chọn cách này vì một caption sai đã đăng ra ngoài thì khó rút lại.

Tệp JSON đủ cho một cửa hàng. Nhưng nhớ rằng bản sao lưu hằng đêm của mình chỉ giữ dữ liệu, còn tệp ảnh và video nằm ngoài bản đó. Ảnh gốc được giữ để dựng lại bản web, còn video và các tệp media khác cần một cách giữ riêng.

Cần việc tương tự?

Nếu cửa hàng của bạn đăng bài rời rạc, hoặc bạn muốn AI soạn nháp mà không bịa, gửi mình vài dòng về cách bạn đang làm. Mình sẽ xem dữ liệu sản phẩm và clip hiện có trước, rồi nói rõ phần nào nên để máy làm và phần nào nên giữ cho người duyệt.

AIFacebookYouTubeFFmpegNext.jsContent

Xem thêm