Website can be found at www.viz.com/shonenjump
It's a limited version of MangaPlus by Shueisha (as Viz only offers SJ), except the image quality is MUCH better. (Shueisha has ~150KB per page, Viz has ~400KB).
Although, it seems to be available only for a few countries, can't confirm as I can just access the manga chapters for free.
Would be great if support can be added for this :smiley:
PS: I've tried enabling the high resolution preference for shueisha, but it doesn't seem to work for me - still getting ~100KB images, whereas the viz site has -400KB pages for the same chapters.
PS: I've tried enabling the high resolution preference for shueisha, but it doesn't seem to work for me - still getting ~100KB images, whereas the viz site has -400KB pages for the same chapters.
I confirmed now that the preference is not working properly, I will take a look and try to fix that :)
I confirmed now that the preference is not working properly, I will take a look and try to fix that :)
Even that's a valid solution. I just assumed that high res was supported for only some manga, like the double page preference.
BTW, is there any list of manga for which the double page pref works? It seems to be unsupported for the ones that I follow at least.
I looked at the extension and forget what I've said, the preference is in fact working, but since it uses the same images as the website, nothing really to do to improve the quality. I don't have access to the Viz website in my country, but I will try to use a VPN and make an extension.
I just assumed that high res was supported for only some manga, like the double page preference.
It can be the case since if you compare, for example, the first chapter of One Piece with high and low, you can see a much better image with high. Maybe in the weekly releases they are reducing the image size for some reason (maybe an attempt to reduce the traffic due to the quarantine, but I am just guessing).
BTW, is there any list of manga for which the double page pref works? It seems to be unsupported for the ones that I follow at least.
What I have used for testings was Moon Land, at least the first chapter supports it. I don't know the others that support this :/
I don't have access to the Viz website in my country, but I will try to use a VPN and make an extension.
Thank you so much! :smile:
. Maybe in the weekly releases they are reducing the image size for some reason (_maybe an attempt to reduce the traffic due to the quarantine_, but I am just guessing).
Sadly, that's probably not the case. Viz existed before Shueisha was launched, and has always had higher quality releases - even when both release the weekly manga simultaneously. Might just be some tradeoff by Shueisha that we don't know about.
What I have used for testings was Moon Land, at least the first chapter supports it. I don't know the others that support this :/
We can't really do anything about that except wait for Shueisha to add support. Thanks for your work though!
Just an update: I am still working on the extension, but I am facing some problems with their "encryption" used in the chapter images. The rest of the extension is complete though.
I looked at their site a few days ago, they scramble images like Japscan does, right? Good luck with that.
I looked at their site a few days ago, they scramble images like Japscan does, right? Good luck with that.
Yep, but they don't follow a pattern, they use a unique key that is read from an EXIF tag on the jpg to unscramble the middle parts of the image. The problem is that the libraries that I tested that read the EXIF (AndroidX ExifInterface, Metadata-extractor and Apache Commons Imaging) are always returning 0, null or an exception with the images' InputStream from OkHttp response :(
The URLs have a query parameter Signature that I suspect that maybe have the same content from the key, but I have not confirmed and tested though.
Edit: the EXIF tag used is the ImageUniqueID.
The URLs have a query parameter
Signaturethat I suspect that maybe have the same content from the key, but I have not confirmed and tested though.
From what I could see, the Signature and Key-Pair-Id params might have something to do with firebase or cloudfront. They seem to be returned from a GET of get_manga_url endpoint, and aren't used anywhere in the reader.js file.
I tried reading the EXIF from a Python module (exif), and it seemed to work properly, giving the ImageUniqueID tag value.
Even after that, the for loop for unscrambling the images is kinda scary :sweat:
PS: Something weird, the first time I was testing, the pages were loaded directly as JPEGs. But after a refresh, they were formatted (mime-typed) as XML for some reason. I'll try experimenting more.
I tried reading the EXIF from a Python module (exif), and it seemed to work properly, giving the
ImageUniqueIDtag value.
That's good, maybe the problem is related to the Java libraries used.
As a side note, I have tried to use the exif-js module from Node, which is the same that the site uses, through Duktape, but didn't work too.
Even after that, the for loop for unscrambling the images is kinda scary
I have already converted it to Kotlin, it's not really hard. If you want to see, it's on my fork here, maybe with the code someone can point any mistake or something wrong.
PS: Something weird, the first time I was testing, the pages were loaded directly as JPEGs. But after a refresh, they were formatted (mime-typed) as XML for some reason. I'll try experimenting more.
That's weird, I haven't faced this.
@alessandrojean
PS: Something weird, the first time I was testing, the pages were loaded directly as JPEGs. But after a refresh, they were formatted (mime-typed) as XML for some reason. I'll try experimenting more.
That's weird, I haven't faced this.
I got this too. I believe it's from the image expiring.
I figured out the issue with the Kotlin. BitmapFactory.decodeStream(image) is consuming the stream, so when ExifInterface tries to read it, it gets no data. I'm sure there are plenty of ways to fix that, but this works if you want a quick solution for testing.
Wow, that makes sense, I will try to make a copy of the stream first to get the data and if it works I can submit the PR :)
Appreciate the work you guys put into this! Been following the repo. Thanks 馃憤