ins-saver
v0.5.0
Published
Give me an instagram link to return the JSON data for your related resources
Downloads
9
Readme
ins-saver
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
andigtv
. - ES7 async/await support.
Installation
Install using npm:
npm install ins-saver
Install using yarn:
yarn add ins-saver
API Reference
- ins-saver
- InsSaver ⏏
- new InsSaver([opts])
- instance
- static
.warn(msg) ⇒ void
.info(msg) ⇒ void
.title(msg,color?,indent?) ⇒ void
.log(o,tit?,color?,indent ?) ⇒ void
.createUrl(urlOrCode) ⇒ string
.createTvUrl(urlOrCode) ⇒ string
.getShortCode(url) ⇒ string
- InsSaver ⏏
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.