# 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 `_`, 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:////user/`), post URL (`.../post/`) or file URL (`https:///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//_`. - File URL: `OUTPUT/`, taken from the `?f=` parameter when present. ## How it works 1. `GET /api/v1//user//posts?o=N` pages through the posts, or `GET /api/v1//user//post/` fetches one. 2. Each post has a `file` and `attachments`, each with a storage `path`. 3. `GET /data` redirects to a file node (`nN.`) 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. 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](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.