1.0.4 • Published 3 years ago

@marsron/google-image v1.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

@marsron/google-image

Another Google Image Search NodeJS module. The nature of these things is that they eventually break as GIS changes, but this one works as of August 1st 2021.

Installation

Install @marsron/google-image with npm

npm install @marsron/google-image

Usage / Examples

const googleImage = require('@marsron/google-image')

googleImage('cats')
  .then(results => {
    console.log(results)
  })
  .catch(error => {
    console.error(error)
  })

Output:

[
  {
    "url": "https://i.ytimg.com/vi/mW3S0u8bj58/maxresdefault.jpg",
    "width": 1280,
    "height": 720
  },
  {
    "url": "https://i.ytimg.com/vi/tntOCGkgt98/maxresdefault.jpg",
    "width": 1600,
    "height": 1200
  },
  {
    "url": "https://www.petfinder.com/wp-content/uploads/2013/09/cat-black-superstitious-fcs-cat-myths-162286659.jpg",
    "width": 632,
    "height": 353
  },
  {
    "url": "https://upload.wikimedia.org/wikipedia/commons/1/1e/Large_Siamese_cat_tosses_a_mouse.jpg",
    "width": 3415,
    "height": 2268
  },
  ...
]

If you want to pass additional stuff to tack onto the Google image search URL, pass an object containing additionalQuery. For example:

const options = {
  additionalQuery: {
    tbs: 'isz:l' // Large image size
  }
}

googleImage('cat', options).then(...)

You can limit the number of results:

const options = {
  additionalQuery: {
    tbs: 'isz:l' // Large image size
  },
  limit: 5
}

googleImage('cat', options).then(...)

You can also filter out results from specified domains:

const options = {
  additionalQuery: {
    tbs: 'isz:l' // Large image size
  },
  limit: 5,
  blacklistDomains: [
    'pinterest.com',
    'deviantart.com'
  ]
}

googleImage('cat', options).then(...)

Specifying blacklistDomains will both tell Google to not to include results that come from web pages on those domains and also filter image results that are hosted on those domains. (Sometimes an image is on an HTML page on a domain not included in your filters and has an img tag that loads from a domain that is included in your filters.)

Everything can be crammed into a object as well using query:

const options = {
  query: 'cat',
  additionalQuery: {
    tbs: 'isz:l' // Large image size
  },
  limit: 5,
  blacklistDomains: [
    'pinterest.com',
    'deviantart.com'
  ]
}
googleImage(options).then(...)

Support

For support, email marsron204@gmail.com or message MarsRon#7602 on Discord.

License

MIT