coomer_dl
Download every file of a Coomer creator, of a single post, or a single file, from the command line.
- Follows the creator's post pagination (50 posts per API page).
- Saves files as
<post id>_<original name>, so a post's files stay together. - Resumes partial files and skips finished ones when run again against the same folder, so re-running a creator only fetches what is new.
- Works with any Coomer mirror domain, since API and file URLs are built from the URL you pass.
Requirements
Python 3.12+ with requests.
Usage
coomer_dl [-h] [-o DIR] url
| Option | Meaning |
|---|---|
url |
Creator URL (https://<domain>/<service>/user/<id>), post URL (.../post/<id>) or file URL (https://<domain>/data/...) |
-o, --output DIR |
Base download folder (default: /data/coomer) |
-h, --help |
Show help and exit |
The default folder is set by DEFAULT_OUTPUT near the top of the script.
Examples:
coomer_dl https://coomer.st/onlyfans/user/NAME
coomer_dl https://coomer.st/onlyfans/user/NAME/post/123456
coomer_dl -o ~/Downloads 'https://coomer.st/data/ab/cd/HASH.mp4?f=name.mp4'
Quote file URLs so the shell leaves ? and & alone.
Where files go
- Creator or post:
OUTPUT/<creator name>/<post id>_<file name>. - File URL:
OUTPUT/<file name>, taken from the?f=parameter when present.
How it works
GET /api/v1/<service>/user/<id>/posts?o=Npages through the posts, orGET /api/v1/<service>/user/<id>/post/<post id>fetches one.- Each post has a
fileandattachments, each with a storagepath. GET /data<path>redirects to a file node (nN.<domain>) serving the file.
API calls send Accept: text/css, without it DDoS-Guard answers 403. When the
script reports nothing found, check these steps against the live site first.
License
Copyright (C) 2026 Danilo M. danix@danix.xyz
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. See LICENSE for the full text.
Development Approach
This project is developed using AI-assisted tools. Code is generated with the help of AI based on human-provided specifications, design decisions, and iterative feedback.
All contributions are reviewed, tested, and curated by the maintainer before being included in the codebase. AI is used as a productivity and exploration tool, while human oversight remains central to all decisions.
The goal is to combine the flexibility of AI-assisted development with standard open-source practices such as transparency, review, and accountability.
