Skip to content

LuckyYam/nhentai-ts

Repository files navigation

nhentai-ts

NPM

Scrap and build a PDF of a doujin from NHentai. Check the available sites here.

Documentation


Installation

yarn add @shineiichijo/nhentai-ts

Note

If you're choosing nhentai.net for the site, make sure to follow the following steps (as the site has enabled cloudflare protection):

  • Open https://nhentai.net/ in your browser.
  • Open Dev Tools and set the User Agent to what you want (you'll need the user agent).
  • Reload the site and wait for the clearance of cloudflare (without closing the Dev Tools).
  • Save the cookie value from the Network Tab (cf_clearance value).

After following all these steps, you are all set. You can also check the example of it (at the first one). Remember, the cookie value expires after 30 minutes of inactivity. So, you might have to do the above steps again (in case you're gonna use it again).

Usage Examples

import { NHentai } from '@shineiichijo/nhentai-ts'

const user_agent = 'User Agent'
const cookie_value = 'cf_clearance=abcdefghijklmnopq'
const nhentai = new NHentai({ site: 'nhentai.net', user_agent, cookie_value }) //check above
;(async () => {
    //Explores the home page
    const { data } = await nhentai.explore()
    console.log(data)
})()
import { NHentai } from '@shineiichijo/nhentai-ts'

const nhentai = new NHentai()
;(async () => {
    //searches for manga
    const { data } = await nhentai.search('loli' /* title of the doujin to search */, { page: 1 } /* Page of the search */)
    const doujin = data[0]
    //gets the contents of a doujin
    const { images } = await doujin.getContents()
    console.log(images.pages) //pages of the doujin
    //builds a PDF from the doujin pages
    await images.PDF('loli.pdf' /* Filename of where the PDF should be saved */) //will return a Buffer if no filename is provided
})()
import { NHentai } from '@shineiichijo/nhentai-ts'

const nhentai = new NHentai({ site: 'nhentai.to' }) //configuring a mirror site of the class (you can check the available sites here: https://github.com/LuckyYam/nhentai-ts/blob/master/src/lib/constants.ts#L1)
//validates the ID of a doujin
nhentai.validate('172').then(console.log)
import { NHentai } from '@shineiichijo/nhentai-ts'

const nhentai = new NHentai()
//explores all of the available doujin (homepage)
nhentai.explore(2 /* Page number of exploring the doujin */).then(console.log)
import { NHentai } from '@shineiichijo/nhentai-ts'

const nhentai = new NHentai()
//gets a random doujin with its contents
nhentai.getRandom().then(console.log)
import { NHentai } from '@shineiichijo/nhentai-ts'

const nhentai = new NHentai()
//gets a doujin contents by its ID
nhentai.getDoujin(172).then(console.log)
import { NHentai } from '@shineiichijo/nhentai-ts'

const nhentai = new NHentai()
nhentai.getDoujin('2456').then(
    async (res) =>
        //downloads the pages of a doujin and saves it in a folder
        await res.images.download(
            'nhentai' /* Folder name where the downloaded pages should be saved */
        )
)
import { NHentai } from '@shineiichijo/nhentai-ts'

const nhentai = new NHentai()
nhentai.getRandom().then(
    async (res) =>
        //Builds a zip of doujin pages
        await res.images.zip(
            'nhentai.zip' /* Filname of where the zip should be saved */
        ) //it will return a Buffer if no filename is provided
)