NodeJS / Typescript SDK for Internet Archive APIs
https://archive.org/services/docs/api/
Use pnpm to install the module
pnpm install internetarchive-sdk-jsOr use npm to install the module
npm install internetarchive-sdk-jsOr use yarn to install the module
yarn add internetarchive-sdk-jshttps://mxwllstn.github.io/internetarchive-sdk-js/classes/InternetArchive.html
import InternetArchive from 'internetarchive-sdk-js'
const ia = new InternetArchive()
void (async () => {
const filters = {
collection: 'library_of_congress',
subject: 'basketball'
}
const options = {
rows: 10,
fields: 'identifier'
}
const items = await ia.getItems({ filters, options })
console.log(items.response.docs)
})()Create Item (Requires "S3-Like API Key")
import InternetArchive from 'internetarchive-sdk-js'
const { IA_TOKEN } = process.env || {}
const ia = new InternetArchive(IA_TOKEN, { testmode: true })
void (async () => {
const filePath = './generic-image.jpg'
await ia.createItem({
identifier: `generic-image-${Date.now()}`,
collection: 'opensource_image',
mediatype: 'image',
upload: {
filename: 'generic-image.jpg',
path: filePath,
},
metadata: {
title: 'Generic image',
creator: 'Generic creator',
subject: 'generic',
},
})
})()Update Item (Requires "S3-Like API Key")
import InternetArchive from 'internetarchive-sdk-js'
const { IA_TOKEN } = process.env || {}
const ia = new InternetArchive(IA_TOKEN, { testmode: true })
void (async () => {
const itemId = 'internetarchive-test-item-id'
try {
const response = await ia.updateItem(itemId, { title: 'new title' })
console.log(response)
} catch (err) {
console.log(err.message)
}
})()