jiji262/douyin-downloader

▲ 2,677 stars today★ 12,102⑂ 1,861

A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批量下载工具,去水印,支持视频、图集、合集、音乐(原声)。

About jiji262/douyin-downloader

jiji262/douyin-downloader is an open-source project on GitHub, mainly written in Python. A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication It currently holds 12,102 stars and 1,861 forks with 22 open issues, and was last pushed on 2026-09-23 (repository created 2023-05-25).

Project Overview

Git Homed tracks it on the Today's Trending board.

GitHub Repository Details

Repository jiji262/douyin-downloader · default branch main · size 5631 KB · watchers 61 · source: GitHub REST API and repository README

README

Douyin Downloader

https://github.com/jiji262/douyin-downloader/blob/HEAD/douyin-downloader

简体中文 · English

Download Douyin videos and photos without watermarks. Use Douzy for a desktop interface, or the Python CLI for scripts.

Douzy Desktop

A desktop app for Douyin, TikTok, YouTube, Telegram, and X. Paste links, track downloads, and browse your local archive.

Download for Windows / macOS

Platform features depend on enabled plugins or local components. Some batch and advanced features require activation.

| Platform | Content | |:---|:---| | Douyin | Videos, photos, profiles, collections; following, subscriptions, favorites, and likes | | TikTok | Public videos, photos, and profiles | | YouTube | Videos, Shorts, channels, and playlists; audio and subtitles | | Telegram | Media from accessible chats, groups, and channels; requires setup and sign-in | | X | Posts, profile media, your bookmarks and likes; requires account cookies |

| Douyin | TikTok | YouTube | |:---:|:---:|:---:| | Douzy Douyin download options | Douzy TikTok workspace | Douzy YouTube workspace | | Telegram setup | X | Platform switcher | | Douzy Telegram setup | Douzy X workspace | Douzy platform switcher |

_Screenshots: Douzy 0.11.6 on macOS. Telegram is shown before setup. Click an image to enlarge._

CLI Status

The CLI supports Douyin only. It includes batch downloads, date filters, retries, download history, and optional comments, transcription, and notifications.

Download limitations: Douyin's request verification currently blocks CLI downloads of individual videos/photos, collections, music, likes, and favorites. Profile posts can try the Playwright browser fallback, but success is not guaranteed. Use Douzy for everyday downloads.

Refreshing cookies or retrying does not fix this verification block. Live recording is experimental; HLS sources save a playlist, not a playable video.

Quick Start

Requires Python 3.9+ on Windows, macOS, or Linux. Read the CLI limitations above first.

1. Install

git clone https://github.com/jiji262/douyin-downloader.git
cd douyin-downloader
python -m pip install -r requirements.txt
python -m pip install playwright
python -m playwright install chromium

2. Configure and sign in

Copy config.example.yml to config.yml:

cp config.example.yml config.yml
python -m tools.cookie_fetcher --config config.yml

On Windows PowerShell, use Copy-Item config.example.yml config.yml to copy the file. Sign in to Douyin in the browser, then return to the terminal and press Enter to save cookies.

Replace the sample link in config.yml with your creator's profile URL. Keep the saved cookies and adjust these fields:

link:
  • https://www.douyin.com/user/YOUR_SEC_UID
path: ./Downloaded/ mode: [post] number: post: 10 # 0 = unlimited increase: post: true # skip downloaded items redownload_missing_files: true

3. Run

python run.py -c config.yml

Use python run.py --help for all options.

| Option | Purpose | |:---|:---| | -c, --config | Config file | | -u, --url | Append a URL to the links in the config; repeatable | | -p, --path | Download folder | | -t, --thread | Concurrent downloads | | -v, --verbose | Detailed logs |

Configuration

Full settings and examples: config.example.yml.

| Setting | Purpose | |:---|:---| | number.post | Item limit; 0 means unlimited | | start_time / end_time | Date range (YYYY-MM-DD); includes the whole end date | | video_quality | highest by default; original tries the original upload and falls back | | increase.post | true skips downloaded items; false downloads again and overwrites files in the selected scope | | redownload_missing_files | Default true: download missing files again. With false, valid database history can still skip them |

Incremental downloads check for non-empty primary media on disk. You do not need to clear the database to download again: set increase.post: false. The same switch is available for like, mix, and music.

More CLI commands
# Hot search board and keyword search → JSONL
python run.py --hot-board 30
python run.py --search "cats" --search-max 50

Optional REST API server

python -m pip install fastapi uvicorn python run.py --serve --serve-port 8000

Comments, transcription, notifications, and live recording are configured in config.example.yml.

FAQ

Cookies expired? Run python -m tools.cookie_fetcher --config config.yml again.

Only a few profile posts? Keep browser_fallback.enabled: true and headless: false. Complete any verification yourself in the browser; the current verification block may still prevent downloads.

Need logs? Run python run.py -c config.yml -v.

Development

python -m pip install -e ".[dev]"
python -m pytest tests/
ruff check .

Community & License

QQ group · LINUX DO · MIT License

https://github.com/jiji262/douyin-downloader/blob/HEAD/Community QR code

For learning and personal data management. Respect copyright, privacy, and platform rules. You are responsible for how you use this tool; platform changes may affect availability.

Star History

View GitHub Star History

GitHub Stars & Activity

12,102Stars
1,861Forks
22Open issues
PythonLanguage

GitHub Popularity

GitHub stars12,102
Forks1,861
Open issues22
Primary languagePython
LicenseMIT
Stars gained today2,677
Created2023-05-25
Last pushed2026-09-23

Trending History

Monthly boardrank #60 · ▲ 2,677 stars

Related GitHub Projects

1

practical-tutorials / project-based-learning

Python★ 285,110⑂ 36,444▲ 215 stars
→
2

rohitg00 / ai-engineering-from-scratch

Python★ 60,276⑂ 10,377▲ 1,329 stars
→
3

debpalash / VoiceStudio

Python★ 43,522⑂ 5,059▲ 3,274 stars
→
4

vectorize-io / hindsight

Python★ 40,775⑂ 5,521▲ 4,413 stars
→
5

topoteretes / cognee

Python★ 31,135⑂ 3,115▲ 103 stars
→
6

alirezarezvani / claude-skills

Python★ 26,762⑂ 3,775▲ 149 stars
→
7

agent0ai / agent-zero

Python★ 19,330⑂ 3,823▲ 22 stars
→
8

microsoft / SkillOpt

Python★ 17,791⑂ 1,666▲ 111 stars
→

More Trending Repositories