npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

node-instadien

v1.4.3

Published

Simple, easy implementation of the Instagram private web API.

Downloads

8

Readme

A Instagram Private Web API client 📷🔥 ❤️

Simple, easy implementation of the Instagram private web API.

Some API reference from jlobos/instagram-web-api

Send DM using client from dilame/instagram-private-api

Install

npm install node-insta-web-api

Usage

//send dm by username


const Insta = require('node-insta-web-api')
const InstaClient = new Insta();

(async () => {
  //required username & password for login
  const username = '';
  const password = '';
  const usernameReceiver = ['username target'];
  const message = 'text message';

  const result = await InstaClient.sendDmByUsername(username, password, usernameReceiver, message);
  console.log(result)
})()

//get profile data
const Insta = require('node-insta-web-api')
const InstaClient = new Insta();

(async () => {
    await InstaClient.login('username','password');
    const profileData = await InstaClient.getProfileData();
    console.log(profileData)
})()

//get image by username
const Insta = require('node-insta-web-api')
const InstaClient = new Insta();

(async () => {
   await Insta.getCookie()
   const photos = await Insta.getImageByUser('username');
   console.log(photos)
})()

//update bio using existing cookies
const Insta = require('node-insta-web-api')
const InstaClient = new Insta();

(async () => {
    await InstaClient.useExistingCookie()
    const payload = {
        biography: 'test update bio 1'
    }
    const result = await InstaClient.updateProfile(payload)
    console.log(result)
})()

//get following with pagination using existing cookie
await InstaClient.useExistingCookie();
const dataUser = await InstaClient.getProfileByUsername('amin_udin69');
let following;
let hasNextPage;
let endCursor = '';
const resultAllFollowing = [];
do{
    following = await InstaClient.getFollowingByDataUser(dataUser, 12, endCursor);
    hasNextPage = following.page_info.has_next_page;
    endCursor = following.page_info.end_cursor;
    for (let index = 0; index < following.edges.length; index++) {
        const element = following.edges[index];
        resultAllFollowing.push(element.node)
        
    }
}while(hasNextPage);
console.log(resultAllFollowing)

API Reference

getCookie()

await client.getCookie()

getting guest cookie

_getMediaId(url)

await client._getMediaId('https://www.instagram.com/p/CDFIAxxxxx/')

getting media id by url

  • url: A String

useExistingCookie()

await client.useExistingCookie()

u can use existing cookies, if you don't want to log in repeatedly

login(username, password)

await client.login('username', 'password')

Login.

  • username: A String
  • password: A String

getProfileData()

  //login required
  await InstaClient.login('username','password');
  const profileData = await InstaClient.getProfileData();
  console.log(profileData)

Getting profile data.

changeProfileImage(image)

  //login required

  //using a url is under development
  //by url
  await InstaClient.login('username','password');
  await InstaClient.changeProfileImage('url')

  //by path
  await InstaClient.login('username','password');
  const photo = path.join(__dirname, 'blackhat.png');
  await InstaClient.changeProfileImage(photo)

Change Profile Image.

  • image : A String url / image path

updateProfile(params)

  const payload = {
      biography: 'test update bio 1',
      email: '[email protected]'
  }
  const a = await InstaClient.updateProfile(payload)
  console.log(a)

update profile. for now you can only update your bio.

  • params
    • biography: A String
    • email: A String

getImageByUser(params)

await client.getImageByUser('username')

Gets user photos.

  • username: A String

getVideoByShortCode(shortCode)

  const data = await InstaClient.getVideoByShortCode('CDDs8unBjXX');
  fs.writeFileSync('./test.mp4', data.base64, 'base64')
  console.log(data)

Get video base64 and buffer by short code.

  • shortCode: A String

getLoginActivity()

  //login required
  await InstaClient.useExistingCookie()
  const data = await InstaClient.getLoginActivity();
  console.log(data)

get login activity.

getRecentNotification()

  //login required
  await InstaClient.useExistingCookie()
  const data = await InstaClient.getRecentNotification();
  console.log(data)

get recent notification.

getDirectMessage()

  //login required
  await InstaClient.useExistingCookie()
  const data = await InstaClient.getDirectMessage();
  console.log(data)

get direct message.

getProfileByUsername(username)

  await InstaClient.getCookie()
  const data = await InstaClient.getProfileByUsername('username');
  console.log(data)

get profile user.

  • username: A String

followByUsername(username)

  //login required
  await InstaClient.useExistingCookie()
  const data = await InstaClient.followByUsername('username');
  console.log(data)

follow user by username.

  • username: A String

unfollowByUsername(username)

  //login required
  await InstaClient.useExistingCookie()
  const data = await InstaClient.unfollowByUsername('username');
  console.log(data)

unfollow user by username.

  • username: A String

getStoriesByUsername(username)

  await InstaClient.useExistingCookie()
  const data = await InstaClient.getStoriesByUsername('username');
  console.log(data)

get stories by username.

  • username: A String

likeMediaById(mediaId)

  await InstaClient.useExistingCookie()
  const data = await InstaClient.likeMediaById(00000);
  console.log(data)

like media by media id

  • mediaId: A Number

likeMediaByShortCode(shortCode)

  await InstaClient.useExistingCookie()
  const data = await InstaClient.likeMediaByShortCode('CDFIAQtHUxxxx');
  console.log(data)

like media by shortcode

  • shortCode: A String

unlikeMediaByShortCode(shortCode)

  await InstaClient.useExistingCookie()
  const data = await InstaClient.unlikeMediaByShortCode('CDFIAQtHUxxxx');
  console.log(data)

unlike media by shortcode

  • shortCode: A String

deleteMediaByShortCode(shortCode)

  await InstaClient.useExistingCookie()
  const data = await InstaClient.deleteMediaByShortCode('CDFIAQtHUxxxx');
  console.log(data)

delete media by shortcode

  • shortCode: A String

saveImageByShortCode(shortCode)

  await InstaClient.useExistingCookie()
  const data = await InstaClient.saveImageByShortCode('CDFIAQtHUxxxx');
  console.log(data)

save media by shortcode

  • shortCode: A String

unsaveImageByShortCode(shortCode)

  await InstaClient.useExistingCookie()
  const data = await InstaClient.unsaveImageByShortCode('CDFIAQtHUxxxx');
  console.log(data)

save media by shortcode

  • shortCode: A String

commentToMediaByMediaId(params)

  await InstaClient.useExistingCookie()
  const payload = {
      mediaId: 100000,
      commentText: 'Your Text Comment'
  }
  const data = await InstaClient.commentToMediaByMediaId(payload);
  console.log(data)

add comment to a media by shortcode

  • params
    • mediaId: A Number
    • commentText: A String

commentToMediaByShortCode(params)

  await InstaClient.useExistingCookie()
  const payload = {
      shortCode:'CDFIAQxxxx',
      commentText: 'Your Text Comment'
  }
  const data = await InstaClient.commentToMediaByShortCode(payload);
  console.log(data)

add comment to a media by shortcode

  • params
    • shortCode: A String
    • commentText: A String

replyCommentByShortCode(params)

  await InstaClient.useExistingCookie()
  const payload = {
      shortCode:'CDFIAQtxxxx',
      commentText: '%40username reply comment',
      commentId: '17870873200867xxx'
  }
  const data = await InstaClient.replyCommentByShortCode(payload);
  console.log(data)

reply comment in media by shortcode

  • params
    • shortCode: A String
    • commentText: A String
    • commentId: A String

getEmbedMediaByShortCode(shortCode)

  await InstaClient.useExistingCookie()
  const data = await InstaClient.getEmbedMediaByShortCode('CDFIAQtHUiw');
  console.log(data)

get embed media by shortCode

  • shortCode: A String

getMediaFeedByHashtag(name)

  await InstaClient.useExistingCookie()
  const data = await InstaClient.getMediaFeedByHashtag('berita');
  console.log(data)

get post by hastag

  • name: A String

getUserPostById(userId)

  await InstaClient.useExistingCookie()
  const data = await InstaClient.getUserPostById(00000);
  console.log(data)

get post by user id

  • userId: A Number

findPeopleByUserId(userid)

  await InstaClient.useExistingCookie()
  const data = await InstaClient.findPeopleByUserId(00000);
  console.log(data)

find people by userid

  • userid: A Number

findPeopleByUsername(username)

  await InstaClient.useExistingCookie()
  const data = await InstaClient.findPeopleByUsername('menjadi');
  console.log(data)

find people by username

  • username: A String

addPost(image, caption)

  const photo = path.join(__dirname, '3.jpeg');
  await InstaClient.useExistingCookie();
  const resultAddPost = await InstaClient.addPost(photo, 'this is caption');
  console.log(resultAddPost)

add post to feed

  • image: A String path of image
  • caption: A String

addStory(image)

  const photo = path.join(__dirname, '3.jpeg');
  await InstaClient.useExistingCookie();
  const resultAddStory = await InstaClient.addStory(photo);
  console.log(resultAddStory)

add story

  • image: A String path of image

getFollowingByDataUser(dataUser, size, cursor)

  await InstaClient.useExistingCookie();
  const dataUser = await InstaClient.getProfileByUsername('amin_udin69');
  let following;
  let hasNextPage;
  let endCursor = '';
  const resultAllFollowing = [];
  do{
      following = await InstaClient.getFollowingByDataUser(dataUser, 12, endCursor);
      hasNextPage = following.page_info.has_next_page;
      endCursor = following.page_info.end_cursor;
      for (let index = 0; index < following.edges.length; index++) {
          const element = following.edges[index];
          resultAllFollowing.push(element.node)
          
      }
  }while(hasNextPage);
  console.log(resultAllFollowing)

get following by data user

  • dataUser: A Object data user
  • size: A Number size per page
  • cursor: A String end cursor

getFollowersByDataUser(dataUser, size, cursor)

  await InstaClient.useExistingCookie();
  const dataUser = await InstaClient.getProfileByUsername('amin_udin69');
  let followers;
  let hasNextPage;
  let endCursor = '';
  const resultAllFollowers = [];
  do{
      followers = await InstaClient.getFollowersByDataUser(dataUser, 12, endCursor);
      hasNextPage = followers.page_info.has_next_page;
      endCursor = followers.page_info.end_cursor;
      for (let i = 0; i < followers.edges.length; i++) {
          const element = followers.edges[i];
          resultAllFollowers.push(element.node)
          
      }
  }while(hasNextPage);
  console.log(resultAllFollowers)

get followers by data user

  • dataUser: A Object data user
  • size: A Number size per page
  • cursor: A String end cursor

sendDmByUsername(username, password, usernameReceiver, message)

//login required
  const username = ''; //required
  const password = ''; //required
  const usernameReceiver = ['username target'];
  const message = 'text message';

  const result = await InstaClient.sendDmByUsername(username, password, usernameReceiver, message);
  console.log(result)

send dm

  • username: A String username for login
  • password: A String password for login
  • usernameReceiver: A Array list username receiver message/dm
  • message: A String text message

sendConfirmationEmail()

 await InstaClient.useExistingCookie();
 const sendConfirmationEmailResult = await InstaClient.sendConfirmationEmail();
 console.log(sendConfirmationEmailResult)

License

MIT © Archv Id