SELF HOSTING

ReClip: Trình tải video self-hosted gọn nhẹ với Web UI sạch, hỗ trợ gần như mọi website

Tóm tắt nhanh:

  • ReClip là một trình tải video và audio mã nguồn mở, tự lưu trữ, xây trên Python + Flask và dùng yt-dlp làm engine tải xuống.
  • Điểm mạnh lớn nhất của nó là giao diện web tối giản, không quảng cáo, không phụ thuộc dịch vụ bên thứ ba, và đủ nhẹ để chạy trong homelab cá nhân bằng Docker.
  • ReClip hỗ trợ tải MP4 hoặc trích xuất MP3, cho phép chọn chất lượng, dán nhiều URL cùng lúc và tự loại bỏ link trùng lặp.
  • Nếu bạn muốn một công cụ tải media riêng tư, dễ triển khai và dễ dùng hơn các lệnh yt-dlp thuần CLI, ReClip là một dự án rất đáng thử.

ReClip là một công cụ tải video và audio tự lưu trữ, mã nguồn mở, được thiết kế để giải quyết một nhu cầu rất thực tế: có một downloader cá nhân, sạch sẽ, không quảng cáo, không phụ thuộc web app bên ngoài và vẫn tận dụng được sức mạnh của yt-dlp. Theo mô tả của dự án, bạn chỉ cần dán link từ YouTube, TikTok, Instagram, Twitter/X và hơn 1000 website khác, sau đó tải xuống dưới dạng MP4 hoặc MP3 ngay từ giao diện web.

Với cộng đồng homelab và self-hosted, đây là kiểu ứng dụng rất “đúng gu”. Thay vì phải mở terminal, nhớ cú pháp yt-dlp, chọn format ID thủ công rồi theo dõi tiến trình bằng log, ReClip đặt một lớp Web UI rất gọn lên trên toàn bộ quy trình đó. Điều này giúp công cụ dễ tiếp cận hơn với người dùng phổ thông trong gia đình, đồng thời vẫn giữ được phần lõi mạnh mẽ của yt-dlp và ffmpeg.

Một điểm cộng lớn khác là kiến trúc của ReClip cực kỳ tối giản. Dự án dùng Python + Flask cho backend, giao diện viết bằng HTML/CSS/JS thuần, không framework nặng, không build step phức tạp, và phần backend chỉ khoảng 150 dòng Python. Với những ai thích ứng dụng nhỏ, dễ audit, dễ backup và dễ tự vận hành, đây là lợi thế rất rõ ràng so với nhiều downloader đóng gói cồng kềnh.

Các tính năng chính của ReClip

Điểm hấp dẫn đầu tiên là độ phủ website. ReClip không tự viết extractor riêng mà dựa trên yt-dlp, vì vậy nó kế thừa khả năng tải media từ danh sách website rất rộng, bao gồm YouTube, TikTok, Instagram, Reddit, Facebook, Vimeo, Twitch, SoundCloud, Threads, LinkedIn và nhiều dịch vụ khác. Nếu bạn đã quen với triết lý “để yt-dlp làm phần nặng nhất”, bạn sẽ thấy ReClip đi đúng hướng.

Tính năng thứ hai là lựa chọn đầu ra đơn giản nhưng thực dụng. ReClip hỗ trợ tải video dưới dạng MP4 hoặc trích xuất audio sang MP3. Khi người dùng bấm Fetch, ứng dụng gọi yt-dlp để lấy thông tin video, thumbnail, tiêu đề, uploader và danh sách chất lượng khả dụng. Sau đó bạn có thể chọn độ phân giải nếu có, rồi tải từng file riêng lẻ hoặc tải hàng loạt.

Một chi tiết rất đáng khen là trải nghiệm sử dụng được tối ưu cho thao tác thường ngày: dán nhiều URL cùng lúc, tự loại bỏ URL trùng, hiển thị chất lượng theo độ phân giải và cho phép tải tất cả trong một lượt. Đây không phải kiểu ứng dụng “nhiều menu, nhiều tab”, mà là công cụ tập trung hoàn toàn vào một workflow duy nhất: dán link, chọn kiểu tải, chọn chất lượng, bấm tải.

Hướng dẫn cài đặt ReClip qua Docker

Chuẩn bị trước khi triển khai

Theo Dockerfile chính thức của dự án, ReClip chạy trên python:3.12-slim, cài thêm ffmpeg, mở cổng 8899, đặt biến môi trường HOST=0.0.0.0, và khởi động bằng python app.py. Đây là một cấu hình rất hợp lý cho triển khai self-hosted vì image gọn, phụ thuộc ít và không cần thêm dịch vụ database.

Ngoài Docker, bạn nên chuẩn bị sẵn một thư mục local để mount ra ngoài container nếu muốn giữ lại file đã tải trong các lần nâng cấp hoặc recreate container. Bởi theo mã nguồn, ReClip lưu file tải xuống vào thư mục downloads nằm trong thư mục ứng dụng. Nếu mount volume, bạn sẽ dễ backup hoặc đưa thẳng thư mục đó sang NAS.

Cách 1: Build và chạy bằng Docker thuần

Nếu bạn muốn bám sát cách triển khai chính thức trong README, bạn có thể clone repo rồi build image ngay trên máy chủ:

git clone https://github.com/averygan/reclip.git
cd reclip
docker build -t reclip .
docker run -d \
  --name reclip \
  -p 8899:8899 \
  -e HOST=0.0.0.0 \
  -e PORT=8899 \
  -v $(pwd)/downloads:/app/downloads \
  --restart unless-stopped \
  reclip

Sau khi container khởi động, bạn truy cập http://IP-may-chu:8899 hoặc http://localhost:8899 nếu chạy cục bộ. Cách làm này phù hợp khi bạn muốn giữ nguyên cấu trúc dự án, tự build image và có toàn quyền kiểm soát version.

Cách 2: Dùng Docker Compose cho homelab

README chưa cung cấp sẵn file Compose, nhưng bạn hoàn toàn có thể dựng một docker-compose.yml tối giản dựa trên Dockerfile chính thức của dự án như sau:

services:
  reclip:
    build: .
    container_name: reclip
    ports:
      - "8899:8899"
    environment:
      HOST: 0.0.0.0
      PORT: 8899
    volumes:
      - ./downloads:/app/downloads
    restart: unless-stopped

Khởi động:

docker compose up -d

Cách này rất hợp với người dùng homelab vì dễ version control, dễ tích hợp reverse proxy như Nginx Proxy Manager, Traefik hoặc Caddy, và dễ backup cùng phần còn lại của stack self-hosted. Nếu bạn có thói quen gom tất cả dịch vụ vào Compose, đây là lựa chọn nên ưu tiên.

Nếu không dùng Docker

Dự án cũng cung cấp script reclip.sh để chạy trực tiếp. Script này kiểm tra python3, yt-dlp, ffmpeg, tự tạo virtualenv nếu cần, cài flaskyt-dlp, sau đó chạy app ở cổng mặc định 8899. Đây là cách cài phù hợp cho máy cá nhân hoặc server nhỏ nơi bạn không muốn dùng container.

brew install yt-dlp ffmpeg
git clone https://github.com/averygan/reclip.git
cd reclip
./reclip.sh

Cách sử dụng ReClip qua Web UI

Dán link và chọn kiểu tải

Workflow cơ bản của ReClip rất dễ hiểu. Bạn mở giao diện web, dán một hoặc nhiều URL vào ô nhập, rồi chọn tải dưới dạng MP4 hoặc MP3. Với MP4, ReClip sẽ ưu tiên ghép bestvideo+bestaudio thành file MP4; với MP3, ứng dụng dùng yt-dlp -x --audio-format mp3 để trích xuất audio. Toàn bộ thao tác này được bọc trong giao diện web nên người dùng cuối không phải động tới dòng lệnh.

Fetch thông tin và chọn chất lượng

Khi bấm Fetch, ReClip gọi yt-dlp để lấy metadata video. Ứng dụng sau đó lọc danh sách format và giữ lại lựa chọn tốt nhất theo từng mức độ phân giải, rồi sắp xếp theo thứ tự từ cao xuống thấp. Nói cách khác, nếu video có nhiều bản 720p hoặc 1080p, giao diện sẽ cố gắng hiển thị phương án hợp lý nhất thay vì làm người dùng rối bởi quá nhiều format ID kỹ thuật.

Tải từng file hoặc tải hàng loạt

Sau khi có danh sách video và chất lượng, bạn có thể bấm Download cho từng mục riêng lẻ hoặc dùng Download All nếu đang xử lý nhiều link cùng lúc. Đây là phần rất hữu ích khi bạn cần tải nhiều clip ngắn, audio từ nhiều nguồn hoặc lưu tài liệu học tập offline mà không muốn thao tác lặp đi lặp lại.

Quản lý file đã tải xuống

ReClip không phải là một media manager theo kiểu Plex hay Jellyfin. Nó không xây thư viện media hoàn chỉnh, không gắn metadata sâu, cũng không có dashboard quản trị file phức tạp. Triết lý của nó là làm thật tốt khâu tải xuống. Khi job hoàn tất, file sẽ được lưu trong thư mục downloads của ứng dụng và được phục vụ lại cho trình duyệt qua endpoint tải file. Nếu bạn đã mount volume từ host, toàn bộ file cũng sẽ nằm sẵn trên máy chủ để bạn tự sắp xếp, đồng bộ NAS hoặc backup định kỳ.

ReClip phù hợp với ai và có nên tự host lâu dài hay không

ReClip đặc biệt phù hợp với ba nhóm người dùng. Nhóm thứ nhất là homelaber thích các dịch vụ nhỏ, rõ ràng, ít phụ thuộc. Nhóm thứ hai là người dùng gia đình muốn một công cụ tải media riêng tư hơn web downloader đầy quảng cáo. Nhóm thứ ba là những ai yêu thích yt-dlp nhưng muốn một lớp giao diện dễ dùng hơn cho bản thân hoặc cho người khác trong cùng mạng nội bộ.

Nếu mục tiêu của bạn là một downloader cá nhân nhẹ, dễ deploy, dễ giải thích cho người thân và đủ linh hoạt để chạy lâu dài trong homelab, ReClip là một dự án rất đáng đưa vào stack self-hosted. Nó không cố gắng trở thành “siêu nền tảng” quản lý media, mà tập trung vào đúng một nhiệm vụ và làm nhiệm vụ đó một cách sạch sẽ, minh bạch và hiệu quả.


ReClip là ví dụ điển hình cho một dự án mã nguồn mở nhỏ nhưng trúng nhu cầu thực tế: self-hosted, giao diện sạch, chạy nhẹ, tận dụng sức mạnh yt-dlp và dễ đóng gói bằng Docker. Với người dùng yêu thích quyền kiểm soát, riêng tư và sự đơn giản trong homelab, đây là một công cụ rất đáng bookmark và thử triển khai. Bạn có thể bắt đầu từ kho mã nguồn chính thức tại GitHub của ReClip, rồi tinh chỉnh thêm reverse proxy, volume lưu trữ và backup theo thói quen vận hành của riêng mình.

Duy Nghiện
Hãy làm khán giả, đừng làm nhân vật chính :)

You may also like

Nhận thông báo qua email
Nhận thông báo cho
guest

0 Bình luận
Mới nhất
Cũ nhất Nhiều like nhất
Phản hồi nội tuyến
Xem tất cả bình luận