Giter VIP home page Giter VIP logo

mangasee123-downloader's Introduction

Mangasee123.com Downloader

Please note that I don’t encourage downloading copyrighted content. You must support your favorite artists by purchasing their work if you’re able to.

What’s Mangasee123?

It’s a manga archive website with a collection of more than 6600 mangas. You could visit it here.

Usage

python MangaseeDL.py MANGA_NAME [CHAPTER_START [CHAPTER_END]]

Examples:

If nothing other than MANGA_NAME is provided, the script tries to download all chapters.

python MangaseeDL.py "One Piece"
python MangaseeDL.py "one piece"
python MangaseeDL.py one-piece

Note that MANGA_NAME is case-insensitive, and spaces could be replaced with hyphens.

If only CHAPTER_START is provided, that chapter is downloaded. The following commands will all download chapter 10 of the manga One Piece:

python MangaseeDL.py "One Piece" 10
python MangaseeDL.py one-piece 10
python MangaseeDL.py One-Piece 10

If CHAPTER_START and CHAPTER_END are both provided, the script tries to download CHAPTER_START to CHAPTER_END. The following commands will all download chapters 10 through 20 of the manga Diamond is Unbreakable:

python MangaseeDL.py "Daomond is Unbreakable" 10 20
python MangaseeDL.py "diamond is unbreakable" 10 20
python MangaseeDL.py diamond-is-unbreakable 10 20

Notes:

  • You can find the manga name through searching on mangasee123.com and finding out the index name. For example, if you search for JoJo’s Bizarre Adventure - Part 4 - Diamond Is Unbreakable, you’ll end up here: https://mangasee123.com/manga/Diamond-Is-Unbreakable. So the name you should enter is Diamond-Is-Unbreakable (case-insensitive).

How does it work?

As of the time of writing this script, mangasee123 serves mangas in the following format:

https://mangasee123.com/read-online/MANGANAME-chapter-CHAPTERNO-page-PAGENO.html

For example, One Piece chapter 1 page 51 can be read on:

https://mangasee123.com/read-online/One-Piece-chapter-1-page-51.html

If we inspect this url’s source, there’s two important variables in the JS codes:

vm.CHAPTERS: An array holding the information for each chapter and the number of its pages.

Example:

vm.CHAPTERS = [
  {
    "Chapter":"100010",
    "Page":"57",
    ...
  },
  {
    "Chapter":"100020",
    "Page":"24",
    ...
  },
  ...;

Note how the chapter has a leading 1 and a tailing zero. We strip that off.

vm.CurPathName: A url in which the images for that chapter is hosted.

Example:

vm.CurPathName = "official-ongoing-2.gamindustri.us";

so images for pages of this chapter are hosted on scans-hot.leanbox.us!

By checking the url for each page image, we can see it’s in the following format:

https://HOST/manga/MANGANAME/CHAPTER-PAGE.png

With CHAPTER and PAGE being 4 3 characters long, respectively.

So the aforementioned One Piece is hosted on:

https://official-ongoing-2.gamindustri.us/manga/One-Piece/0574-021.png

That’s practically it. You can see how this script is able to download mangas.

mangasee123-downloader's People

Contributors

oktoze avatar billweiss avatar

Stargazers

Henrique Manduca avatar Darkgoatie avatar Ferran Grau Horta avatar cdkw2 avatar Tyler Gorrie-Stone avatar  avatar Mitch avatar Hoshino~San avatar qvilligan avatar Victor Martin Ortiz Palacio avatar  avatar Ratul Hasan avatar Ayaan avatar Gustavo D'Mello avatar  avatar Gautam  avatar

Watchers

James Cloos avatar  avatar qvilligan avatar

mangasee123-downloader's Issues

No vm

Full Error:

INFO:root:Fetched details for Berserk...
INFO:root:Fetching requested chapter details...
INFO:root:Downloading requested chapters...
INFO:root:Started downloading chapter 0018...
WARNING:root:No match for vm.CurPathName found
no match for vm.CurPathName found, bailing

I got this error only from the Berserk manga, is there a solution for this?

Script is broken :(

Traceback (most recent call last):
asyncio.run(download_chapters(name, target_chapters[i : i + limit]))
TypeError: 'dict_values' object is not subscriptable

Need to detect 404s

Trying to download Trigun I'm getting a 404 from Cloudflare. Using the debug hooks from #4 I'm getting this output:

DEBUG:urllib3.connectionpool:https://official-complete-1.granpulse.us:443 "GET /manga/Trigun/0006-027.png HTTP/1.1" 404 None
send: b'GET /manga/Trigun/0006-028.png HTTP/1.1\r\nHost: official-complete-1.granpulse.us\r\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.1.2 Safari/603.3.8\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
reply: 'HTTP/1.1 404 Not Found\r\n'
header: Date: Sun, 16 Apr 2023 05:58:26 GMT
header: Content-Type: text/html; charset=utf-8
header: Transfer-Encoding: chunked
header: Connection: keep-alive
header: Vary: Accept-Encoding
header: Last-Modified: Tue, 15 Jun 2021 01:23:51 GMT
header: Cache-Control: max-age=14400
header: CF-Cache-Status: EXPIRED
header: Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=YNLMK8hql8hz5xZoWU3n6p76e5bVFdlDk2sIat6LgDS0KQ9KYxlyc7TKpvBgY15KHe6TOAjmGdRdYo3YlSm1xtTNeDnybl%2F%2FQXBz5hmYwKqnFThjWepX%2FXosnXZss8zqYNgO1e6zTNRQBKkTJ1%2FB42ViP6VA07LJ31wqmLIWyg%3D%3D"}],"group":"cf-nel","max_age":604800}
header: NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
header: Server: cloudflare
header: CF-RAY: 7b8a3250781a38af-IAD
header: Content-Encoding: gzip
header: alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400

And similar from running as python3 MangaseeDL.py -v Trigun 6 6. That's saving the 404 page as NNN.png in the expected folder, but they're all HTML. I've verified One Piece works (picked because it's your example from the help text) so it's not just my connection.

I'm mostly leaving this for myself to figure out unless you get to it first :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.