Skip to content

Simple, easy implementation of the Instagram private web API.

Notifications You must be signed in to change notification settings

M1n007/node-insta-web-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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: 'update@email.com'
  }
  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