/Cultured-Downloader

A project to automate the process of downloading images and other attachment files from platforms like Fantia and more!

Primary LanguageSvelteGNU General Public License v3.0GPL-3.0

Cultured Downloader Logo
Cultured Downloader

latest release downloads Code Climate maintainability Go Report Card
English 日本語

Table of Contents

Introduction

This program allows you to download files like images and attachment automatically without you doing the hassle of downloading them yourself from supported platforms like Fantia, Pixiv, and more!

I did this project as I was tired of downloading images manually as some artists do not provide zip files...

Hence, I coded this program to automate the process of downloading images from a post via web scraping.

In the end, I spent about a month doing developing the initial program in Python while learning concepts such as web scraping, async, threading, and more.

After learning Go/Golang however, I decided to rewrite the program in Golang with a GUI using wails with Svelte as the frontend framework.

Star History

Star History Chart

Running the Program

  1. Running the .go files

    • Clone this repository/Download all the files in this repository.
    • Install the latest version of Go/Golang and Node.js
    • Install the Wails CLI by running go install github.com/wailsapp/wails/v2/cmd/wails@latest
    • Run wails build in the root directory of this repository to build the binary and run the program.
      • Alternatively, you can run wails dev to run the program in development mode.
  2. Running the executable file

    • Download the latest Cultured Downloader archive/zip file which will contain the executable files from the releases page
      • Not sure what x86_64 or arm64 means? Those are the architectures of your system and x86_64 is the most common architecture for various systems.
        • Note: x86_64 is also known as x64 or amd64 in some systems.
      • Please check your system's architecture before downloading the zip file. For instance, Apple M1 Macs are using the arm64 architecture.
    • Once downloaded, you can do an integrity check for security reasons by comparing the SHA256 hash of the downloaded zip file with the hash provided in the release notes.
      • For instance, _sha256checksum_windows_x86_64-628b21a1b0dbf33a1137432e0f350e5c4bd49ecac9fa2f8a261555433967d394 contains the SHA256 hash of the zip file that contains the executable file for Windows AMD64 systems.
        • The 64 characters 628b21a1b0dbf33a1137432e0f350e5c4bd49ecac9fa2f8a261555433967d394 suffix is the SHA256 hash of the executable file.
        • You can also simply open it as a text file which would contain the SHA256 checksum as well.
    • Finally, extract the executable file from the archive/zip file and run it.
      • For Linux and macOS, if you're having difficulty extracting the .tar.gz archive file, you can use the terminal to extract the file using the tar -xvf <filename>.tar.gz command.

Terms of Use

  1. This program, Cultured Downloader, is not liable for any damages caused. This program is meant for personal use and to save time downloading images from the various platforms manually.

  2. As a user of this program, please do not use this program to break any of the platform's Terms of Service/Terms of Use.

  3. As a user of this program, you must never share any data such as your cookie files to other people. This is not permissible as it may cause damages to the artists that you are downloading from. If you have been found to be sharing YOUR data or using OTHER people's data, this program and the developer(s) will not be liable for the damages caused but the user(s) involved will be.

  4. By using this program, you agree to the terms and conditions stated above. If you do not agree to the terms and conditions, you are not permitted to for the repository, edit the source code, or use this program.

Features

  • Allow saving of the necessary data like session cookies for future downloads
  • Download images and attachments from the following:
    • Fantia
    • Pixiv Fanbox
    • Pixiv
    • Kemono
  • Platform niche features:
    • Fantia:
      • Able to download products individually or from multiple creators
    • Pixiv:
      • Able to search for "illustrations and ugoira" or "manga" with various filters like sort by popularity (*requires Pixiv Premium)
  • Concurrent downloads for faster downloads
    • Note: This is more prominent on Fantia as the other platforms have rate limits or throttles the download speed.
  • Download GDrive links from posts on:
    • Fantia
    • Pixiv Fanbox
    • Kemono
    • Note: Requires an API key from Google Cloud Platform for GDrive downloads to work.
      • Refer to my guide if unsure.
  • Detect other URL(s) like MEGA, Dropbox, etc. and logs them for your reference
  • Detect passwords for attachments like .zip files and logs them for your reference
  • using FFmpeg to convert Pixiv Ugoira to user-friendly formats like .gif, .apng, .webp, .webm, and .mp4

Usage Notes

  1. This program is meant for personal use and to save time downloading images from the various platforms manually. Please do not use this program and break any of the platform's Terms of Service/Terms of Use.

  2. If you feel unsafe entering your session cookie information into the program, you will not be able to proceed and download. However, please rest assured as the program will never send anything sensitive out of your system!

  3. Sensitive data, such as your session cookie, can be encrypted at rest by providing a master password. However, please refrain from sharing the encrypted data with anyone to be extra safe!

  4. If the platform's frontend design or API has been changed, you can expect this program to break if it is not maintained/updated. In this case, please raise an issue and I will take it a look at it and hopefully fix it as soon as possible.

FAQ

  1. Does this work on other OS platforms such as macOS and Linux?
    • This program has only been tested on Windows and Linux (Ubuntu). However, it should work on other Linux distros and macOS as well.
  2. The program suddenly closes/crashes! What should I do?
    • This is due to how error handling in Golang works, when a fatal error occurs, the program will panic and closes itself.
    • However, please raise an issue with the steps to reproduce the error and I will do my best to fix it.

Final Notes

  1. Please remember that is meant to be used for personal use.
  2. If there is a bug, you can raise an issue and I will do my best to fix it. Otherwise, you can fork this repository and make a pull request to fix the bug if you would like to do so.
  3. If you would like to improve on this program, you can fork this repository and do the necessary changes and make a pull request. I will then review it and merge it I feel that it is a good contribution.
  4. Please consider supporting this project by buying me a coffee or sponsoring me!
    • Your contribution would help ensure the sustainability of this project. Thank you for reading <3

Demo

Downloading files from a Fantia post and managing the Download Queues

downloading Fantia demo and download queue demo

General Settings

general settings

Preferences

preferences settings

Advanced Settings

advanced settings

The OG Python CLI

Menu

menu demo

Downloading files from a post page URL

downloading posts demo

Downloading files from multiple posts from multiple creators

downloading multiple posts demo