jiji262/douyin-downloaderPublic

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

AI summary: An automated batch downloading tool for extracting unwatermarked media from Douyin profiles and collections.

Stars
12.1K
+21 today
Forks
1.9K
Watchers
61
Open issues
8
Open PRs
13
Contributors
~1
Commits
99
Branches
1

PythonMITCreated May 25, 2023Last push 11d agoLatest release desktop-v0.12.1+98 stars this week+813 this month

Quick answers

What is douyin-downloader?
An automated batch downloading tool for extracting unwatermarked media from Douyin profiles and collections.
What does douyin-downloader do?
Douyin Downloader V2.0 provides an automated, reliable pipeline for extracting varied media types from Douyin (TikTok China). It supports large-scale batch downloading of individual videos, image notes, audio tracks, and entire creator profiles or collections. Crucially, the tool actively circumvents common download hurdles by stripping visual watermarks and utilizing an automated browser fallback mechanism when standard APIs fail. To ensure data integrity during massive archival runs, it employs an embedded SQLite database for strict file deduplication and automatic retry logic.
Who is douyin-downloader for?
Data archivists, machine learning researchers, and content creators looking to reliably back up or harvest Douyin media at scale. Ideal for users needing a robust pipeline for unwatermarked video extraction.
How do I get started with douyin-downloader?
pip install -r requirements.txt
How popular is douyin-downloader on GitHub?
jiji262/douyin-downloader has 12,145 stars and 1,861 forks on GitHub, and gained 98 stars in the last 7 days.
What license does douyin-downloader use?
jiji262/douyin-downloader is released under the MIT license.

Star history

since Sep 13, 2026
05K10KSep 2026Sep 2026Sep 2026Oct 2026
12.1K stars as of Oct 2, 2026. Measured daily since Sep 13, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

commits per day, last 52 weeks
OctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 1 commit2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 0 commits2026-04-22: 0 commits2026-04-23: 0 commits2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 0 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 0 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 0 commits2026-06-02: 0 commits2026-06-03: 0 commits2026-06-04: 0 commits2026-06-05: 0 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 0 commits2026-06-10: 0 commits2026-06-11: 0 commits2026-06-12: 0 commits2026-06-13: 0 commits2026-06-14: 0 commits2026-06-15: 0 commits2026-06-16: 0 commits2026-06-17: 0 commits2026-06-18: 0 commits2026-06-19: 0 commits2026-06-20: 0 commits2026-06-21: 0 commits2026-06-22: 0 commits2026-06-23: 1 commit2026-06-24: 0 commits2026-06-25: 12 commits2026-06-26: 0 commits2026-06-27: 0 commits2026-06-28: 0 commits2026-06-29: 1 commit2026-06-30: 0 commits2026-07-01: 1 commit2026-07-02: 6 commits2026-07-03: 3 commits2026-07-04: 1 commit2026-07-05: 0 commits2026-07-06: 2 commits2026-07-07: 0 commits2026-07-08: 1 commit2026-07-09: 1 commit2026-07-10: 0 commits2026-07-11: 1 commit2026-07-12: 1 commit2026-07-13: 1 commit2026-07-14: 0 commits2026-07-15: 0 commits2026-07-16: 1 commit2026-07-17: 1 commit2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 2 commits2026-07-21: 2 commits2026-07-22: 0 commits2026-07-23: 0 commits2026-07-24: 2 commits2026-07-25: 1 commit2026-07-26: 0 commits2026-07-27: 2 commits2026-07-28: 2 commits2026-07-29: 0 commits2026-07-30: 1 commit2026-07-31: 0 commits2026-08-01: 0 commits2026-08-02: 4 commits2026-08-03: 0 commits2026-08-04: 0 commits2026-08-05: 1 commit2026-08-06: 0 commits2026-08-07: 1 commit2026-08-08: 0 commits2026-08-09: 0 commits2026-08-10: 0 commits2026-08-11: 0 commits2026-08-12: 0 commits2026-08-13: 0 commits2026-08-14: 0 commits2026-08-15: 2 commits2026-08-16: 1 commit2026-08-17: 3 commits2026-08-18: 0 commits2026-08-19: 0 commits2026-08-20: 0 commits2026-08-21: 2 commits2026-08-22: 2 commits2026-08-23: 0 commits2026-08-24: 0 commits2026-08-25: 15 commits2026-08-26: 1 commit2026-08-27: 0 commits2026-08-28: 2 commits2026-08-29: 3 commits2026-08-30: 0 commits2026-08-31: 0 commits2026-09-01: 0 commits2026-09-02: 1 commit2026-09-03: 0 commits2026-09-04: 0 commits2026-09-05: 0 commits2026-09-06: 1 commit2026-09-07: 0 commits2026-09-08: 0 commits2026-09-09: 0 commits2026-09-10: 0 commits2026-09-11: 0 commits2026-09-12: 0 commits2026-09-13: 0 commits2026-09-14: 1 commit2026-09-15: 1 commit2026-09-16: 3 commits2026-09-17: 1 commit2026-09-18: 0 commits2026-09-19: 0 commits2026-09-20: 1 commit2026-09-21: 0 commits2026-09-22: 1 commit2026-09-23: 0 commits2026-09-24: 0 commits2026-09-25: 0 commits2026-09-26: 0 commits2026-09-27: 0 commits2026-09-28: 0 commits2026-09-29: 0 commits2026-09-30: 0 commits2026-10-01: 0 commits2026-10-02: 0 commits2026-10-03: 0 commits
94 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    12,145 stars

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

What douyin-downloader does

Douyin Downloader V2.0 provides an automated, reliable pipeline for extracting varied media types from Douyin (TikTok China). It supports large-scale batch downloading of individual videos, image notes, audio tracks, and entire creator profiles or collections. Crucially, the tool actively circumvents common download hurdles by stripping visual watermarks and utilizing an automated browser fallback mechanism when standard APIs fail. To ensure data integrity during massive archival runs, it employs an embedded SQLite database for strict file deduplication and automatic retry logic.

Data archivists, machine learning researchers, and content creators looking to reliably back up or harvest Douyin media at scale. Ideal for users needing a robust pipeline for unwatermarked video extraction.

  • Batch processing: Downloads entire user profiles, collections, and favorite lists in a single automated run.
  • Watermark removal: Strips unwanted visual watermarks from downloaded video content for clean playback.
  • Data deduplication: Prevents redundant file downloads by tracking history using an embedded SQLite database.
  • Integrity checks: Validates files post-download to guarantee completeness and prevent corrupted archives.
  • Browser fallback mechanism: Employs automated browser techniques to extract media when direct API access is blocked.

Where teams use it

Creator archiving

Download an entire creator's video history and image notes for offline backup or historical preservation.

Machine learning dataset creation

Gather massive volumes of clean, unwatermarked short-form video content to train computer vision models.

Content curation

Extract raw media files into organized local folders for seamless video editing and redistribution.

Uninterrupted bulk downloading

Execute large-scale extraction tasks reliably by leaning on automatic retries and strict deduplication.

Getting started: pip install -r requirements.txt

README

main branch

Douyin Downloader

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

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

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

1 total
  1. Desktop 0.12.1desktop-v0.12.1Sep 23, 20269.4K downloads

    Douzy Desktop 0.12.1 ## Downloads - **macOS Apple Silicon:** `Douzy-0.12.1-arm64.dmg` - **macOS Intel:** `Douzy-0.12.1.dmg` - **Windows x64:** `Douzy-Setup-0.12.1.exe` ## Installation - **本版未签名**,首次启动会被系统拦截,这是预期行为: - **macOS**:右键点击 Douzy.app 选「打开」,或先执行 `xattr -cr /Applications/Douzy.app`。 - **Windows**:SmartScreen 提示时选「更多信息 → 仍要运行」。 - Windows 新版为 per-machine 安装;旧版用户建议先卸载旧副本再安装。 - Telegram 需要用户自己的 `api_id` / `api_hash`,不填不影响其他平台。 - 标准版单链接任务入口无需邀请码;批量队列和高级 UI 流程仍需内测资格。 ## SHA-256 ``` 20ef76729d3ea6d8313cfa33869802f38853bca511c216526abb7cc57aada596 Douzy-0.12.1-arm64.dmg 4f730642d96aa6aa8002a7851a5296d7aad272de0f3e409d23d1ac90e90f6a4e Douzy-0.12.1.dmg 55ab5c15d9f0654fb56c5add79bdce2b0eebc8f13b8e77d89736ad34632d37f1 Douzy-Setup-0.12.1.exe ```

Commits per week

last 52 weeks
210Week of 2025-10-04: 0 commitsWeek of 2025-10-11: 0 commitsWeek of 2025-10-18: 0 commitsWeek of 2025-10-25: 0 commitsWeek of 2025-11-01: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 1 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 0 commitsWeek of 2026-04-05: 0 commitsWeek of 2026-04-12: 0 commitsWeek of 2026-04-19: 0 commitsWeek of 2026-04-26: 0 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 0 commitsWeek of 2026-05-17: 0 commitsWeek of 2026-05-24: 0 commitsWeek of 2026-05-31: 0 commitsWeek of 2026-06-07: 0 commitsWeek of 2026-06-14: 0 commitsWeek of 2026-06-21: 13 commitsWeek of 2026-06-28: 12 commitsWeek of 2026-07-05: 5 commitsWeek of 2026-07-12: 4 commitsWeek of 2026-07-19: 7 commitsWeek of 2026-07-26: 5 commitsWeek of 2026-08-02: 6 commitsWeek of 2026-08-09: 2 commitsWeek of 2026-08-16: 8 commitsWeek of 2026-08-23: 21 commitsWeek of 2026-08-30: 1 commitsWeek of 2026-09-06: 1 commitsWeek of 2026-09-13: 6 commitsWeek of 2026-09-20: 2 commitsWeek of 2026-09-27: 0 commitsOct 4, 2025Sep 27, 2026
94 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 1 commitsSun 1:00 — 0 commitsSun 2:00 — 0 commitsSun 3:00 — 0 commitsSun 4:00 — 0 commitsSun 5:00 — 0 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 0 commitsSun 9:00 — 0 commitsSun 10:00 — 0 commitsSun 11:00 — 0 commitsSun 12:00 — 2 commitsSun 13:00 — 0 commitsSun 14:00 — 0 commitsSun 15:00 — 0 commitsSun 16:00 — 0 commitsSun 17:00 — 0 commitsSun 18:00 — 0 commitsSun 19:00 — 0 commitsSun 20:00 — 0 commitsSun 21:00 — 3 commitsSun 22:00 — 1 commitsSun 23:00 — 1 commitsMon 0:00 — 0 commitsMon 1:00 — 0 commitsMon 2:00 — 0 commitsMon 3:00 — 0 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 0 commitsMon 7:00 — 0 commitsMon 8:00 — 0 commitsMon 9:00 — 2 commitsMon 10:00 — 1 commitsMon 11:00 — 0 commitsMon 12:00 — 0 commitsMon 13:00 — 0 commitsMon 14:00 — 0 commitsMon 15:00 — 2 commitsMon 16:00 — 0 commitsMon 17:00 — 1 commitsMon 18:00 — 1 commitsMon 19:00 — 1 commitsMon 20:00 — 1 commitsMon 21:00 — 1 commitsMon 22:00 — 2 commitsMon 23:00 — 0 commitsTue 0:00 — 0 commitsTue 1:00 — 0 commitsTue 2:00 — 0 commitsTue 3:00 — 0 commitsTue 4:00 — 0 commitsTue 5:00 — 0 commitsTue 6:00 — 0 commitsTue 7:00 — 0 commitsTue 8:00 — 0 commitsTue 9:00 — 0 commitsTue 10:00 — 0 commitsTue 11:00 — 0 commitsTue 12:00 — 0 commitsTue 13:00 — 2 commitsTue 14:00 — 2 commitsTue 15:00 — 8 commitsTue 16:00 — 6 commitsTue 17:00 — 1 commitsTue 18:00 — 2 commitsTue 19:00 — 0 commitsTue 20:00 — 1 commitsTue 21:00 — 0 commitsTue 22:00 — 1 commitsTue 23:00 — 0 commitsWed 0:00 — 0 commitsWed 1:00 — 0 commitsWed 2:00 — 0 commitsWed 3:00 — 0 commitsWed 4:00 — 0 commitsWed 5:00 — 0 commitsWed 6:00 — 0 commitsWed 7:00 — 0 commitsWed 8:00 — 1 commitsWed 9:00 — 0 commitsWed 10:00 — 1 commitsWed 11:00 — 1 commitsWed 12:00 — 0 commitsWed 13:00 — 0 commitsWed 14:00 — 1 commitsWed 15:00 — 0 commitsWed 16:00 — 1 commitsWed 17:00 — 0 commitsWed 18:00 — 1 commitsWed 19:00 — 0 commitsWed 20:00 — 0 commitsWed 21:00 — 1 commitsWed 22:00 — 0 commitsWed 23:00 — 1 commitsThu 0:00 — 0 commitsThu 1:00 — 0 commitsThu 2:00 — 0 commitsThu 3:00 — 0 commitsThu 4:00 — 0 commitsThu 5:00 — 0 commitsThu 6:00 — 0 commitsThu 7:00 — 0 commitsThu 8:00 — 0 commitsThu 9:00 — 1 commitsThu 10:00 — 1 commitsThu 11:00 — 0 commitsThu 12:00 — 0 commitsThu 13:00 — 2 commitsThu 14:00 — 0 commitsThu 15:00 — 0 commitsThu 16:00 — 1 commitsThu 17:00 — 1 commitsThu 18:00 — 2 commitsThu 19:00 — 1 commitsThu 20:00 — 11 commitsThu 21:00 — 2 commitsThu 22:00 — 0 commitsThu 23:00 — 0 commitsFri 0:00 — 0 commitsFri 1:00 — 0 commitsFri 2:00 — 0 commitsFri 3:00 — 0 commitsFri 4:00 — 0 commitsFri 5:00 — 0 commitsFri 6:00 — 0 commitsFri 7:00 — 0 commitsFri 8:00 — 0 commitsFri 9:00 — 0 commitsFri 10:00 — 2 commitsFri 11:00 — 3 commitsFri 12:00 — 1 commitsFri 13:00 — 0 commitsFri 14:00 — 1 commitsFri 15:00 — 0 commitsFri 16:00 — 0 commitsFri 17:00 — 0 commitsFri 18:00 — 0 commitsFri 19:00 — 0 commitsFri 20:00 — 2 commitsFri 21:00 — 0 commitsFri 22:00 — 0 commitsFri 23:00 — 2 commitsSat 0:00 — 0 commitsSat 1:00 — 0 commitsSat 2:00 — 0 commitsSat 3:00 — 0 commitsSat 4:00 — 0 commitsSat 5:00 — 0 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 0 commitsSat 9:00 — 0 commitsSat 10:00 — 1 commitsSat 11:00 — 0 commitsSat 12:00 — 0 commitsSat 13:00 — 1 commitsSat 14:00 — 1 commitsSat 15:00 — 0 commitsSat 16:00 — 0 commitsSat 17:00 — 0 commitsSat 18:00 — 2 commitsSat 19:00 — 0 commitsSat 20:00 — 0 commitsSat 21:00 — 2 commitsSat 22:00 — 1 commitsSat 23:00 — 2 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.

Who is committing

last 52 weeks
Maintainer commits99 (100%)
Community commits0 (0%)

99 commits in total over the last year.

DateListRankStars gained
Sep 14, 2026daily#13+473
Sep 13, 2026daily#13+473