Loading search…

Explain with AI
Edit this page

Library Management

Last updated

List downloaded series, check recent chapters, update subscriptions, and remove or restore series.

On this page

comic-dl tracks every download in a single local SQLite database. This enables skip/resume, subscription updates, and library queries.

The database lives at the per-platform data directory: ~/.local/share/comic-dl/library.db on Linux ($XDG_DATA_HOME honored), ~/Library/Application Support/comic-dl/library.db on macOS, and %LOCALAPPDATA%\comic-dl\library.db on Windows. Override it with $COMIC_DL_DATA_DIR. Every row records which output folder it belongs to, so one database covers all your download folders.

List series

comic-dl list
comic-dl list --json
comic-dl list --source e-hentai.org    # filter by source domain

Inspect chapters and file status

comic-dl info "My Favorite Series"
comic-dl info "My Favorite Series" --json

The info view shows chapters with verification status: ✓ (file present on disk), ✗ (file missing), or – (never downloaded).

Recent downloads

comic-dl latest            # last 7 days
comic-dl latest -n 30      # last 30 days
comic-dl latest --json
comic-dl latest --source e-hentai.org

Update tracked series

Re-scrape a series and download newly released chapters:

comic-dl update all                      # every tracked series, every folder
comic-dl update "My Favorite Series"     # one series by title, ID, or URL
comic-dl update all --dry-run            # preview only, download nothing

Only new chapters are fetched. Existing chapters are skipped via the library. The series’ last checked and last updated timestamps are refreshed (a dry run refreshes nothing). Each series downloads into the folder recorded for it.

Series without a stored source URL, or without a series-page endpoint, are reported as skipped.

Large libraries update faster in parallel — cap how many series re-scrape at once with --parallel (default 1 keeps runs sequential):

comic-dl update all --parallel 4       # update up to 4 series concurrently

Parallel series still share the per-host rate limiter, so they never exceed the politeness budget.

Remove a series

comic-dl remove "My Favorite Series"
comic-dl remove "My Favorite Series" --dry-run    # preview

Moves the series folder to <output-root>/.comic-dl/trash/ (the trash next to where the series lives) and forgets it. Trashed series are purged after 7 days.

Restore a series

comic-dl restore "My Favorite Series"

Moves a trashed series back and restores its library entry, including original timestamps. Searches the trash of every known output folder. Resolves by title, series ID, or source URL. Refuses to clobber an existing directory or entry.

Resolving series names

info, remove, restore, and update resolve series by title, ID, or URL across the whole library. If the target cannot be resolved (no match, or ambiguous with candidates shown), the command exits with code 2.

A mistyped --source domain gets a “Did you mean” suggestion.

JSON output

All library commands support --json for scripting. Every row carries its output_root, so scripts always know which folder a series lives in:

comic-dl list --json
# {"schema_version": 2, "series": [...]}

comic-dl info <series> --json
# {"schema_version": 2, ..., "chapters": [...]}

comic-dl latest --json
# {"schema_version": 2, "chapters": [...]}

Error messages still go to stderr. The schema_version field enables scripts to detect breaking changes. See the JSON output reference for payload shapes.