ins-saver
TypeScript icon, indicating that this package has built-in type declarations

0.5.0 • Public • Published

ins-saver

NPM version NPM Downloads Node.js Version Build Status Gitter Chat

Give me an instagram link to return the JSON data for your related resources ins-saver

  • Deft, lightweight reptilian tools,To help you access the critical data on instagram.
  • Support for Typescript type checking
  • Support for Links to posts and igtv.
  • ES7 async/await support.

Installation

Install using npm:

npm install ins-saver

Install using yarn:

yarn add ins-saver

API Reference

InsSaver

Kind: Exported class

new InsSaver([opts])

Create a new InsSaver.

Param Type Description
[opts] Object
[opts.getCookie] async function Return the cookies
[opts.downloadPath] String The path to save the resource
[opts.outCookie]? async function The Hook function to call when a cookie fails
[opts.proxy]? String Proxy address
[opts.switchCookieInterval]? number Time interval to switch cookies
[opts.useCookieMaxNum]? number Maximum number of cookies used
[opts.cookies]? CookieType[] Use the cookies provided directly if there is a cookies option

Example
Basic usage:

var InsSaver = require('ins-saver');
var config = {
    getCookie:async function (){
       return ["csrftoken=hxGbDuBHR4nM2C0cVVHrsDT4pDfnGXMy;rur=ATN;ds_user_id=48888644144;sessionid=48888644144%3AATiVVxHTkAI8Dx%3A3"
       ]
    },
    downloadPath: "D:\\ins-saver\\resources\\",
    switchCookieInterval:1000 * 60,
    proxy:"http://127.0.0.1:1080" // if use proxy
}
var saver = new InsSaver(config);
//return the json data related to the link
saver.analysisPost("https://www.instagram.com/p/CXDzvDrPQry__/?utm_medium=copy_link",async (data)=>{ 
   	// handle the json data
}) 

saver.analysisPost ⇒ InsSaver

crawls JSON-FORMATTED data like post links https://www.instagram.com/p/CXDzvDrPQry/?utm_medium=copy_link

saver.analysisPost("https://www.instagram.com/p/CXDzvDrPQry__/?utm_medium=copy_link",async (data)=>{ 
	//The Hook function call passes in the parsed JSON data
}) 

The data format that needs to be processed looks something like this :

 type InsJsonDataType = {  
        id:number,
        shortcode:string,
        caption:string, //post desc
        owner:{ 
            id:number,
            profile_pic_url:string, 
            username:string,
            full_name:string,
        },
        is_multiple:boolean,
        list: {
            id:string,
            shortcode:string,
            display_url:string,
            url:string,
            is_video:boolean,
            type:string,
            typename:string
        }[]
    }

saver.analysisIg⇒ InsSaver

crawls JSON-FORMATTED data like Igtv links https://www.instagram.com/tv/CQI4IrrD2mU/?utm_medium=copy_link

The Usage is the same as analysisPost, except that the list array in the returned data contains only one piece of data

saver.download([url], [filename]?) ⇒ Promisedata:downloadFileType

When you get the JSON data, you can use the download function to download the resource you want!

Example Usage:

saver.download(data.owner.profile_pic_url,data.owner.username)
.then( res => {
	//res contains some information about the downloaded resource when the download is successful, or it contains an error message
})

The res data format that needs to be processed looks something like this :

// when success 
  { 
	status: "ok",
	statusCode: 200 ,
	createtime,
	filename,
	filepath,
	fullpath,
	size
  }

// when error
 { 
	status: "error",
	statusCode,
	createtime,
	error
  }

Typings

some typescript typings github

Contributing

Please submit all issues and pull requests to the Changlon/ins-saver repository!

Tests

Run tests using yarn test.

Support

If you have any problem or suggestion please open an issue here.

Readme

Keywords

none

Package Sidebar

Install

npm i ins-saver

Weekly Downloads

1

Version

0.5.0

License

MIT

Unpacked Size

103 kB

Total Files

29

Last publish

Collaborators

  • changlon