kyuurzy

All In Download

Oct 8th, 2025 (edited)
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const fetch = require("node-fetch")
  2.  
  3. async function aio(videoUrl) {
  4.   const searchResponse = await fetch('https://ssvid.app/api/ajax/search?hl=id', {
  5.     method: 'POST',
  6.     headers: {
  7.       'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
  8.       'Accept': '*/*',
  9.       'X-Requested-With': 'XMLHttpRequest',
  10.       'User-Agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Mobile Safari/537.36',
  11.       'Referer': 'https://ssvid.app/id'
  12.     },
  13.     body: `query=${encodeURIComponent(videoUrl)}&cf_token=&vt=home`
  14.   });
  15.  
  16.   const searchResult = await searchResponse.json();
  17.  
  18.   if (searchResult.data && searchResult.data.extractor === 'tiktok') {
  19.     const tiktokData = searchResult.data;
  20.     return {
  21.       vid: tiktokData.keyword,
  22.       title: tiktokData.title,
  23.       a: tiktokData.author?.full_name,
  24.       thumbnail: tiktokData.thumbnail,
  25.       author: tiktokData.author,
  26.       links: {
  27.         video: tiktokData.links.video.map(item => ({
  28.           q_text: item.q_text,
  29.           size: item.size,
  30.           downloadUrl: item.url,
  31.           f: 'mp4'
  32.         })),
  33.         audio: tiktokData.links.audio.map(item => ({
  34.           q_text: item.q_text,
  35.           size: item.size,
  36.           downloadUrl: item.url,
  37.           f: 'mp3'
  38.         }))
  39.       }
  40.     };
  41.   }
  42.  
  43.   if (searchResult.data && searchResult.data.extractor === 'instagram-downloader') {
  44.     const instagramData = searchResult.data;
  45.     return {
  46.       vid: instagramData.pid,
  47.       title: instagramData.title,
  48.       a: instagramData.author?.full_name,
  49.       thumbnail: instagramData.thumbnail,
  50.       author: instagramData.author,
  51.       links: {
  52.         video: Object.entries(instagramData.links.video).map(([quality, item]) => ({
  53.           q_text: item.q_text,
  54.           size: item.size,
  55.           downloadUrl: item.url,
  56.           f: 'mp4',
  57.           resolution: item.resolution
  58.         }))
  59.       }
  60.     };
  61.   }
  62.  
  63.   if (searchResult.data && searchResult.data.extractor === 'facebook') {
  64.     const facebookData = searchResult.data;
  65.     return {
  66.       vid: facebookData.pid,
  67.       title: facebookData.title,
  68.       a: facebookData.author?.full_name,
  69.       thumbnail: facebookData.thumbnail,
  70.       author: facebookData.author,
  71.       links: {
  72.         video: Object.entries(facebookData.links.video).map(([quality, item]) => ({
  73.           q_text: item.q_text,
  74.           size: item.size,
  75.           downloadUrl: item.url,
  76.           f: 'mp4',
  77.           resolution: item.resolution
  78.         })),
  79.         audio: facebookData.links.audio.map(item => ({
  80.           q_text: item.q_text,
  81.           size: item.size,
  82.           downloadUrl: item.url,
  83.           f: 'm4a',
  84.           resolution: item.resolution
  85.         }))
  86.       }
  87.     };
  88.   }
  89.  
  90.   const vid = searchResult.vid;
  91.   const allDownloads = {};
  92.  
  93.   for (const [formatType, qualities] of Object.entries(searchResult.links)) {
  94.     allDownloads[formatType] = {};
  95.    
  96.     for (const [qualityCode, qualityInfo] of Object.entries(qualities)) {
  97.       const convertResponse = await fetch('https://ssvid.app/api/ajax/convert?hl=id', {
  98.         method: 'POST',
  99.         headers: {
  100.           'authority': 'ssvid.app',
  101.           'accept': '*/*',
  102.           'accept-language': 'id-ID,id;q=0.9,en-US;q=0.8,en;q=0.7',
  103.           'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',
  104.           'origin': 'https://ssvid.app',
  105.           'referer': 'https://ssvid.app/id',
  106.           'sec-ch-ua': '"Chromium";v="139", "Not;A=Brand";v="99"',
  107.           'sec-ch-ua-mobile': '?1',
  108.           'sec-ch-ua-platform': '"Android"',
  109.           'sec-fetch-dest': 'empty',
  110.           'sec-fetch-mode': 'cors',
  111.           'sec-fetch-site': 'same-origin',
  112.           'user-agent': 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Mobile Safari/537.36',
  113.           'x-requested-with': 'XMLHttpRequest'
  114.         },
  115.         body: `vid=${vid}&k=${encodeURIComponent(qualityInfo.k)}`
  116.       });
  117.  
  118.       const convertResult = await convertResponse.json();
  119.      
  120.       allDownloads[formatType][qualityCode] = {
  121.         size: qualityInfo.size,
  122.         f: qualityInfo.f,
  123.         q: qualityInfo.q,
  124.         q_text: qualityInfo.q_text,
  125.         downloadUrl: convertResult.dlink,
  126.         fquality: convertResult.fquality
  127.       };
  128.     }
  129.   }
  130.  
  131.   return {
  132.     vid: searchResult.vid,
  133.     title: searchResult.title,
  134.     a: searchResult.a,
  135.     links: allDownloads
  136.   };
  137. }
  138.  
  139. //use
  140. return aio("https://www.instagram.com/reel/DOA5XWIjzEk/?igsh=MWFyMmxvN2w5b3l5cg==")
Tags: scraper
Advertisement
Add Comment
Please, Sign In to add comment