SELF HOSTING

TikTokDownloader: Tải và thu thập dữ liệu TikTok/Douyin toàn diện

Tóm tắt:

  • Hỗ trợ song nền tảng: Hoạt động đầy đủ trên cả TikTok lẫn Douyin trong một công cụ duy nhất.
  • Đa định dạng đầu ra: Tải video không watermark, ảnh, âm thanh, Live Photo và luồng livestream.
  • Thu thập dữ liệu quy mô lớn: Lấy hàng loạt bình luận, dữ liệu tài khoản, danh sách trending và kết quả tìm kiếm.
  • Nhiều chế độ vận hành: Giao diện dòng lệnh (Terminal), Web UI và Web API để tích hợp vào pipeline tự động.
  • Lưu trữ có cấu trúc: Hỗ trợ xuất dữ liệu ra CSV, XLSX và SQLite để phân tích tiếp theo.
  • Hoàn toàn miễn phí và mã nguồn mở: Được cấp phép GNU GPL v3.0, chạy được cục bộ mà không cần dịch vụ bên thứ ba.

Tại sao TikTokDownloader không chỉ là một công cụ tải video?

Phần lớn các công cụ liên quan đến TikTok trên thị trường đều phục vụ một mục đích duy nhất: tải xuống một video cụ thể mà người dùng dán URL vào. Đây là cách tiếp cận thủ công, đơn lẻ, và không thể mở rộng quy mô.

TikTokDownloader của tác giả JoeanAmier tiếp cận vấn đề từ một góc độ khác. Thay vì xây dựng một trình tải video, dự án này được thiết kế như một hệ thống thu thập dữ liệu (data collection system) toàn diện cho hệ sinh thái TikTok và Douyin. Nó có khả năng tải hàng loạt toàn bộ kho nội dung của một tài khoản, trích xuất bình luận theo từng bài viết, theo dõi danh sách trending theo thời gian thực, và ghi lại địa chỉ luồng livestream – tất cả với dữ liệu meta được lưu vào cơ sở dữ liệu có cấu trúc.

Đây là công cụ mà một nhà nghiên cứu phân tích xu hướng nội dung, một chuyên gia marketing theo dõi đối thủ cạnh tranh, hoặc một người dùng cá nhân cần sao lưu toàn bộ kho sáng tạo của mình thực sự cần đến.

Các tính năng nổi bật

Tải nội dung đa định dạng không watermark

Đây là tính năng cốt lõi và được yêu cầu nhiều nhất. TikTokDownloader tải file video từ nguồn gốc, không qua quá trình xử lý lại của bên trung gian, do đó đầu ra là file video chất lượng cao nhất có thể và hoàn toàn không có watermark của nền tảng.

Ngoài video, công cụ còn hỗ trợ:

  • Tải ảnh từ các bài đăng dạng carousel trên cả hai nền tảng.
  • Tải Live Photo (ảnh động) từ Douyin.
  • Trích xuất file âm thanh/nhạc đính kèm bài viết.
  • Tải ảnh bìa dạng tĩnh và động của video.

Thu thập dữ liệu hàng loạt từ tài khoản

Đây là điểm phân biệt rõ ràng nhất giữa TikTokDownloader và các công cụ tải video thông thường. Người dùng có thể truyền vào URL của một hoặc nhiều tài khoản, và công cụ sẽ tự động thu thập toàn bộ:

  • Bài đăng (posts) của tài khoản.
  • Danh sách video đã thích (liked works).
  • Danh sách video đã lưu (favorites/collections) – tính năng áp dụng cho Douyin.
  • Toàn bộ series/playlist (Mix works) trên cả hai nền tảng.

Quá trình tải hỗ trợ tiếp tục từ điểm dừng (resume from breakpoint), tự động bỏ qua file đã tải, và cập nhật gia tăng (incremental update) – chỉ tải những nội dung mới kể từ lần chạy trước.

Lấy dữ liệu trending và tìm kiếm

Với Douyin, TikTokDownloader có thể thu thập dữ liệu bảng xếp hạng hot (hot board data) và kết quả tìm kiếm theo từ khóa. Đây là tính năng phục vụ trực tiếp cho nhu cầu phân tích thị trường và nghiên cứu xu hướng nội dung theo thời gian.

Trích xuất bình luận và dữ liệu tương tác

Với bài viết trên Douyin, công cụ hỗ trợ thu thập toàn bộ luồng bình luận kèm theo metadata. Dữ liệu bao gồm số lượt thích, lượt yêu thích và các chỉ số tương tác khác – đầu vào có giá trị cho các tác vụ phân tích cảm xúc (sentiment analysis) hoặc đánh giá hiệu suất nội dung.

Theo dõi và tải livestream

TikTokDownloader có thể lấy địa chỉ luồng đẩy (push address) của phiên livestream đang diễn ra trên cả TikTok lẫn Douyin, và phối hợp với ffmpeg để ghi lại toàn bộ phiên phát trực tiếp đó thành file video.

So sánh khả năng hỗ trợ giữa hai nền tảng

Tính năngDouyinTikTok
Tải video không watermark
Tải ảnh
Tải Live PhotoKhông
Tải âm thanh/nhạc
Tải loạt bài theo tài khoản
Tải danh sách đã thích
Tải danh sách đã lưu/yêu thíchKhông
Thu thập bình luậnKhông
Dữ liệu bảng trendingKhông
Dữ liệu kết quả tìm kiếmKhông
Tải livestream qua ffmpeg

Hướng dẫn cài đặt trên môi trường Python

Yêu cầu hệ thống

  • Python phiên bản 3.10 đến 3.13 (khuyến nghị 3.12).
  • ffmpeg được cài đặt và có trong PATH hệ thống nếu cần tải livestream.
  • Kết nối Internet ổn định và (tùy chọn) proxy để thu thập quy mô lớn.

Bước 1: Tải xuống mã nguồn

Truy cập trang Releases để tải gói mã nguồn mới nhất, sau đó giải nén vào thư mục làm việc. Ngoài ra có thể clone repository trực tiếp:

git clone https://github.com/JoeanAmier/TikTokDownloader.git
cd TikTokDownloader

Bước 2: Tạo môi trường ảo và cài đặt phụ thuộc

Sử dụng pip kết hợp môi trường ảo (virtual environment):

# Tạo môi trường ảo
python -m venv venv

# Kích hoạt môi trường ảo
# Trên Windows (PowerShell):
.\venv\Scripts\activate.ps1

# Trên Linux / macOS:
source venv/bin/activate

# Cài đặt các thư viện phụ thuộc
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

Nếu sử dụng uv (trình quản lý gói hiện đại, hiệu năng cao hơn):

uv sync --no-dev

Bước 3: Khởi chạy lần đầu

# Trên Windows:
python .\main.py

# Trên Linux / macOS:
python main.py

Lần đầu khởi chạy, chương trình sẽ tự động tạo file settings.json trong thư mục gốc. Đây là file cấu hình trung tâm, nơi người dùng định nghĩa tài khoản cần thu thập, định dạng lưu trữ, đường dẫn đầu ra và proxy.

Cài đặt bằng Docker (tùy chọn cho triển khai server)

# Kéo image từ Docker Hub
docker pull joeanamier/tiktok-downloader

# Chạy container với port ánh xạ và volume lưu trữ
docker run --name tiktok-dl -p 8080:5555 -v tiktok_downloader_volume:/app/Volume -it joeanamier/tiktok-downloader

Hướng dẫn sử dụng thực tế

Chế độ Terminal tương tác

Sau khi khởi chạy main.py, giao diện terminal tương tác sẽ xuất hiện với hệ thống menu phân cấp. Người dùng điều hướng bằng cách nhập số tương ứng với từng lựa chọn. Ví dụ:

  • Nhập 1 để truy cập chức năng liên quan đến Douyin.
  • Nhập 2 để truy cập chức năng TikTok.
  • Trong mỗi nền tảng, tiếp tục chọn loại tác vụ: tải theo URL đơn lẻ, theo tài khoản, theo Mix, hay thu thập bình luận.

Chế độ này phù hợp nhất cho người dùng không quen với lập trình và cần thao tác nhanh qua giao diện có hướng dẫn.

Cấu hình settings.json

File settings.json cho phép định nghĩa tác vụ thu thập tự động mà không cần tương tác thủ công. Các tham số quan trọng bao gồm:

{
  "accounts_urls": ["https://www.douyin.com/user/xxxxx"],
  "mix_urls": [],
  "root": "./downloads",
  "name_format": "create_time nickname id desc",
  "storage_format": "xlsx",
  "proxy": "http://127.0.0.1:7890",
  "max_pages": 0
}
Tham sốMô tảGiá trị mặc định
accounts_urlsDanh sách URL tài khoản cần thu thập[]
rootThư mục lưu trữ đầu ra./downloads
name_formatQuy tắc đặt tên file đầu raTimestamp + ID
storage_formatĐịnh dạng lưu metadata: csv, xlsx, sqlitecsv
proxyĐịa chỉ proxy HTTP/HTTPSKhông có
max_pagesSố trang tối đa khi thu thập (0 = không giới hạn)0

Chế độ Web API

Khi khởi động ở chế độ Web API, TikTokDownloader mở một HTTP server cục bộ tại http://127.0.0.1:5555. Tài liệu API tương tác có thể truy cập tại:

http://127.0.0.1:5555/docs    # Giao diện Swagger UI
http://127.0.0.1:5555/redoc   # Giao diện ReDoc

Ví dụ gọi API để thu thập bình luận từ một bài viết Douyin:

from httpx import post
from rich import print

def fetch_comments():
    headers = {"token": "your_api_token"}
    data = {
        "detail_id": "video_id_here",
        "pages": 2,
    }
    api = "http://127.0.0.1:5555/douyin/comment"
    response = post(api, json=data, headers=headers)
    print(response.json())

fetch_comments()

Chế độ này cho phép tích hợp TikTokDownloader vào pipeline dữ liệu tự động, kết hợp với các công cụ phân tích khác như pandas, Spark, hoặc các hệ thống ETL.

Cấu hình Cookie xác thực

Một số tính năng – đặc biệt là tải nội dung riêng tư, danh sách đã thích, hoặc dữ liệu yêu cầu đăng nhập – đòi hỏi phải cấu hình Cookie hợp lệ. TikTokDownloader hỗ trợ nhập Cookie trực tiếp từ trình duyệt trên Windows (Chrome, Edge, Chromium) hoặc dán thủ công vào file settings.json. Chi tiết quy trình lấy Cookie được hướng dẫn trong tài liệu chính thức của dự án.

Lưu ý quan trọng về Cookie:

  • Cookie có thời hạn hiệu lực; cần cập nhật định kỳ khi phiên đăng nhập hết hạn.
  • Không chia sẻ Cookie của tài khoản cá nhân cho bên thứ ba.
  • Nên sử dụng tài khoản phụ cho mục đích thu thập dữ liệu tự động thay vì tài khoản chính.

Lưu ý về pháp lý và đạo đức khi sử dụng

Mặc dù TikTokDownloader là công cụ kỹ thuật hợp lệ, việc sử dụng cần tuân thủ các nguyên tắc sau:

Bản quyền nội dung: Toàn bộ video, âm thanh và ảnh trên TikTok và Douyin đều thuộc quyền sở hữu của người tạo ra chúng. Việc tải xuống nội dung của người khác chỉ được phép cho mục đích cá nhân, nghiên cứu phi thương mại, hoặc khi đã có sự cho phép rõ ràng từ chủ sở hữu. Tái phân phối, đăng tải lại hoặc thương mại hóa nội dung tải về mà không có quyền là hành vi vi phạm bản quyền.

Điều khoản dịch vụ của nền tảng: Cả TikTok lẫn Douyin đều có điều khoản dịch vụ hạn chế hoặc cấm hoàn toàn việc thu thập dữ liệu tự động (automated scraping). Người dùng cần đọc và hiểu rõ các điều khoản này trước khi triển khai công cụ ở quy mô lớn, đặc biệt trong môi trường thương mại hoặc nghiên cứu công khai.

Quyền riêng tư: Không sử dụng công cụ để thu thập dữ liệu cá nhân của người dùng khác – bao gồm bình luận, thông tin tài khoản – nhằm mục đích xâm phạm quyền riêng tư hoặc xây dựng hồ sơ cá nhân trái phép.

Phạm vi sử dụng phù hợp:

  • Sao lưu nội dung do chính mình tạo ra.
  • Nghiên cứu học thuật về xu hướng nội dung (với dữ liệu ẩn danh hóa).
  • Phân tích thị trường nội bộ cho mục đích phi thương mại.
  • Lưu trữ tài liệu tham khảo cá nhân.

TikTokDownloader là một trong số ít công cụ mã nguồn mở cung cấp khả năng tương tác đầy đủ với hệ sinh thái TikTok và Douyin – từ tải xuống đơn lẻ đến thu thập dữ liệu có cấu trúc ở quy mô lớn. Sự kết hợp giữa giao diện terminal trực quan, Web API có tài liệu rõ ràng, và khả năng xuất dữ liệu ra nhiều định dạng phân tích khác nhau khiến nó trở thành lớp nền hạ tầng dữ liệu đáng tin cậy cho các dự án nghiên cứu và sáng tạo nội dung chuyên nghiệp.

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