ndbiaw / jewcob-fakku-downloader

Script that allows download manga directly from fakku.net.
3 stars 3 forks source link

Not my code, just fork it to GitHub to make it easy for people to find.

Original project: https://gitgud.io/combtmp-w5f08/jewcob-downloader

forked from https://github.com/Hikot0shi/fakku-downloader/ tested on 7595 urls
7595 works downloaded without an issue (games and anime skipped)
running 24x7 on loonix debian vps with a single ip with:

while :; do python3 main.py --nozip --basic_metadata --DEBUG; sleep 100; done

I never got banned, throttled or blocked by mitm cuckflare
default settings are sufficient
you don't have to change any wait time or timeouts

jewcob-downloader

Jewcob-downloader - this is python script that allows downloading manga directly from fakku.net.

The problem

Fakku.net manga reader has a good protection from download.

Solution

Quality

There is no difference in quality between element.screenshot and canvas.todataurl. Both returns RGBA32 PNG.
If both width and height of scrambled/obfuscated jpeg image are multiple of 8 (ex 1920x1360) you can get unscrambled/deobfuscated image using lossless jpeg transformation with jpegtran
The rest are kept as bloated png with 4x or 5x the size of jpeg, with the same shitty jpeg quality.
Basically fakku is serving shitty color jpegs and most rippers are treating them as high quality lossless pngs.

Implementation

Changes from the fakku-downloader

How to launch

From source

1) Download or clone this repository 2) Download and install Python version >= 3.10 3) Create urls.txt file in root folder and write into that urls of manga one by line 4) Install all requirements pip install -r requirements.txt 5) Open root folder in command line and run the command python main.py

Some features

Results

pyppeteer rewrite
unstable, on every page.goto() there is 50% chance of it throwing pyppeteer.errors.PageError: Page crashed!, test took 33 sec

selenium using cdp
unstable 50% chance of addScriptToEvaluateOnNewDocument() failing, slightly slower than pyppeteer, test took 37 sec

selenium with selenium-wire mitmproxy
stable, worked through 68 free links without an issue, slightly slower than cdp, test took 43 sec

selenium using CanvasRenderingContext2D.originalgetImageData() method
slow, very slow, ~20 seconds to get pixels from browser and to put them back together into single rgba32 image, ~20s per image

selenium using canvas.toblob() can't save files outside of browser download location

selenium using cdp (Chrome DevTools Protocol) Fetch Domain with Selenium-Interceptor
stable, worked through 69 free links without an issue, slightly faster than selenium-wire, test took 42 sec

Extra: Enable controversial content

https://archived.moe/h/thread/6271290/#6289883
https://archiveofsins.com/h/thread/6271290/#6289883

  1. Go to https://www.fakku.net/account/preferences
  2. Open the browser console (F12)
  3. Paste this into the console and press enter:
    $("form.js-start-disabled-button").first().append($('<input type="hidden" name="content_controversial" value="1" />')).find(':submit').attr("disabled", false).click();
  4. It won't return anything but if you check controversial gallery it should work now.