UNPKG

anstrmv2

Version:

an npm package to download anime episodes for free.

178 lines (176 loc) 7.12 kB
const puppeteer = require('puppeteer-extra'); const StealthPlugin = require('puppeteer-extra-plugin-stealth'); puppeteer.use(StealthPlugin()); async function getRealUrl(url) { if (url.indexOf('https://animixplay.to/api/live') > -1) { var browser = await puppeteer.launch({ args: ['--no-sandbox', '--disable-setuid-sandbox'] }); var page = await browser.newPage(); await page.goto(url, { waitUntil: 'networkidle2' }); //wait for page load then wait for half a second then get the current url and return it await page.waitForTimeout(500); const rurl = await page.evaluate(() => { return window.location.href; }); await browser.close(); return rurl; } else { return "Could not find anime"; } } async function StreamEpisode(name, episode) { name = name.replace(/ /g, '-'); name = name.toLowerCase(); var url = "https://animixplay.to/v1/" + name + "/ep" + episode; var browser = await puppeteer.launch({ args: ['--no-sandbox', '--disable-setuid-sandbox'] }); var page = await browser.newPage(); await page.goto(url, { waitUntil: 'networkidle2' }); //when the page loads run a javascript function to get the src of the iframe await page.evaluate(() => { console.log = null; }); //if page url is not an animekisa.tv name and episode then return saying could not find anime if (page.url() == "https://animixplay.to/v1/" + name) { //inside the play video class is the iframe we need to get the src const rurl = await page.evaluate(() => { var rurl = $('#iframeplayer').attr('src'); return "https://animixplay.to" + rurl; }); await browser.close(); return getRealUrl(rurl); } else if (page.url() == url) { const rurl = await page.evaluate(() => { var rurl = $('#iframeplayer').attr('src'); return "https://animixplay.to" + rurl; }); await browser.close(); return getRealUrl(rurl); } else { await browser.close(); return "Could not find anime"; } } async function GetHtml(url) { var browser = await puppeteer.launch({ args: ['--no-sandbox', '--disable-setuid-sandbox'] }); var page = await browser.newPage(); await page.goto(url, { waitUntil: 'networkidle2' }); //when the page loads run a javascript function to get the src of the iframe await page.evaluate(() => { console.log = null; }); const rurl = await page.evaluate(() => { var s = document.body.innerHTML; return s; }); await browser.close(); return rurl; } async function StreamEpisodeDub(name, episode) { name = name.replace(/ /g, '-'); name = name.toLowerCase(); var url = "https://animixplay.to/v1/" + name + "-dub" + "/ep" + episode; var browser = await puppeteer.launch({ args: ['--no-sandbox', '--disable-setuid-sandbox'] }); var page = await browser.newPage(); await page.goto(url, { waitUntil: 'networkidle2' }); //when the page loads run a javascript function to get the src of the iframe await page.evaluate(() => { console.log = null; }); //if page url is not an animekisa.tv name and episode then return saying could not find anime if (page.url() == "https://animixplay.to/v1/" + name) { //inside the play video class is the iframe we need to get the src const rurl = await page.evaluate(() => { var rurl = $('#iframeplayer').attr('src'); return "https://animixplay.to" + rurl; }); await browser.close(); return getRealUrl(rurl); } else if (page.url() == url) { const rurl = await page.evaluate(() => { var rurl = $('#iframeplayer').attr('src'); return "https://animixplay.to" + rurl; }); await browser.close(); return getRealUrl(rurl); } else { await browser.close(); return "Could not find anime"; } } async function StreamMovie(name) { name = name.replace(/ /g, '-'); name = name.toLowerCase(); var url = "https://animixplay.to/v1/" + name; var browser = await puppeteer.launch({ args: ['--no-sandbox', '--disable-setuid-sandbox'] }); var page = await browser.newPage(); await page.goto(url, { waitUntil: 'networkidle2' }); //when the page loads run a javascript function to get the src of the iframe await page.evaluate(() => { console.log = null; }); //if page url is not an animekisa.tv name and episode then return saying could not find anime if (page.url() == "https://animixplay.to/v1/" + name) { //inside the play video class is the iframe we need to get the src const rurl = await page.evaluate(() => { var rurl = $('#iframeplayer').attr('src'); return "https://animixplay.to" + rurl; }); await browser.close(); return getRealUrl(rurl); } else if (page.url() == url) { const rurl = await page.evaluate(() => { var rurl = $('#iframeplayer').attr('src'); return "https://animixplay.to" + rurl; }); await browser.close(); return getRealUrl(rurl); } else { await browser.close(); return "Could not find anime"; } } async function StreamMovieDub(name) { name = name.replace(/ /g, '-'); name = name.toLowerCase(); var url = "https://animixplay.to/v1/" + name + "-dub"; var browser = await puppeteer.launch({ args: ['--no-sandbox', '--disable-setuid-sandbox'] }); var page = await browser.newPage(); await page.goto(url, { waitUntil: 'networkidle2' }); //when the page loads run a javascript function to get the src of the iframe await page.evaluate(() => { console.log = null; }); //if page url is not an animekisa.tv name and episode then return saying could not find anime if (page.url() == "https://animixplay.to/v1/" + name) { //inside the play video class is the iframe we need to get the src const rurl = await page.evaluate(() => { var rurl = $('#iframeplayer').attr('src'); return "https://animixplay.to" + rurl; }); await browser.close(); return getRealUrl(rurl); } else if (page.url() == url) { const rurl = await page.evaluate(() => { var rurl = $('#iframeplayer').attr('src'); return "https://animixplay.to" + rurl; }); await browser.close(); return getRealUrl(rurl); } else { await browser.close(); return "Could not find anime"; } } module.exports.StreamEpisode = StreamEpisode; module.exports.StreamEpisodeDub = StreamEpisodeDub; module.exports.StreamMovie = StreamMovie; module.exports.StreamMovieDub = StreamMovieDub; module.exports.GetHtml = GetHtml;