THỦ THUẬT HAY

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

  1. Truy cập Web Interface:
    • URL: http://localhost hoặc http://your-server-ip
  2. API Docs:
    • URL: http://localhost/docs hoặc http://your-server-ip/docs
  3. 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

  1. Sử dụng HTTPS:
    • Thiết lập SSL certificate
    • Triển khai reverse proxy (Nginx/Traefik)
  2. Giới hạn tài nguyên:
deploy:
  resources:
    limits:
      cpus: '1.0'
      memory: 1G
    reservations:
      cpus: '0.5'
      memory: 512M
  1. 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

  1. Mở trình duyệt: http://localhost:8080/
  2. Dán URL video TikTok/Douyin vào ô nhập
  3. Analyze để phân tích
  4. 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.
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