Trang này dành cho bạn nào muốn dùng full pipeline — có cả tạo voice tự động bằng AI, render video Remotion, chứ không chỉ index asset.Toàn bộ lệnh trong trang này gõ trong Terminal. Mở: nhấn
Ctrl + Alt + T (Ubuntu, Mint, Pop!_OS) hoặc tìm app Terminal trong menu.Hướng dẫn dưới đây dùng Ubuntu/Debian làm mặc định (lệnh apt). Nếu bạn dùng Fedora/Arch, mỗi step sẽ có lệnh tương đương.Bạn sẽ cài 4 phần mềm
| Phần mềm | Vai trò (dùng để làm gì?) | Bắt buộc? |
|---|---|---|
| Python 3.10+ | Ngôn ngữ chạy mọi tool & skills trong repo (asset index, audio dedupe, semantic mapper…) | Có |
| ffmpeg + ffprobe | Bộ công cụ chuẩn để đọc/cắt/ghép audio và video. Mọi pipeline media đều cần | Có |
| Node.js 20+ + npm | Chạy renderer Remotion (viết video bằng React) khi tới bước render cuối | Cần nếu sẽ render |
| Git | Tải code mới về (git clone) và update sau này (git pull) | Có (trừ khi tải tarball) |
Các bước
Cài 4 phần mềm bằng package manager
Package manager là gì? Là “App Store của terminal Linux” — mỗi distro có 1 cái: Ubuntu/Debian dùng
Verify:
apt, Fedora dùng dnf, Arch dùng pacman.Ubuntu / Debian / Mint / Pop!_OS:python3+python3-venv+python3-pip— Python kèm modulevenv(môi trường ảo) vàpip(cài thư viện).ffmpeg— kèm luônffprobe.nodejs+npm— Node và package managernpm.git— Git CLI.
Fedora / RHEL / CentOS
Fedora / RHEL / CentOS
Arch / Manjaro / EndeavourOS
Arch / Manjaro / EndeavourOS
openSUSE
openSUSE
Tải repo về máy
~/video-automator-skills/. Mọi lệnh dưới đây đều chạy ở đây.Tạo môi trường Python riêng (.venv) + cài thư viện
Tại sao cần
.venv? Để cài đặt thư viện Python của repo này không đè lên Python hệ thống — sau này muốn xoá repo chỉ cần xoá folder, không ảnh hưởng máy. Một số distro (Debian 12, Ubuntu 23.04+) còn bắt buộc phải dùng venv.python3 -m venv .venv— tạo folder ẩn.venv/chứa bản Python riêng cho repo..venv/bin/python -m pip install --upgrade pip— nâng cấppip(trình quản lý thư viện) trong.venvlên bản mới.pip install -r tools/asset_index/requirements.txt— đọc danh sách thư viện trong filerequirements.txtrồi cài tự động.
Tạo file .env và điền API keys
API key là gì? Là “mật khẩu” để repo gọi dịch vụ AI (OpenAI, Gemini). Mỗi lần phân tích ảnh/video, repo gửi yêu cầu đến server OpenAI/Gemini — server kiểm tra key trước khi trả lời.Tạo file Không điền key theo ví dụ copy rời trong trang này để tránh lệch cấu hình.Hãy mở Cấu hình API keys và làm đúng theo trang đó (nguồn chuẩn duy nhất, luôn cập nhật).Trang đó có đầy đủ:
.env từ template có sẵn:- Biến nào bắt buộc / tuỳ chọn
- Cách tạo từng key
- Ví dụ
.envmới nhất - Cách verify key hoạt động
Cài Remotion skill (chỉ khi sẽ render Remotion)
Bước này bỏ qua nếu bạn chưa render video Remotion.Script này tự cài skill
$remotion-best-practices vào folder .agents/skills/ — khi agent (Cursor, Claude Code) đụng tới Remotion sẽ đọc skill này để biết best practice.Chạy watcher (manual hoặc systemd)
Watcher là gì? Là chương trình chạy ngầm — mỗi khi bạn drop file vào Kiểm tra watcher đã bật:Phải có
raw_assets/, watcher tự phát hiện, gọi AI phân tích, lưu vào DB. Không cần bật/tắt thủ công.Linux có 2 cách chạy watcher, tuỳ nhu cầu:- Cách 1 — Chạy tay (đơn giản)
- Cách 2 — systemd user service (luôn bật)
Chạy trực tiếp trong terminal — đóng terminal là watcher tắt.Khi muốn nó chạy ngầm cả khi đóng terminal, dùng
tmux hoặc screen:pid (số > 0) và last_error: null. Nếu fail, xem Khắc phục sự cố.Verify — test cuối
Test cả pipeline đã sẵn sàng:Phải trả về ≥ 1 kết quả với
- Copy 1 ảnh bất kỳ vào folder
raw_assets/images/. - Đợi ~5-10 giây (watcher debounce + Gemini phân tích + OpenAI embed).
- Search bằng từ khoá khớp nội dung ảnh:
score > 0.5. Nếu không → đọc Khắc phục sự cố.Lưu ý đặc thù Linux
inotify watcher giới hạn (lỗi khi drop nhiều file cùng lúc)
inotify watcher giới hạn (lỗi khi drop nhiều file cùng lúc)
Linux dùng inotify để theo dõi file thay đổi. Mặc định giới hạn ~8K file per user. Nếu repo + assets > giới hạn này, watcher báo lỗi
inotify watch limit reached.Tăng limit:apsw build fail
apsw build fail
Nếu
pip install apsw fail (đặc biệt trên Alpine, Arch tối thiểu): cài SQLite + headers + GCC trước. Xem Bước 3 ở trên.Network drive (NFS, SMB, sshfs) không nhận file mới
Network drive (NFS, SMB, sshfs) không nhận file mới
inotify chỉ hoạt động trên filesystem local. Nếu
raw_assets/ nằm trên NFS/SMB/sshfs, watcher sẽ không thấy file mới. Có 2 cách:- Đặt
raw_assets/trên local disk (khuyến nghị). - Bật polling mode (chậm hơn nhưng work với mọi FS):
Chạy trên server không có GUI
Chạy trên server không có GUI
Hoàn toàn ổn. Dùng Cách 2 — systemd user service ở trên +
loginctl enable-linger. SSH vào và systemctl --user status vas-watcher để check.Xong rồi! Tiếp theo làm gì?
Hiểu các API keys
Vai trò từng key, link tạo, giới hạn quota miễn phí.
Sử dụng cơ bản
Drop file → search → status — workflow hằng ngày.
Cấu trúc dự án
Hiểu vai trò các thư mục
skills/, jobs/, tools/.Khắc phục sự cố
8 lỗi hay gặp + cách xử lý.