instagram-web-api

A Instagram Private Web API client

Simple, easy and very complete implementation of the Instagram private web API.

Support for all the main functions of Instagram Web

Well tested, CI

All test runs daily

Install

npm install instagram-web-api

Usage

Intance Instagram and call login method; this stores the credentials in memory.

const Instagram = require ( ' instagram-web-api ' ) const { username , password } = process . env const client = new Instagram ( { username , password } ) client . login ( ) . then ( ( ) => { client . getProfile ( ) . then ( console . log ) } )

Using async / await in Node >= 8

const Instagram = require ( ' instagram-web-api ' ) const { username , password } = process . env const client = new Instagram ( { username , password } ) ; ( async ( ) => { await client . login ( ) const profile = await client . getProfile ( ) console . log ( profile ) } ) ( )

Save cookies to disk by using a though-cookie store.

const Instagram = require ( ' instagram-web-api ' ) const FileCookieStore = require ( ' tough-cookie-filestore2 ' ) const { username , password } = process . env const cookieStore = new FileCookieStore ( ' ./cookies.json ' ) const client = new Instagram ( { username , password , cookieStore } ) ; ( async ( ) => { const photo = ' https://scontent-scl1-1.cdninstagram.com/t51.2885-15/e35/22430378_307692683052790_5667315385519570944_n.jpg ' await client . login ( ) const { media } = await client . uploadPhoto ( { photo : photo , caption : ' testing ' , post : ' feed ' } ) console . log ( ` https://www.instagram.com/p/ ${ media . code } / ` ) } ) ( )

API Reference

const client = new Instagram ( { username : ' ' , password : ' ' } , { language : ' es-CL ' } )

Initializes the client.

credentials username : The username of account password : The password of account cookieStore : An optional though-cookie cookie storage, which allows for persistent cookies. Default is undefined

opts language : The language of response from API. Default is en-US proxy : String of a proxy to tunnel all requests. Default is undefined



const { username , password , cookies } = await client . login ( { username : ' ' , password : ' ' } ) const { authenticated , user } = await client . login ( { username : ' ' , password : ' ' } )

Login in the account, this method returns user ( true when username is valid) and authenticated ( true when login was successful)

credentials username : The username of account password : The password of account



await client . logout ( )

Logout in the account.

const feed = await client . getHome ( ' KGEAxpEdUwUrxxoJvxRoQeXFGooSlADHZ8UaDdSWbnOIxxoUUhyciJ7EGlxNlZjaYcUaXTgUM00qyBrgBhUsLezIGqVTlxqausga5W-fVax9xRryaBdN1EnIGvdQFgzxoMgaFoLO7v7xWQA= ' )

Get home feed timeline, media shared by the people you follow.

params end_cursor ( String ) for pagination



const instagram = await client . getUserByUsername ( { username : ' instagram ' } ) const me = await client . getUserByUsername ( { username : client . credentials . username } )

Get user by username, this method not require authentication for public profiles.

params username : The username of the profile



const followers = await client . getFollowers ( { userId : ' 1284161654 ' } )

Get followers for given userId. Be aware that the response gets slightly altered for easier usage.

params userId : The user id first : Amount of followers to request. Default is 20 after : Optional end_cursor ( String ) for pagination.



const followings = await client . getFollowings ( { userId : ' 1284161654 ' } )

Get followings for given userId. Be aware that the response gets slightly altered for easier usage.

params userId : The user id first : Amount of followings to request. Default is 20 after : Optional end_cursor ( String ) for pagination.



const activity = await client . getActivity ( )

Get activity of account, news following, liked, etc.

const profile = await client . getProfile ( )

Get profile the account first_name , last_name , email , username , phone_number , gender , birthday , biography , external_url and chaining_enabled .

updateProfile(params)

await client . updateProfile ( { biography : ' ' , website : ' https://jlobos.com/ ' , gender : 1 } )

Update profile the account.

params name : The full name. Default is email : The email of account. Default is username : The username of account. Default is client.credentials.username phoneNumber : The Phone Number. Default is gender : Number 1 male, 2 female and 3 not specified biography : The Bio. Default is website : The Website. Default is similarAccountSuggestions : Boolean Include your account when recommending similar accounts people might want to follow. Default is true



const fs = require ( ' fs ' ) const photo = fs . join ( __dirname , ' photo.jpg ' ) await client . changeProfilePhoto ( { photo } )

Change the profile photo.

params photo : A String of path file or URL



await client . deleteMedia ( { mediaId : ' 1442533050805297981 ' } )

Delete a media, photo, video, etc. by the id.

params mediaId : The media id



const photo = ' https://scontent-scl1-1.cdninstagram.com/t51.2885-15/e35/16465198_658888867648924_4042368904838774784_n.jpg ' await client . uploadPhoto ( { photo , caption : ' ' , post : ' feed ' } )

Upload a photo to Instagram. Only jpeg images allowed.

params photo : A String of path file or URL caption : The caption of photo. Default is post : The local post, feed or story



const location = await client . getMediaFeedByLocation ( { locationId : ' 26914683 ' } )

Get latitude, longitude, top posts, last media, country, city, and more related to the location.

params locationId : The location id



const tag = client . getMediaFeedByHashtag ( { hashtag : ' unicorn ' } )

Explore last media and top posts feed related to a hashtag.

params hashtag : A hashtag, not including the "#"



const venues = client . locationSearch ( { query : ' chile ' , latitude : - 33 . 45 , longitude : - 70 . 6667 } )

Search venues by latitude and longitude.

params latitude : Latitude longitude : Longitude query : A optional location name. Default is



const media = await client . getMediaByShortcode ( { shortcode : ' BQE6Cq2AqM9 ' } )

Get data of a media by the Instagram shortcode

params shortcode : A shortcode



addComment(params)

await client . addComment ( { mediaId : 1442533050805297981 , text : ' awesome ' } )

Add comment to a media item.

params mediaId : The media id text : Comment text replyToCommentId : Optional comment id to which to reply



deleteComment(params)

await client . deleteComment ( { mediaId : ' 1442533050805297981 ' , commentId : ' 17848908229146688 ' } )

Delete a comment.

params mediaId : The media id commentId : The comment id



await client . getChallenge ( { challengeUrl : ' /challenge/1284161654/a1B2c3d4E6/ ' } )

Get information about a challenge.

params challengeUrl : A String with a challenge path



updateChallenge(params)

const challengeUrl = ' /challenge/1284161654/a1B2c3d4E6/ ' await client . updateChallenge ( { challengeUrl , choice : 0 } ) await client . updateChallenge ( { challengeUrl , securityCode : 123456 } )

Request or submit a verification code for the given challenge.

params challengeUrl : A String with a challenge path choice : Number 0 for phone and 1 for email. Default is `` securityCode : Number the received verification code for the challenge. Default is ``



await client . resetChallenge ( { challengeUrl : ' /challenge/1284161654/a1B2c3d4E6/ ' } )

Reset a challenge to start over again.

params challengeUrl : A String with a challenge path



await client . replayChallenge ( { challengeUrl : ' /challenge/1284161654/a1B2c3d4E6/ ' } )

Request a new verification message.

params challengeUrl : A String with a challenge path



await client . approve ( { userId : ' 1284161654 ' } )

Approve a friendship request.

params userId : The user id



await client . ignore ( { userId : ' 1284161654 ' } )

Reject a friendship request.

params userId : The user id



await client . follow ( { userId : ' 1284161654 ' } )

Follow a user.

params userId : The user id



await client . unfollow ( { userId : ' 1284161654 ' } )

Unfollow a user.

params userId : The user id



await client . block ( { userId : ' 1284161654 ' } )

Block a user.

params userId : The user id



await client . unblock ( { userId : ' 1284161654 ' } )

Unblock a user.

params userId : The user id



await client . like ( { mediaId : ' 1442533050805297981 ' } )

Like a media item.

params mediaId : The media id



await client . unlike ( { mediaId : ' 1442533050805297981 ' } )

Unlike a media item.

params mediaId : The media id



await client . save ( { mediaId : ' 1442533050805297981 ' } )

Save a media item.

params mediaId : The media id



await client . unsave ( { mediaId : ' 1442533050805297981 ' } )

Unsave a media item.

params mediaId : The media id



await client . search ( { query : ' unicorn ' } )

Search users, places, or hashtags.

params query : Query context : The context of search, hashtag , place , user or blended . Default is blended



await client . getPhotosByHashtag ( { hashtag : ' unicorn ' } )

Get photos for hashtag.

params hashtag : A String with a hashtag first : A number of records to return after : The query cursor String for pagination



await client . getPhotosByUsername ( { username : ' unicorn ' } )

Gets user photos.

params username : A String with a hashtag first : A number of records to return after : The query cursor String for pagination



getPrivateProfilesFollowRequests

await client . getPrivateProfilesFollowRequests ( cursor )

getChainsData

await client . getChainsData ( { userId } )

This will return the similar accounts, that you see, when you click on the ARROW in a profile.

params userId : The user id



await client . getMediaLikes ( { shortcode : ' B-0000000 ' , first : ' 49 ' , after : ' ' } )

This will return the media likes.

params shortcode : The shortcode media like this: https://www.instagram.com/p/B-00000000/, only put shortcode like this : B-000000000 first : A number of records to return max is 49 after : The query cursor String for pagination



getMediaComments(params)

await client . getMediaComments ( { shortcode : ' B-0000000 ' , first : ' 12 ' , after : ' ' } ) . catch ( ( error ) => { console . log ( error ) ; } ) . then ( ( response ) => { console . log ( response ) ; } ) ; let pointer = response . page_info . end_cursor ; try { pointer = JSON . parse ( pointer ) ; pointer = JSON . stringify ( pointer ) ; } catch ( e ) { console . log ( ' Pointer is not array!, don ' t need to be converted ! ' ); }

This will return the media comments.

params shortcode : The shortcode media like this: https://www.instagram.com/p/B-00000000/, only put shortcode like this : B-000000000 first : A number of records to return max is 49 after : The query cursor String for pagination



License

MIT Jesus Lobos

Comentarios

Entradas populares de este blog

Unnofficial Python wrapper for the unite-db.com REST API.

bybit-api