const axios = require('axios'); const cheerio = require('cheerio'); const FormData = require('form-data'); async function igstory(url) { try { if (!/^https:\/\/www\.instagram\.com\/stories\/[a-zA-Z0-9_.]+\/?/.test(url)) throw new Error('Invalid ig story url'); const rynn = new FormData(); rynn.append('url', url); const { data: a } = await axios.post('https://savevid.net/api/userverify', rynn, { headers: rynn.getHeaders() }); const form = new FormData(); form.append('q', url); form.append('t', 'media'); form.append('lang', 'en'); form.append('v', 'v2'); form.append('cftoken', a.token); const { data } = await axios.post('https://v3.savevid.net/api/ajaxSearch', form, { headers: form.getHeaders() }); const $ = cheerio.load(data.data); const stories = []; $('ul.download-box > li').each((_, rynn) => { const dl_url = $(rynn).find('.download-items__btn:not(.dl-thumb) a').attr('href'); if (dl_url) stories.push(dl_url); }); return stories; } catch (error) { throw new Error(error.message); } } // Usage: const resp = await igstory('https://www.instagram.com/stories/kitsunee.___/'); console.log(resp);