This is a forked better version of Kemono and Coomer Downloader, since the original project has too many bugs and bad practices in the codebase, and also in a very inactive status in terms of maintaining the project.
Check Releases for stable release versions of this tool. The main branch could contain some experimental features.
-
Make sure you have Python installed on your system.
-
Clone this repository:
git clone https://github.com/isaswa/Better-Kemono-and-Coomer-Downloader/
- Navigate to the project directory:
cd Better-Kemono-and-Coomer-Downloader
- Install the dependencies
pip install -r requirements.txt
- Run the main script:
python main.py
- Follow the interactive terminal UI to choose what you want to download or customize the program.
Posts are saved in folders to facilitate organization. The folder structure follows the pattern below:
- Platform: A main folder is created for each platform (Kemono or Coomer).
- Author: Within the platform folder, a folder is created for each author in the format Name-Service-Id.
- Posts: Within the author's folder, there is a subfolder called
posts
where contents are organized. Each post is saved in a subfolder identified by the post ID.
Better-Kemono-and-Coomer-Downloader/
│
├── kemono/ # Kemono platform folder
│ ├── Name-Service-Id/ # Author folder in Name-Service-Id format
│ │ ├── posts/ # Author's posts folder
│ │ │ ├── postID1_postTitle1/ # Post folder with ID 1
│ │ │ │ ├── post_content # Post content
│ │ │ │ ├── files.md # (Optional) File with file information
│ │ │ │ └── ... # Other post files
│ │ │ ├── postID2_postTitle2/ # Post folder with ID 2
│ │ │ │ ├── post_content # Post content
│ │ │ │ └── files.txt # (Optional) File with file information
│ │ │ └── ... # Other posts
│ │ └── ... # Other author content
│ └── Name-Service-Id/ # Another author folder in Name-Service-Id format
│ ├── posts/ # Author's posts folder
│ └── ... # Other content
│
├── coomer/ # Coomer platform folder
│ ├── Name-Service-Id/ # Author folder in Name-Service-Id format
│ │ ├── posts/ # Author's posts folder
│ │ │ ├── postID1_postTitle1/ # Post folder with ID 1
│ │ │ │ ├── post_content # Post content
│ │ │ │ ├── files.txt # (Optional) File with file information
│ │ │ │ └── ... # Other post files
│ │ │ ├── postID2_postTitle2/ # Post folder with ID 2
│ │ │ ├── post_content # Post content
│ │ │ └── ... # Other post files
│ │ └── ... # Other author content
│ └── Name-Service-Id/ # Another author folder in Name-Service-Id format
│ ├── posts/ # Author's posts folder
│ └── ... # Other content
│
│
└── failed_downloads.txt # A log buffer of links with failed downloads
For any failed downloads attemp within a link when processing, the link will be automatically saved to this log file. You can try following this work flow to retry your failed link downloads:
Choose an option:
1 - Download 1 post or a few separate posts
2 - Download all posts from a profile
3 - Customize the program settings
4 - Exit the program
Enter your choice (1/2/3/4): 1
Download 1 post or a few separate posts
------------------------------------
Choose the input method:
1 - Enter the links directly
2 - Loading links from a TXT file
3 - Back to the main menu
Enter your choice (1/2/3): 2
Enter the path to the TXT file: failed_downloads.txt
After a successful retry with all files downloaded completely, the link will be automatically removed from failed_downloads.txt
.
You can disable the download of this summary file by setting save_info=false
in config/config.json
The files.md
(or files.txt
, depending on the chosen configuration) file contains the following information about each post:
- Title: The post title.
- Description/Content: The post content or description.
- Embeds: Information about embedded elements (if any).
- File Links: URLs of files present in the Attachments, Videos, and Images sections.
You can set the configurations by main.py
interactive UI or manually change the json files under config/
.
The domain for Kemono
and Coomer
web services is set in config/domain.json
, and the user should fix them everytime these web services moved their domain (not every often, though).
Leave any comment or bug report in the Issues page.
Any pull request is welcome, but it's better to provide a good evidence or tests for proving fixed bugs/issues.