UNPKG

test-downloader

Version:
311 lines (279 loc) 10.1 kB
const axios = require('axios'); const cheerio = require('cheerio'); const { version, config } = require('../package.json'); // Helpers const isURL = url => /^https?:\/\/[^\s/$.?#].[^\s]*$/.test(url); const generateUA = () => `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.${Math.floor(Math.random() * 1000)}.100 Safari/537.36`; const _errorResponse = (message) => ({ developer: 'MD ARIFUL ISLAM ASIF', Facebook: 'https://www.facebook.com/ARIF.THE.REBEL.233', WhatsApp: 'wa.me/+880190560009', status: false, message, note: 'REPORT TO ADMIN \n https://t.me/TRA_ARIFVAU' }); const _fetchapi = async (endpoint, url) => { try { const response = await axios.get(`${config.baseUrl}/${endpoint}`, { params: { url }, headers: { 'Content-Type': 'application/json', 'User-Agent': `btch/${version}` } }); return response.data; } catch (error) { throw new Error(`Error fetching from ${endpoint}: ${error.message}`); } }; // TikTok Downloader async function rebeltiktokdl(url) { try { const data = await _fetchapi('ttdl', url); return { developer: 'MD ARIFUL ISLAM ASIF', Facebook: 'https://www.facebook.com/ARIF.THE.REBEL.233', WhatsApp: 'wa.me/+880190560009', title: data.title, title_audio: data.title_audio, thumbnail: data.thumbnail, video: data.video, audio: data.audio, likes: data.likes || null, views: data.views || null }; } catch (error) { return _errorResponse(error.message); } } // Instagram Downloader async function rebelinstadl(url) { try { const data = await _fetchapi('igdl', url); if (!data || data.status === false) { return _errorResponse(data?.msg || 'Result Not Found! Check Your Url Now!'); } return data.map(item => ({ developer: 'MD ARIFUL ISLAM ASIF', Facebook: 'https://www.facebook.com/ARIF.THE.REBEL.233', WhatsApp: 'wa.me/+880190560009', thumbnail: item.thumbnail, title: item.title || data.title, url: item.url, resolution: item.resolution, shouldRender: item.shouldRender })); } catch { return _errorResponse('Request Failed With Code 401'); } } // Twitter Downloader async function rebeltwitter(url) { try { const data = await _fetchapi('twitter', url); return { developer: 'MD ARIFUL ISLAM ASIF', Facebook: 'https://www.facebook.com/ARIF.THE.REBEL.233', WhatsApp: 'wa.me/+880190560009', title: data.title, url: data.url }; } catch (error) { return _errorResponse(error.message); } } // YouTube Downloader async function rebelyt(url) { try { const data = await _fetchapi('youtube', url); return { developer: 'MD ARIFUL ISLAM ASIF', Facebook: 'https://www.facebook.com/ARIF.THE.REBEL.233', WhatsApp: 'wa.me/+880190560009', title: data.title, thumbnail: data.thumbnail, author: data.author, mp3: data.mp3, mp4: data.mp4 }; } catch (error) { return _errorResponse(error.message); } } // Facebook Downloader function rebelfbdown(videoUrl, cookie, useragent) { return new Promise((resolve, reject) => { if (!videoUrl || !videoUrl.trim()) return reject('Please specify the Facebook URL'); if (!["facebook.com", "fb.watch"].some(domain => videoUrl.includes(domain))) { return reject('Please enter the valid Facebook URL'); } const headers = { authority: 'www.facebook.com', 'user-agent': useragent || generateUA(), cookie: cookie || 'sb=Rn8BYQvCEb2fpMQZjsd6L382; datr=Rn8BYbyhXgw9RlOvmsosmVNT; c_user=100003164630629; _fbp=fb.1.1629876126997.444699739; wd=1920x939; spin=r.1004812505_b.trunk_t.1638730393_s.1_v.2_; xs=28%3A8ROnP0aeVF8XcQ%3A2%3A1627488145%3A-1%3A4916%3A%3AAcWIuSjPy2mlTPuZAeA2wWzHzEDuumXI89jH8a_QIV8; fr=0jQw7hcrFdas2ZeyT.AWVpRNl_4noCEs_hb8kaZahs-jA.BhrQqa.3E.AAA.0.0.BhrQqa.AWUu879ZtCw', accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' }; axios.get(videoUrl, { headers }).then(({ data }) => { data = data.replace(/&quot;/g, '"').replace(/&amp;/g, '&'); const parse = key => JSON.parse(`{"text":"${key}"}`).text; const sd = data.match(/"browser_native_sd_url":"(.*?)"/)?.[1] || data.match(/"playable_url":"(.*?)"/)?.[1] || data.match(/sd_src\s*:\s*"([^"]*)"/)?.[1]; if (!sd) return reject('Unable to fetch video information'); const result = { developer: 'MD ARIFUL ISLAM ASIF', Facebook: 'https://www.facebook.com/ARIF.THE.REBEL.233', WhatsApp: 'wa.me/+880190560009', url: videoUrl, sd: parse(sd), hd: parse(data.match(/"browser_native_hd_url":"(.*?)"/)?.[1] || '') || '', title: parse(data.match(/<meta\sname="description"\scontent="(.*?)"/)?.[1] || '') || '', thumbnail: parse(data.match(/"preferred_thumbnail":{"image":{"uri":"(.*?)"/)?.[1] || '') }; resolve(result); }).catch(() => reject('Unable to fetch video information at this time.')); }); } // All-in-One Downloader async function rebelaldwn(url) { try { const data = await _fetchapi('aio', url); if (!data || data.status === false) { return _errorResponse(data?.msg || 'Result Not Found! Check Your Url Now!'); } if (Array.isArray(data.url)) { return data.url.map(item => ({ developer: 'MD ARIFUL ISLAM ASIF', Facebook: 'https://www.facebook.com/ARIF.THE.REBEL.233', WhatsApp: 'wa.me/+880190560009', platform: data.platform || 'unknown', title: item.title || data.title || 'No Title', url: item.url })); } return { developer: 'MD ARIFUL ISLAM ASIF', Facebook: 'https://www.facebook.com/ARIF.THE.REBEL.233', WhatsApp: 'wa.me/+880190560009', platform: data.platform || 'unknown', title: data.title || 'No Title', url: data.url }; } catch (error) { return _errorResponse(error.message); } } // Pinterest Downloader async function rebelpindl(url) { try { if (!isURL(url)) throw new Error('Need Pinterest URL'); const headers = { 'User-Agent': generateUA(), 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8' }; const { data } = await axios.get(`https://pinterestdownloader.io/frontendService/DownloaderService?url=${url}`, { headers }); const { medias = [], title } = data; let highestQualityVideo = null; let highestQualityImage = null; medias.forEach(media => { if (media.extension === 'mp4' && (!highestQualityVideo || media.quality > highestQualityVideo.quality)) { highestQualityVideo = media; } else if ((media.extension === 'jpg' || media.extension === 'png') && (!highestQualityImage || media.quality > highestQualityImage.quality)) { highestQualityImage = media; } }); return { developer: 'MD ARIFUL ISLAM ASIF', Facebook: 'https://www.facebook.com/ARIF.THE.REBEL.233', WhatsApp: 'wa.me/+880190560009', platform: 'pinterest', title: title || null, thumbnail: highestQualityImage?.url || null, video: highestQualityVideo?.url || null, image: highestQualityImage?.url || null }; } catch (error) { return _errorResponse(error.message || 'Pinterest download failed'); } } // CapCut Downloader async function rebelcapcutdl(url) { try { if (!url.includes('capcut.com')) return _errorResponse('Invalid CapCut URL!'); const { data } = await axios.get(url, { headers: { 'User-Agent': 'Mozilla/5.0' } }); const $ = cheerio.load(data); let jsonData = null; $('script').each((_, el) => { const content = $(el).html(); if (content.includes('window._ROUTER_DATA')) { jsonData = content.replace('window._ROUTER_DATA = ', '').trim(); } }); const parsed = JSON.parse(jsonData); const template = parsed?.loaderData?.['template-detail_$']?.templateDetail; if (!template) throw new Error('Template data not found'); return { developer: 'MD ARIFUL ISLAM ASIF', Facebook: 'https://www.facebook.com/ARIF.THE.REBEL.233', WhatsApp: 'wa.me/+880190560009', status: true, title: template.title, description: template.desc, thumbnail: template.coverUrl, videoRatio: template.videoRatio, duration: template.templateDuration, play: template.playAmount, likes: template.likeAmount, usage: template.usageAmount, created: template.createTime, author: template.author }; } catch (error) { return _errorResponse(error.message || 'Something went wrong'); } } // Likee Downloader async function rebellikeedl(url) { try { const headers = { 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8', 'user-agent': 'Mozilla/5.0', 'x-requested-with': 'XMLHttpRequest' }; const payload = `id=${url}`; const response = await axios.post('https://likeedownloader.com/process', payload, { headers }); const $ = cheerio.load(response.data.template); const title = $('.infotext').text().trim() || 'No title'; const thumbnail = $('.img_thumb img').attr('src'); const withWatermark = $('.result-links-item').eq(0).find('a').attr('href'); const withoutWatermark = $('.result-links-item').eq(1).find('a').attr('href'); return { developer: 'MD ARIFUL ISLAM ASIF', Facebook: 'https://www.facebook.com/ARIF.THE.REBEL.233', WhatsApp: 'wa.me/+880190560009', status: 200, platform: 'likee', data: { title, thumbnail, withWatermark: withWatermark || 'N/A', withoutWatermark: withoutWatermark || 'N/A' } }; } catch { return _errorResponse('Something went wrong'); } } // Export all module.exports = { rebeltiktokdl, rebelinstadl, rebeltwitter, rebelyt, rebelfbdown, rebelaldwn, rebelpindl, rebelcapcutdl, rebellikeedl };