WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Conversation

@iseeface
Copy link
Contributor

@iseeface iseeface commented Aug 12, 2025

Helloooo mikeee

So i just made extractor that support for downloading from doujindesu.tv :)

Implemented extractors:

  • DoujindesuMangaExtractor
    Handles /manga/ listing pages, fetching all available chapters.
  • DoujindesuChapterExtractor
    Handles individual chapter pages and direct non-chapter posts containing images.

Limitations:

  • Only supports /manga/ and chapter pages.
    Other sections of the site are currently not implemented.

Testing:

  1. Successfully tested locally on multiple scenarios:
  • Manga with chapters
$ python -m gallery_dl -o browser=firefox --cookies "ddcookies.txt" https://doujindesu.tv/duplex-house-chapter-02/
.\gallery-dl\doujindesu\Duplex House\c002\Duplex House_c002_001.webp
.\gallery-dl\doujindesu\Duplex House\c002\Duplex House_c002_002.webp
.\gallery-dl\doujindesu\Duplex House\c002\Duplex House_c002_003.webp
.\gallery-dl\doujindesu\Duplex House\c002\Duplex House_c002_004.webp
  • Manga without chapters (single post format)
$ python -m gallery_dl -o browser=firefox --cookies "ddcookies.txt" https://doujindesu.tv/chop-stick-3/
.\gallery-dl\doujindesu\CHOP STICK 3\CHOP STICK 3_001.webp
.\gallery-dl\doujindesu\CHOP STICK 3\CHOP STICK 3_002.webp
.\gallery-dl\doujindesu\CHOP STICK 3\CHOP STICK 3_003.webp
.\gallery-dl\doujindesu\CHOP STICK 3\CHOP STICK 3_004.webp
  • Titles containing special characters (spaces, apostrophes, symbols)
$ python -m gallery_dl -o browser=firefox --cookies "ddcookies.txt" https://doujindesu.tv/the-hotties-good-at-football-chapter-01/
.\gallery-dl\doujindesu\The Hottie's Good at Football\c001\The Hottie's Good at Football_c001_001.webp
.\gallery-dl\doujindesu\The Hottie's Good at Football\c001\The Hottie's Good at Football_c001_002.webp
.\gallery-dl\doujindesu\The Hottie's Good at Football\c001\The Hottie's Good at Football_c001_003.webp
.\gallery-dl\doujindesu\The Hottie's Good at Football\c001\The Hottie's Good at Football_c001_004.webp
  1. Output matches the intended directory and filename structure.
  2. No runtime errors encountered in local testing.

Notes:

  • When using:
    gallery-dl -o browser=firefox --cookies doujindesucookies.txt https://doujindesu.tv/manga/example-title/
    the extractor generally works fine, but Cloudflare challenge may still appear occasionally. I don't know if that's because of my internet provider or something else.
$ python -m gallery_dl -o browser=firefox --cookies "ddcookies.txt" --verbose https://doujindesu.tv/manga/yarimoku-hitozuma-to-matching-shite-sokuhame-sex/
[doujindesu][warning] Cloudflare challenge
[doujindesu][error] ChallengeError: Cloudflare challenge (403 Forbidden) for 'https://doujindesu.tv/manga/yarimoku-hitozuma-to-matching-shite-sokuhame-sex/'

[doujindesu][debug]
Traceback (most recent call last):
  File ".\gallery-dl\gallery_dl\job.py", line 152, in run
    for msg in extractor:
  File ".\gallery-dl\gallery_dl\extractor\common.py", line 856, in items
    page = self.request(self.page_url, notfound=self.subcategory).text
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File ".\gallery-dl\gallery_dl\extractor\common.py", line 259, in request
    raise exc
gallery_dl.exception.ChallengeError: Cloudflare challenge (403 Forbidden) for 'https://doujindesu.tv/manga/yarimoku-hitozuma-to-matching-shite-sokuhame-sex/'

Also includes:

  • Entry in extractor/__init__.py
  • Basic result tests in test/results/doujindesu.py

Label:

nsfw site:support cloudflare category:hmanga category:manhwa

@iseeface
Copy link
Contributor Author

iseeface commented Aug 13, 2025

I was a little unsure about dropping the extension checks on a4f7ae3a9f7c4b9bacb4e4ae7ee8a83424311ad5, but the ch.php API response is always a reliable set of <img> tags. Since the format is so consistent, i decided to just go with the cleaner approach.

<img src="https://desu.photos/uploads/DOUJINSHI/CHOP STICK 3/5 (1).webp" />
<img src="https://desu.photos/uploads/DOUJINSHI/CHOP STICK 3/5 (2).webp" />
<img src="https://desu.photos/uploads/DOUJINSHI/CHOP STICK 3/5 (3).webp" />
<img src="https://desu.photos/uploads/DOUJINSHI/CHOP STICK 3/5 (4).webp" />

@iseeface iseeface force-pushed the extractor/doujindesu branch from 8b1fdf7 to 4384f57 Compare September 21, 2025 07:13
- Fixed redundancy in `parse_chapter_string` by centralizing the calculation
  of `_subfolder` and `_chapter_suffix` based on `_has_chapter` flag
- Improved `EXCLUDED_PATHS` checking to use `startswith()` for more accurate
  URL filtering and prevention of false positives
- Added full path for logout.php (`/member/logout.php`) to excluded paths
- Removed duplicate calculations in `metadata()` method
@iseeface iseeface force-pushed the extractor/doujindesu branch from 4384f57 to 043ef0e Compare September 30, 2025 14:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants