OpenShorts cắt video dài thành clip dọc: chạy thử và những điều chưa rõ
OpenShorts là repo mã nguồn mở cắt podcast, webinar thành clip dọc có phụ đề. Bài kể lại lần chạy thử theo README, lỗi Docker gặp phải, giấy phép và những điều chưa kiểm chứng.

OpenShorts là một repo mã nguồn mở cắt video dài (podcast, webinar, livestream) thành các clip dọc 9:16 có phụ đề, và gần đây được nhắc nhiều trong nhóm công cụ làm video ngắn. Chúng tôi đã tải về để chạy thử theo README. Kết quả: phần cài bằng Docker không chạy được trên máy thử, và bài này kể lại rõ chỗ đó, kèm những gì đọc được từ tài liệu.
Nếu bạn làm nội dung hoặc bán hàng và đang mất nhiều giờ cắt thủ công từ một buổi quay dài, bài này giúp bạn biết công cụ này làm gì, cần gì để chạy, và đâu là chỗ nên kiểm tra trước khi đầu tư thời gian.
Tóm tắt nhanh
Thông tin ghi nhận ngày 04/10/2026, từ README của repo và trang chủ openshorts.app.
- OpenShorts gồm ba phần: Clip Generator (cắt video dài thành clip dọc), AI Shorts (video UGC có diễn viên AI) và YouTube Studio (tiêu đề, thumbnail, mô tả).
- Bản tự dựng (self-host) dùng giấy phép MIT cho phần lõi. Theo trang repo, thư mục
cloud/dùng giấy phép thương mại riêng. Hãy đọc fileLICENSEvàNOTICEtrong repo trước khi dùng cho dịch vụ trả phí. - Chạy tại máy cần Docker, khoảng 8GB RAM trở lên theo khuyến nghị, và khoá API của chính bạn (Gemini, ElevenLabs, fal.ai tuỳ tính năng).
- Commit gần đây trong bản chúng tôi tải về là ngày 01/10/2026.
- Chúng tôi chưa chạy được quy trình cắt clip: Docker không tải được image nền từ registry trên máy thử, và chúng tôi không dùng khoá API trả phí.
- Chưa kiểm chứng: tốc độ 5-8 phút cho video 8 phút trên CPU, chi phí mỗi video AI Shorts, chất lượng chọn khoảnh khắc với tiếng Việt.
OpenShorts làm gì
Theo README, Clip Generator đi qua các bước: nhận video (tải lên hoặc qua URL), chuyển giọng nói thành chữ bằng faster-whisper có mốc thời gian từng từ, tách cảnh bằng PySceneDetect, nhờ Gemini chọn từ 3 đến 15 khoảnh khắc đáng cắt (mỗi đoạn 15-60 giây), cắt bằng FFmpeg, rồi dựng lại khung dọc và gắn phụ đề, dòng hook.
Phần dựng lại khung dọc là chỗ README nói kỹ. Có bốn chế độ: TRACK bám theo khuôn mặt (MediaPipe và YOLOv8), GENERAL giữ nguyên cảnh rộng trên nền mờ, SPLIT xếp hai người nói chuyện chồng lên nhau và đặt phụ đề ở đường nối, và SCREENCAST cho video chia sẻ màn hình. Theo README, Gemini tự chọn chế độ cho từng video, hoặc bạn ép chế độ từ dashboard.
Nói đơn giản: bạn đưa vào một buổi talk dài một tiếng, công cụ đề xuất vài đoạn đáng xem, và xuất ra file dọc đã có chữ. Các dịch vụ trả phí như Opus Clip cũng làm việc này. Điểm khác là bạn tự giữ mã và dữ liệu.
Ba phần trong một repo
Clip Generator là phần cốt lõi như trên.
AI Shorts tạo video UGC cho sản phẩm: quét website hoặc nhận mô tả, viết kịch bản theo cấu trúc hook, vấn đề, giải pháp, CTA, tạo diễn viên AI bằng Flux 2 Pro, thêm giọng ElevenLabs, dựng video nói chuyện (Hailuo 2.3 Fast kèm VEED Lipsync ở chế độ rẻ, Kling Avatar v2 ở chế độ cao), thêm b-roll rồi ghép bằng FFmpeg. README ghi chi phí khoảng 0,65 USD mỗi video ở chế độ Low Cost và 2 USD ở Premium. Chúng tôi chưa kiểm chứng các con số này.
Một điểm cần lưu ý cho người làm tiếng Việt: phần liệt kê giọng đọc trong README chỉ nêu tiếng Anh và tiếng Tây Ban Nha. Tiếng Việt cho AI Shorts chưa được xác nhận.
YouTube Studio gợi ý tiêu đề, tạo thumbnail với khuôn mặt chèn sẵn, viết mô tả có mốc chương từ bản chép lời. Phần này ít liên quan đến bài toán cắt clip nên chúng tôi không đi sâu.
Chạy thử thực tế
Môi trường: máy Windows 10 có Docker Desktop 28.3.3, Git, Node 24 và Python 3.13. Không có GPU NVIDIA được dùng trong lần thử này.
Chúng tôi làm đúng các bước trong phần Getting Started của README:
git clone --depth 1 https://github.com/mutonby/openshortscd openshortscp .env.example .envdocker compose up --build -dLệnh git clone mất khoảng 7 giây. Khi đó Docker Desktop chưa bật, nên chúng tôi mở nó lên và đợi daemon sẵn sàng.
Sau đó docker compose up --build dừng ngay (chưa đến 2 giây) với lỗi khi tải thông tin image nền: failed to do request: Head "https://registry-1.docker.io/v2/library/node/manifests/18-bookworm-slim": EOF. Cả ba dịch vụ (backend, frontend, renderer) đều lỗi ở bước tải metadata. Chúng tôi đợi 40 giây rồi chạy lại, kết quả giống hệt.

Ảnh trên là nguyên văn đầu ra của lệnh build: các dòng ERROR đều trỏ về registry-1.docker.io. Đây là lỗi mạng giữa máy thử và Docker Hub, không phải lỗi của OpenShorts. Chúng tôi không biết nguyên nhân chính xác (có thể do mạng, proxy hoặc cấu hình Docker Desktop) và không thử vòng qua.
Vì Docker bị chặn, chúng tôi thử phương án nhẹ hơn để còn nhìn thấy giao diện: chạy riêng thư mục dashboard bằng npm. Lưu ý đây không phải cách README hướng dẫn.
cd dashboardnpm install --no-audit --no-fundnpx vite --port 5175 --host 127.0.0.1npm install xong trong khoảng 7 giây, Vite báo sẵn sàng sau chưa đến 1 giây, và địa chỉ http://127.0.0.1:5175/ trả HTTP 200. Chúng tôi mở bằng Playwright Chromium khung 1600x900 và chụp lại.

Ảnh cho thấy trang giới thiệu của dashboard: tiêu đề "the free open source ai clip generator", ô dán link video, nút "launch app", và khung xem trước dọc 9:16 với các thông số như 3-15 clip, hơn 30 ngôn ngữ lồng tiếng. Đây mới chỉ là phần giao diện phía trước, chưa có backend phía sau, nên chúng tôi không bấm cắt thử video nào.
Tóm lại, những gì đã kiểm chứng: repo tải được, giao diện dashboard dựng lên được bằng npm. Những gì chưa kiểm chứng: toàn bộ pipeline cắt clip, phụ đề, nhận diện khuôn mặt, tốc độ xử lý, và chất lượng với tiếng Việt.
Cần gì để tự chạy
Từ README, danh sách khá rõ:
- Docker và Docker Compose, khoảng 8GB RAM trở lên.
- Khoá Gemini (có gói miễn phí theo README) cho việc chọn khoảnh khắc, đọc khung hình để chọn bố cục, viết hook.
- Khoá fal.ai (tính tiền theo lượt dùng) nếu dùng AI Shorts.
- Khoá ElevenLabs nếu cần lồng tiếng hoặc giọng đọc.
- Khoá Upload-Post nếu muốn đăng thẳng lên TikTok, Instagram, YouTube. README ghi 10 lượt đăng miễn phí mỗi tháng.
Với GPU NVIDIA, README có hướng dẫn thêm file docker-compose.override.yml và vài biến môi trường như WHISPER_DEVICE=cuda. README nói nhờ đó video 8 phút xử lý trong khoảng một phút thay vì 5-8 phút. Chúng tôi chưa thử.
Lưu ý thực tế: tự dựng không tốn tiền bản quyền phần mềm, nhưng tốn máy, thời gian bảo trì và phí API. README tự nói rõ điều này.
Chạy không cần khoá Google
Một chi tiết đáng chú ý cho ai quan tâm quyền riêng tư: README mô tả cách trỏ bộ chọn khoảnh khắc sang một mô hình cục bộ qua biến LLM_BASE_URL, ví dụ Ollama.
LLM_BASE_URL=http://host.docker.internal:11434/v1LLM_MODEL=qwen2.5:14bTheo README, khi đó chỉ phần chép lời (không phải video) được dùng để chọn đoạn, và nếu dùng mô hình cục bộ thì không gửi gì ra ngoài ở bước này. Nhưng những việc cần nhìn khung hình (tự chọn bố cục, nhận diện nội dung trên màn hình) vẫn cần Gemini; thiếu khoá thì rơi về chế độ cắt bám mặt đơn giản. Video không có lời nói cũng không dùng được.
README còn cảnh báo Ollama mặc định cắt ngữ cảnh ở 4096 token và khuyên đặt OLLAMA_CONTEXT_LENGTH=16384. Mô hình 7-8B thường trả JSON ổn, mô hình 3B thì không. Chúng tôi chưa kiểm chứng điều này với tiếng Việt.
Dùng với agent qua MCP
OpenShorts có sẵn máy chủ MCP. Theo README, bản tự dựng gắn vào Claude Code bằng một lệnh:
claude mcp add --transport http openshorts http://localhost:8000/mcpCác công cụ được liệt kê gồm process_video, create_upload, get_job_status, list_clips, get_quota, add_subtitles, recut_clip và publish_clip. Ý tưởng là bạn nói với agent "cắt podcast này và lên lịch ba clip lên TikTok" và nó gọi chuỗi công cụ đó. README cũng có endpoint REST và webhook báo khi job xong, hợp với n8n.
Với bản tự dựng, endpoint này chỉ hoạt động khi máy bạn đang bật. Muốn chạy liên tục thì phải có máy chủ riêng, hoặc dùng bản đám mây.
Bản đám mây và giá
Theo trang openshorts.app (xem ngày 04/10/2026): gói miễn phí cho video đầu tiên tới 60 phút, sau đó 20 phút mỗi tháng và có watermark; gói trả phí từ 12 USD mỗi tháng cho 100 phút không watermark. Trang này nói bản đám mây dùng GPU, xử lý video 8 phút trong khoảng 50 giây, khoá Gemini đã gồm sẵn. Chúng tôi chưa thử bản đám mây nên chưa xác nhận các con số.
Bảng so sánh với Opus Clip, CapCut, Vizard trong README do chính nhóm làm repo viết. Hãy coi đó là thông tin từ phía nhà phát triển, không phải đánh giá độc lập.
Ý nghĩa với người làm nội dung và bán hàng
Cắt clip từ video dài là việc lặp lại nhiều, và đó là chỗ công cụ kiểu này phù hợp để thử trước. Một buổi livestream bán hàng hay một buổi chia sẻ chuyên gia có thể cho ra vài clip dọc mỗi tuần, thay vì để video nằm im.
Có ba điểm nên cân nhắc trước khi đưa vào quy trình thật.
- Tiếng Việt. Gemini và faster-whisper nói chung hỗ trợ nhiều ngôn ngữ, nhưng README không nêu chất lượng cho tiếng Việt. Hãy thử với một video ngắn của bạn và đọc kỹ phụ đề trước khi đăng. Phụ đề lệch hoặc mất dấu là lỗi dễ gặp ở nhiều công cụ cắt clip, nên đây là chỗ cần kiểm tra bằng mắt.
- Chọn khoảnh khắc không thay biên tập viên. AI chọn đoạn theo bản chép lời. Nó không biết đoạn nào hợp thương hiệu, đoạn nào lỡ lời hay chứa thông tin không nên đăng. Người duyệt vẫn cần.
- Giấy phép và dữ liệu. Phần lõi MIT cho phép dùng thương mại, nhưng thư mục
cloud/có điều khoản riêng. Nếu bạn định bán dịch vụ cắt clip cho khách, hãy đọc văn bản gốc, chúng tôi không tư vấn pháp lý. Ngoài ra, video hoặc bản chép lời của khách hàng đi qua API bên thứ ba (Gemini, ElevenLabs) nếu bạn không dùng mô hình cục bộ.
Với bán hàng, phần AI Shorts nghe hấp dẫn vì không cần quay. Nhưng hiện chưa rõ chất lượng giọng và khẩu hình tiếng Việt, và chi phí thực tế sẽ phụ thuộc vào số lần tạo lại. Chúng tôi sẽ không dựa vào nó cho đến khi tự chạy thử.
Nên làm gì tiếp
Nếu muốn thử, cách đơn giản là dùng gói miễn phí trên openshorts.app với một video ngắn tiếng Việt để xem chất lượng phụ đề và chọn đoạn, trước khi tốn công dựng Docker. Nếu kết quả ổn và bạn cần riêng tư hoặc chạy hàng loạt, lúc đó mới tự dựng, nên là máy có GPU NVIDIA.
Nếu Docker trên máy bạn tải được image bình thường, quy trình bốn lệnh ở trên là điểm bắt đầu. Khi có thêm kết quả chạy thật (thời gian xử lý, lỗi gặp, chất lượng phụ đề tiếng Việt), chúng tôi sẽ bổ sung.
Kết
OpenShorts đáng thử nếu bạn có nhiều video dài cần cắt và chấp nhận tự lo khoá API. Với lần chạy này, chúng tôi chỉ xác nhận được repo tải được và giao diện dựng lên được; chất lượng cắt clip tiếng Việt vẫn còn bỏ ngỏ, và bạn nên tự thử trước khi tin vào bất kỳ con số nào trong tài liệu.

