Hướng dẫn xây dựng API tải video TikTok/Douyin không watermark
Trong thời đại số, nhu cầu lưu trữ và chia sẻ video từ các nền tảng như TikTok hay Douyin tăng mạnh. Trở ngại phổ biến nhất là watermark (logo) tự động chèn khi tải về, làm giảm tính thẩm mỹ và độ chuyên nghiệp của nội dung.
Douyin_TikTok_Download_API là công cụ mã nguồn mở do Evil0ctal phát triển, nổi bật với kiến trúc bất đồng bộ hiệu năng cao, công nghệ hiện đại và giao diện web thân thiện.
LƯU Ý PHÁP LÝ:
Chỉ sử dụng cho mục đích hợp pháp, tôn trọng bản quyền và điều khoản của ByteDance. Tránh chia sẻ cookie hoặc thông tin phiên để bảo vệ tài khoản.
Tính năng nổi bật của API
Tải video không watermark: Tải video từ TikTok/Douyin ở chất lượng gốc, loại bỏ logo/watermark.
Xử lý bất đồng bộ hiệu suất cao: Xây dựng trên AIOHTTP và FastAPI, dễ dàng phục vụ nhiều yêu cầu đồng thời.
Hỗ trợ đa nền tảng: Ngoài TikTok/Douyin còn hỗ trợ Bilibili và Kuaishou.
Giao diện web tích hợp: Tích hợp PyWebIO giúp người dùng không rành lập trình vẫn sử dụng thuận tiện.
Triển khai bằng Docker Compose
1) Chuẩn bị môi trường
Cần có:
- Docker
- Docker Compose
Nếu chưa cài Docker: Hướng dẫn cài đặt Docker, Docker Compose trên Ubuntu
2) Các bước triển khai
Bước 1: Clone repository
git clone https://github.com/Evil0ctal/Douyin_TikTok_Download_API.git
cd Douyin_TikTok_Download_API
Bước 2: Cấu hình Cookie (quan trọng)
API cần cookie hợp lệ. Nếu chưa biết cách lấy, xem thêm: Hướng dẫn chi tiết lấy cookie của Douyin và TikTok
Douyin:
- Mở tệp
crawlers/douyin/web/config.yaml
- Thay Cookie (dòng 11) bằng cookie lấy khi bạn đăng nhập tại douyin.com
TikTok:
- Mở tệp
crawlers/tiktok/web/config.yaml
- Thay Cookie (dòng 8) bằng cookie lấy khi bạn đăng nhập tại tiktok.com
Bước 3: Tạo thư mục lưu tải xuống
mkdir -p downloads
chmod 755 downloads
Bước 4: Build & chạy với Docker Compose
Cấu hình cơ bản có sẵn trong docker-compose.yml
:
version: "3.9"
services:
douyin_tiktok_download_api:
image: evil0ctal/douyin_tiktok_download_api
network_mode: host
container_name: douyin_tiktok_download_api
restart: always
volumes:
- ./douyin_tiktok_download_api/douyin_web/config.yaml:/app/crawlers/douyin/web/config.yaml
- ./douyin_tiktok_download_api/tiktok_web/config.yaml:/app/crawlers/tiktok/web/config.yaml
- ./douyin_tiktok_download_api/tiktok_app/config.yaml:/app/crawlers/tiktok/app/config.yaml
environment:
TZ: Asia/Shanghai
PUID: 1026
PGID: 100
privileged: true
Khuyến nghị tối ưu hóa như sau:
version: "3.9"
services:
douyin_tiktok_download_api:
build:
context: .
dockerfile: Dockerfile
container_name: douyin_tiktok_download_api
restart: unless-stopped
ports:
- "80:80"
- "443:443" # Nếu cần HTTPS
volumes:
# Mount config để chỉnh từ host
- ./crawlers/douyin/web/config.yaml:/app/crawlers/douyin/web/config.yaml:ro
- ./crawlers/tiktok/web/config.yaml:/app/crawlers/tiktok/web/config.yaml:ro
- ./crawlers/tiktok/app/config.yaml:/app/crawlers/tiktok/app/config.yaml:ro
- ./crawlers/bilibili/web/config.yaml:/app/crawlers/bilibili/web/config.yaml:ro
- ./config.yaml:/app/config.yaml:ro
# Thư mục tải xuống
- ./downloads:/app/download
environment:
- TZ=Asia/Ho_Chi_Minh
- PUID=1000
- PGID=1000
networks:
- douyin_api_network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:80/docs"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
networks:
douyin_api_network:
driver: bridge
volumes:
downloads:
driver: local
Chạy lệnh:
# Build image từ source code
docker-compose build
# Hoặc pull image có sẵn
docker-compose pull
# Chạy container
docker-compose up -d
# Xem logs
docker-compose logs -f
3) Kiểm tra triển khai
- Truy cập Web Interface:
- URL:
http://localhost
hoặchttp://your-server-ip
- URL:
- API Docs:
- URL:
http://localhost/docs
hoặchttp://your-server-ip/docs
- URL:
- Kiểm tra trạng thái container:
docker-compose ps
docker-compose logs douyin_tiktok_download_api
4) Lệnh quản lý hữu ích
# Dừng service
docker-compose down
# Khởi động lại
docker-compose restart
# Cập nhật & rebuild
docker-compose down
docker-compose build --no-cache
docker-compose up -d
# Theo dõi logs realtime
docker-compose logs -f douyin_tiktok_download_api
# Vào shell trong container
docker-compose exec douyin_tiktok_download_api bash
5) Cấu hình nâng cao
Reverse proxy bằng Nginx:
version: "3.9"
services:
nginx:
image: nginx:alpine
container_name: nginx_proxy
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
- ./ssl:/etc/nginx/ssl:ro
depends_on:
- douyin_tiktok_download_api
networks:
- douyin_api_network
douyin_tiktok_download_api:
# ... config như trên
expose:
- "80"
networks:
- douyin_api_network
networks:
douyin_api_network:
driver: bridge
Thiết lập biến môi trường:
- Tạo file
.env
nano .env - Dán nội dung:
# Timezone
TZ=Asia/Ho_Chi_Minh
# Port mapping
HOST_PORT=80
CONTAINER_PORT=80
# Download settings
DOWNLOAD_PATH=./downloads
MAX_DOWNLOADS=10
# API settings
API_HOST=0.0.0.0
API_PORT=80
6) Troubleshooting
Lỗi cookie không hợp lệ:
- Kiểm tra lại cookie trong các tệp config
- Đảm bảo cookie còn hạn
- Khởi động lại container sau khi chỉnh config
Port bị chiếm dụng:
# Kiểm tra port
sudo netstat -tlnp | grep :80
# Đổi port trong docker-compose.yml
ports:
- "8080:80" # dùng 8080 thay cho 80
Container không start:
# Xem logs
docker-compose logs douyin_tiktok_download_api
# Kiểm tra tài nguyên
docker stats douyin_tiktok_download_api
7) Bảo mật & vận hành production
- Sử dụng HTTPS:
- Thiết lập SSL certificate
- Triển khai reverse proxy (Nginx/Traefik)
- Giới hạn tài nguyên:
deploy:
resources:
limits:
cpus: '1.0'
memory: 1G
reservations:
cpus: '0.5'
memory: 512M
- Sao lưu dữ liệu:
volumes:
- ./backups:/app/backups
Triển khai & sử dụng bằng Python
Yêu cầu hệ thống
- Python 3.6+
- Git
- Kết nối Internet ổn định
Các bước cài đặt
Bước 1: Clone repository
git clone https://github.com/Evil0ctal/Douyin_TikTok_Download_API.git
Bước 2: Di chuyển vào thư mục dự án
cd Douyin_TikTok_Download_API
Bước 3: Cài dependencies
pip install -r requirements.txt
Các thư viện chính: PyWebIO (giao diện web), FastAPI (API), AIOHTTP (HTTP bất đồng bộ).
Bước 4: Cấu hình tùy chọn
nano config.ini # Hoặc dùng editor khác
Tệp cấu hình cho phép chỉnh port, host và các tuỳ chọn liên quan.
Cài nhanh qua pip package
pip install douyin-tiktok-scraper
Hướng dẫn sử dụng & ví dụ thực tế
Khởi chạy API Server
Chạy web application
python web_app.py
Giao diện web: http://localhost:8080/
Chạy API Server
python web_api.py
Tài liệu API (Swagger): http://localhost:8000/docs

Sử dụng API Endpoints
Phân tích dữ liệu 1 video Douyin/TikTok
curl -X 'GET' \
'http://localhost:8080/api/hybrid/video_data?url=[VIDEO_URL]&minimal=false' \
-H 'accept: application/json'
Tải video
curl -X 'GET' \
'http://localhost:8080/api/download?url=[VIDEO_URL]&prefix=true&with_watermark=false' \
-H 'accept: application/json'
Một số endpoint hữu ích khác:
- Lấy thông tin chi tiết của 1 video
- Lấy toàn bộ video của 1 kênh TikTok/Douyin
- Lấy số lượt like của video
- Danh sách bình luận và trả lời bình luận
- Truy xuất list user ID, list video ID
- …và nhiều endpoint khác
Ví dụ code Python
Dùng như thư viện Python
import asyncio
from scraper import Scraper
async def download_video():
scraper = Scraper()
url = "https://www.tiktok.com/@username/video/1234567890"
result = await scraper.get_video_data(url)
print(result)
asyncio.run(download_video())
Tích hợp FastAPI
from fastapi import FastAPI
from scraper import Scraper
app = FastAPI()
scraper = Scraper()
@app.get("/download")
async def download_video(url: str):
result = await scraper.get_video_data(url)
return result
Sử dụng qua Web Interface
- Mở trình duyệt:
http://localhost:8080/
- Dán URL video TikTok/Douyin vào ô nhập
- Analyze để phân tích
- Tải xuống với chất lượng mong muốn

Công cụ hữu ích cho content creator & developer
Douyin_TikTok_Download_API không chỉ là trình tải video mà còn là bộ công cụ xử lý & quản trị nội dung đa năng cho các nền tảng phổ biến. Nhờ mã nguồn mở, tính năng phong phú và hiệu năng cao, đây là lựa chọn phù hợp cho:
- Content Creator: Tải/chỉnh sửa video mà không bị ảnh hưởng bởi watermark
- Nhà phát triển: Tích hợp vào hệ thống lớn thông qua API mạnh mẽ
- Người dùng cá nhân: Lưu trữ video yêu thích ở chất lượng tốt
Hãy thử nghiệm và khám phá khả năng của Douyin_TikTok_Download_API để tối ưu quy trình sáng tạo và chia sẻ nội dung của bạn.
LƯU Ý QUAN TRỌNG:
Khi sử dụng công cụ, hãy luôn tôn trọng bản quyền và điều khoản của nền tảng. Chỉ tải nội dung bạn có quyền sử dụng hoặc phục vụ mục đích học tập/nghiên cứu cá nhân.