abot-scraper 1.5.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -65,6 +65,25 @@ var Generator = class {
65
65
  const i = Math.floor(Math.log(bytes) / Math.log(k));
66
66
  return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + " " + sizes[i];
67
67
  }
68
+ static generateVisitorId() {
69
+ const components = [
70
+ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
71
+ "1920x1080",
72
+ (/* @__PURE__ */ new Date()).getTimezoneOffset().toString(),
73
+ "en-US",
74
+ "Win32",
75
+ Math.random().toString(36).substring(2, 15),
76
+ Date.now().toString(),
77
+ process.pid.toString(),
78
+ Math.floor(Math.random() * 1e6).toString()
79
+ ];
80
+ const fingerprint = import_crypto.default.createHash("md5").update(components.join("|")).digest("hex");
81
+ return fingerprint;
82
+ }
83
+ static getFingerprint() {
84
+ const visitorId = this.generateVisitorId();
85
+ return visitorId;
86
+ }
68
87
  };
69
88
 
70
89
  // src/scraper/downloader.ts
@@ -674,12 +693,13 @@ var Tools = class {
674
693
  const form = new import_form_data.default();
675
694
  form.append("type", "Enhancer");
676
695
  form.append("original_image_file", buffer, "blob");
696
+ const productSerial = Generator.getFingerprint();
677
697
  import_axios3.default.post("https://api.remaker.ai/api/pai/v4/ai-enhance/create-job-new", form, {
678
698
  headers: {
679
699
  ...form.getHeaders(),
680
700
  "authorization": "",
681
701
  "product-code": "067003",
682
- "product-serial": "24d7e0c0b939f686aaa76f532c3efcd4",
702
+ "product-serial": productSerial,
683
703
  "Referer": "https://remaker.ai/"
684
704
  }
685
705
  }).then((createJobResponse) => {
@@ -697,7 +717,7 @@ var Tools = class {
697
717
  headers: {
698
718
  "authorization": "",
699
719
  "product-code": "067003",
700
- "product-serial": "24d7e0c0b939f686aaa76f532c3efcd4",
720
+ "product-serial": productSerial,
701
721
  "Referer": "https://remaker.ai/"
702
722
  }
703
723
  }).then((jobResponse) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/scraper/downloader.ts","../src/utils/generator.ts","../src/scraper/search.ts","../src/scraper/tools.ts"],"sourcesContent":["import Downloader from './scraper/downloader.js';\nimport Search from './scraper/search.js';\nimport Tools from './scraper/tools.js';\n\nconst downloader = new Downloader();\nconst search = new Search();\nconst tools = new Tools();\nexport default {\n downloader,\n search,\n tools\n};\n\nexport { Downloader, downloader, Search, search, Tools, tools };\n\n","import axios, { AxiosResponse } from 'axios';\nimport * as cheerio from 'cheerio';\nimport qs from 'qs';\nimport {\n ApiResponse,\n FacebookResult,\n InstagramMediaItem,\n InstagramStoriesResult,\n SfileDownloadResult,\n TikTokResult,\n YoutubeResult,\n YoutubeResultV2,\n} from '../../types/index.js';\nimport Generator from '../utils/generator.js';\n\ninterface StoryItem {\n source: string;\n [key: string]: unknown;\n}\n\ninterface InstagramApiResponse {\n stories: StoryItem[];\n user_info: {\n username: string;\n [key: string]: unknown;\n };\n}\n\ninterface FileItem {\n __type: string;\n video_url?: string;\n download_url?: string;\n [key: string]: unknown;\n}\n\ninterface InstagramFilesResponse {\n files: FileItem[];\n}\n\ninterface YouTubeFormat {\n quality: string;\n video_url: string;\n [key: string]: unknown;\n}\n\ninterface YouTubeMedia {\n media_type: string;\n preview_url?: string;\n resource_url?: string;\n formats?: YouTubeFormat[];\n [key: string]: unknown;\n}\n\ninterface YouTubeApiResponse {\n text: string;\n medias: YouTubeMedia[];\n}\n\ndeclare global {\n // eslint-disable-next-line no-var\n var creator: string;\n}\n\nglobal.creator = '@abotscraper – ahmuq';\n\nexport default class Downloader {\n private generator: Generator;\n\n constructor() {\n this.generator = new Generator();\n }\n\n async facebook(url: string): Promise<ApiResponse<FacebookResult>> {\n try {\n const headers = {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0',\n Origin: 'https://www.fdown.world',\n referer: 'https://www.fdown.world/',\n 'x-requested-with': 'XMLHttpRequest',\n Cookie: 'codehap_domain=www.fdown.world',\n };\n\n const data = new URLSearchParams({ codehap_link: url, codehap: 'true' });\n\n const response: AxiosResponse = await axios.post(\n 'https://www.fdown.world/result.php',\n data,\n { headers }\n );\n\n const $ = cheerio.load(response.data);\n const videoUrl = $('video source').attr('src');\n const imageUrl = $('img').attr('src');\n\n if (!videoUrl && !imageUrl) {\n throw new Error('No video or image found in the response.');\n }\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n thumbnail: imageUrl || '',\n videoUrl: videoUrl || '',\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async tiktokDownloader(url: string): Promise<ApiResponse<TikTokResult>> {\n try {\n const headers = {\n 'sec-ch-ua':\n '\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"',\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n };\n\n const data = new URLSearchParams({\n id: url,\n locale: 'en',\n tt: 'WmNzZDk_',\n });\n\n const response: AxiosResponse = await axios.post(\n 'https://ssstik.io/abc?url=dl',\n data,\n {\n headers,\n }\n );\n\n const $ = cheerio.load(response.data);\n const title = $('p.maintext').text().trim();\n const audio = $('a.download_link.music').attr('href');\n const video = $('a.download_link.without_watermark').attr('href');\n\n if (!title || !video) {\n throw new Error('Failed to extract video or title from response.');\n }\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n title: title,\n video: video || '',\n audio: audio || '',\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async igstory(username: string): Promise<ApiResponse<InstagramStoriesResult>> {\n const payload = {\n username: username,\n }\n const headers = {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/',\n accept: 'application/json, text/plain, */*',\n 'accept-language': 'en-US,en;q=0.9,ar;q=0.8,id;q=0.7,vi;q=0.6',\n 'content-type': 'application/json',\n priority: 'u=1, i',\n 'sec-ch-ua':\n '\"Microsoft Edge\";v=\"137\", \"Chromium\";v=\"137\", \"Not/A)Brand\";v=\"24\"',\n 'sec-ch-ua-mobile': '?0',\n 'sec-ch-ua-platform': '\"Windows\"',\n 'sec-fetch-dest': 'empty',\n 'sec-fetch-mode': 'cors',\n 'sec-fetch-site': 'same-origin',\n Referer: 'https://storyviewer.com/',\n 'Referrer-Policy': 'strict-origin-when-cross-origin',\n };\n try {\n const response: AxiosResponse = await axios.post(\n `https://storyviewer.com/api/data`,\n payload,\n { headers }\n );\n\n const data: InstagramApiResponse = response.data;\n const sources = data.stories.map((story: StoryItem) => story.source);\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n user_info: data.user_info,\n links: sources,\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async instagram(url: string): Promise<ApiResponse<InstagramMediaItem[]>> {\n try {\n const config = new URLSearchParams({\n url: url,\n new: '2',\n lang: 'en',\n app: '',\n });\n\n const headers = {\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n };\n\n const response: AxiosResponse<InstagramFilesResponse> = await axios.post(\n 'https://snapinsta.app/get-data.php',\n config,\n { headers }\n );\n\n const downloadLinks = response.data.files\n .map((file: FileItem) =>\n file.__type === 'GraphVideo'\n ? { type: 'video' as const, url: file.video_url || '' }\n : file.__type === 'GraphImage'\n ? { type: 'image' as const, url: file.download_url || '' }\n : null\n )\n .filter((link: InstagramMediaItem | null): link is InstagramMediaItem => link !== null);\n\n return {\n creator: global.creator,\n status: 200,\n result: downloadLinks,\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async youtubeDownloader(url: string): Promise<ApiResponse<YoutubeResult>> {\n try {\n const config = qs.stringify({\n url: url,\n q_auto: 0,\n ajax: 1,\n lang: 'en',\n });\n\n const headers = {\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n };\n\n const response: AxiosResponse = await axios.post(\n 'https://yt1s.net/ajax?retry=undefined&platform=youtube',\n config,\n { headers }\n );\n\n const $ = cheerio.load(response.data.result);\n const title = $('.caption b').text().trim();\n const downloadLinks = {\n '480p': $('a[data-fquality=\"480p\"]').attr('href') || '',\n '720p': $('a[data-fquality=\"720p\"]').attr('href') || '',\n '1080p': $('a[data-fquality=\"1080p\"]').attr('href') || '',\n };\n const thumbnailUrl = $('.thumbnail.cover img').attr('src');\n\n const mp3ConvertElement = $('#convert-mp3 a');\n const hrefAttr = mp3ConvertElement.attr('href');\n\n if (!hrefAttr) throw new Error('MP3 conversion link not found.');\n\n const mp3ConvertTokenMatch = hrefAttr.match(\n /mp3_convert_task\\('(\\d+)',\\s*'([^']+)'\\)/\n );\n\n if (!mp3ConvertTokenMatch)\n throw new Error('MP3 conversion token not found.');\n\n const mp3ConvertToken = mp3ConvertTokenMatch[2];\n\n const mp3Response: AxiosResponse = await axios.get(\n `https://api.fabdl.com/youtube/mp3-convert-task?token=${mp3ConvertToken}`\n );\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n title: title,\n thumbnail: thumbnailUrl || '',\n downloadLinks: downloadLinks,\n mp3DownloadUrl: `https://api.fabdl.com${mp3Response.data.result.download_url}`,\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n ytMp3Downloader = (url: string) => {\n return new Promise((resolve, reject) => {\n const headers = {\n accept: \"*/*\",\n \"accept-language\": \"en-US,en;q=0.9,ar;q=0.8,id;q=0.7,vi;q=0.6\",\n \"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n priority: \"u=1, i\",\n \"sec-ch-ua\":\n '\"Microsoft Edge\";v=\"137\", \"Chromium\";v=\"137\", \"Not/A)Brand\";v=\"24\"',\n \"sec-ch-ua-mobile\": \"?0\",\n \"sec-ch-ua-platform\": '\"Windows\"',\n \"sec-fetch-dest\": \"empty\",\n \"sec-fetch-mode\": \"cors\",\n \"sec-fetch-site\": \"cross-site\",\n Referer: \"https://y2hub.com/\",\n \"Referrer-Policy\": \"strict-origin-when-cross-origin\",\n };\n\n const payload = qs.stringify({\n action: \"yt_convert\",\n nonce: \"1495b10e48\",\n youtube_url: url,\n });\n\n axios(`https://youtubemp4free.com/wp-admin/admin-ajax.php`, {\n method: \"POST\",\n headers: headers,\n data: payload,\n })\n .then(({ data }) => {\n if (!data.success) {\n return reject(new Error(\"Failed to fetch video data\"));\n }\n\n const videoInfo = data.data.info;\n const slug = data.data.slug;\n const size = data.data.size;\n return axios(\"https://ryin.info/\", {\n method: \"GET\",\n headers: {\n \"User-Agent\":\n \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0\",\n },\n }).then((response) => {\n const setCookieHeaders = response.headers[\"set-cookie\"];\n let cookies;\n\n if (setCookieHeaders) {\n cookies = setCookieHeaders\n .map((cookie) => cookie.split(\";\")[0])\n .join(\"; \");\n } else {\n cookies =\n \"PHPSESSID=fl86pmq4dqgh2835b32mdm7380; csrf_cookie_name=739e04fcc21050c61c5325b34f449659; lang=en\";\n }\n\n const pageUrl = \"https://ryin.info/\" + slug;\n\n return axios(pageUrl, {\n method: \"GET\",\n headers: {\n \"User-Agent\":\n \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0\",\n Cookie: cookies,\n },\n }).then((response) => {\n const html = response.data;\n const $ = cheerio.load(html);\n const downloadHref = $(\"#download-url\").attr(\"download-href\");\n\n if (!downloadHref) {\n return reject(new Error(\"Download link not found on page\"));\n }\n resolve({\n creator: global.creator,\n status: true,\n title: videoInfo.title,\n thumbnail: videoInfo.thumbnail,\n description: videoInfo.description,\n viewCount: videoInfo.view_count,\n size: this.generator.formatFileSize(size),\n downloadUrl: downloadHref,\n });\n });\n });\n })\n .catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n });\n };\n\n\n async youtubeDownloaderV2(url: string): Promise<ApiResponse<YoutubeResultV2>> {\n try {\n const timestamp = this.generator.generateTimeStampYoutubeDL();\n const footer = this.generator.generateFooterYoutubeDL(timestamp, url);\n\n const payload = {\n link: url,\n };\n\n const headers = {\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n 'g-footer': footer,\n 'g-timestamp': timestamp,\n accept: '*/*',\n 'accept-language': 'en',\n 'content-type': 'application/json',\n priority: 'u=1, i',\n 'sec-ch-ua':\n '\"Microsoft Edge\";v=\"137\", \"Chromium\";v=\"137\", \"Not/A)Brand\";v=\"24\"',\n 'sec-ch-ua-mobile': '?0',\n 'sec-ch-ua-platform': '\"Windows\"',\n 'sec-fetch-dest': 'empty',\n 'sec-fetch-mode': 'cors',\n 'sec-fetch-site': 'same-site',\n Referer: 'https://snapany.com/',\n 'Referrer-Policy': 'strict-origin-when-cross-origin',\n };\n\n const response: AxiosResponse<YouTubeApiResponse> = await axios.post(\n 'https://api.snapany.com/v1/extract',\n payload,\n { headers }\n );\n const data = response.data;\n\n const videoMedia = data.medias.find(\n (media: YouTubeMedia) => media.media_type === 'video'\n );\n const audioMedia = data.medias.find(\n (media: YouTubeMedia) => media.media_type === 'audio'\n );\n\n const downloadLinks: Record<string, string> = {};\n if (videoMedia && videoMedia.formats) {\n videoMedia.formats.forEach((format: YouTubeFormat) => {\n const qualityKey = `${format.quality}p`;\n downloadLinks[qualityKey] = format.video_url;\n });\n }\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n title: data.text,\n thumbnail: videoMedia?.preview_url || null,\n downloadLinks: downloadLinks,\n video: videoMedia?.resource_url || null,\n audio: audioMedia?.resource_url || null,\n formats: videoMedia?.formats || [],\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async sfileDownloader(url: string): Promise<ApiResponse<SfileDownloadResult>> {\n try {\n const response: AxiosResponse = await axios.get(url, {\n headers: {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n Referer: 'https://sfile.mobi/',\n 'Accept-Language': 'en-US,en;q=0.9',\n },\n });\n\n const $ = cheerio.load(response.data);\n const filename = $('.intro-container img').attr('alt') || '';\n const mimetype = $('div.list').text().split(' - ')[1]?.split('\\n')[0] || '';\n const downloadHref = $('#download').attr('href');\n const download = downloadHref\n ? downloadHref + '&k=' + Math.floor(Math.random() * (15 - 10 + 1) + 10)\n : '';\n\n return {\n creator: global.creator,\n status: 200,\n result: { filename, mimetype, download },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n}\n","import crypto from 'crypto';\n\nexport default class Generator {\n generateTimeStampYoutubeDL(): string {\n return Date.now().toString();\n }\n\n generateFooterYoutubeDL(timestamp: string, link: string): string {\n const locale = 'en';\n const secretKey = '6HTugjCXxR';\n const input = link + locale + timestamp + secretKey;\n const hash = crypto.createHash('md5').update(input).digest('hex');\n return hash;\n }\n\n formatFileSize(bytes: number): string {\n if (bytes === 0) return \"0 Bytes\";\n const k = 1024;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + \" \" + sizes[i];\n }\n}\n","import axios, { AxiosResponse } from 'axios';\nimport * as cheerio from 'cheerio';\nimport {\n ApiResponse,\n SfileSearchResult,\n WallpaperResult,\n WikimediaResult,\n YtPlayResult,\n YtSearchResult,\n} from '../../types/index.js';\n\ndeclare global {\n // eslint-disable-next-line no-var\n var creator: string;\n}\n\nglobal.creator = '@abotscraper – ahmuq';\n\ninterface YtPlayConfig {\n k_query: string;\n k_page: string;\n q_auto: number;\n hl?: string;\n}\n\ninterface ConvertConfig {\n vid: string;\n k: string;\n}\n\nexport default class Search {\n async sfileSearch(\n query: string,\n page: number = 1\n ): Promise<ApiResponse<SfileSearchResult[]>> {\n try {\n const response: AxiosResponse = await axios.get(\n `https://sfile.mobi/search.php?q=${query}&page=${page}`,\n {\n headers: {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n Referer: 'https://sfile.mobi/',\n 'Accept-Language': 'en-US,en;q=0.9',\n },\n }\n );\n const $ = cheerio.load(response.data);\n const results: SfileSearchResult[] = [];\n\n $('div.list').each(function () {\n const title = $(this).find('a').text();\n const sizeText = $(this).text().trim().split('(')[1];\n const link = $(this).find('a').attr('href');\n\n if (link && sizeText) {\n results.push({\n title,\n size: sizeText.replace(')', ''),\n link\n });\n }\n });\n\n return {\n creator: global.creator,\n status: 200,\n result: results,\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error'\n };\n }\n }\n\n async ytSearch(query: string): Promise<ApiResponse<YtSearchResult[]>> {\n try {\n const headers = {\n accept: \"*/*\",\n \"accept-language\": \"en-US,en;q=0.9,ar;q=0.8,id;q=0.7,vi;q=0.6\",\n priority: \"u=1, i\",\n \"sec-ch-ua\":\n '\"Microsoft Edge\";v=\"137\", \"Chromium\";v=\"137\", \"Not/A)Brand\";v=\"24\"',\n \"sec-ch-ua-mobile\": \"?0\",\n \"sec-ch-ua-platform\": '\"Windows\"',\n \"sec-fetch-dest\": \"empty\",\n \"sec-fetch-mode\": \"cors\",\n \"sec-fetch-site\": \"cross-site\",\n }\n const response: AxiosResponse = await axios.get(\n `https://line.1010diy.com/web/free-mp3-finder/query?q=${encodeURIComponent(query)}&type=youtube&pageToken=`,\n { headers }\n );\n\n const data = response.data;\n const videos = data?.data?.items || [];\n const results: YtSearchResult[] = videos.map((item: {\n title: string;\n thumbnail: string;\n url: string;\n }) => ({\n title: item.title,\n thumbnail: item.thumbnail,\n url: item.url\n }));\n\n return {\n creator: global.creator,\n status: 200,\n result: results,\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error'\n };\n }\n }\n\n ytPlay = (text: string): Promise<ApiResponse<YtPlayResult>> => {\n return new Promise((resolve, reject) => {\n const configd: YtPlayConfig = {\n k_query: text,\n k_page: 'mp3',\n q_auto: 1,\n };\n\n const headerss = {\n 'sec-ch-ua':\n '\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"',\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n Cookie:\n 'PHPSESSID=6jo2ggb63g5mjvgj45f612ogt7; _ga=GA1.2.405896420.1625200423; _gid=GA1.2.2135261581.1625200423; _PN_SBSCRBR_FALLBACK_DENIED=1625200785624; MarketGidStorage={\"0\":{},\"C702514\":{\"page\":5,\"time\":1625200846733}}',\n };\n\n axios('https://www.y2mate.com/mates/analyzeV2/ajax', {\n method: 'POST',\n data: new URLSearchParams(Object.entries(configd)),\n headers: headerss,\n })\n .then(({ data }) => {\n const v = data.vitems;\n const v2 = v[Math.floor(Math.random() * v.length)].v;\n const url = 'https://www.youtube.com/watch?v=' + v2;\n\n const config: YtPlayConfig = {\n k_query: 'https://www.youtube.be/' + url,\n k_page: 'mp3',\n hl: 'en',\n q_auto: 1,\n };\n\n\n axios('https://www.y2mate.com/mates/en68/analyze/ajax', {\n method: 'POST',\n data: new URLSearchParams({\n url: 'https://www.youtube.be/' + url,\n q_auto: '0',\n ajax: '1',\n }),\n headers: headerss,\n }).then(({ data }) => {\n const $ = cheerio.load(data.result);\n const img = $('div.thumbnail.cover > a > img').attr('src');\n\n axios('https://www.y2mate.com/mates/analyzeV2/ajax', {\n method: 'POST',\n data: new URLSearchParams(Object.entries(config)),\n headers: headerss,\n }).then(({ data }) => {\n const convertConfig: ConvertConfig = {\n vid: data.vid,\n k: data.links.mp3.mp3128.k,\n };\n\n const size = data.links.mp3.mp3128.size;\n\n axios('https://www.y2mate.com/mates/convertV2/index', {\n method: 'POST',\n data: new URLSearchParams(Object.entries(convertConfig)),\n headers: headerss,\n })\n .then((response) => {\n resolve({\n creator: global.creator,\n status: 200,\n result: {\n status: response.data.status,\n title: response.data.title,\n ftype: response.data.ftype,\n thumb: img || '',\n size_mp3: size,\n link: response.data.dlink,\n },\n });\n })\n .catch(reject);\n });\n });\n })\n .catch(reject);\n });\n };\n\n wallpaper = (\n title: string,\n page: string = '1'\n ): Promise<ApiResponse<WallpaperResult[]>> => {\n return new Promise((resolve, reject) => {\n axios\n .get(\n `https://www.besthdwallpaper.com/search?CurrentPage=${page}&q=${title}`\n )\n .then(({ data }) => {\n const $ = cheerio.load(data);\n const hasil: WallpaperResult[] = [];\n\n $('div.grid-item').each(function (_, b) {\n const titleAttr = $(b).find('p[title]').attr('title');\n const typeText = $(b).find('div.info > a:nth-child(2)').text();\n const hrefAttr = $(b).find('a').attr('href');\n const imgSrc = $(b).find('picture > img').attr('src');\n const srcset1 = $(b)\n .find('picture > source:nth-child(1)')\n .attr('srcset');\n const srcset2 = $(b)\n .find('picture > source:nth-child(2)')\n .attr('srcset');\n\n if (titleAttr && hrefAttr) {\n hasil.push({\n title: titleAttr.trim(),\n type: typeText?.trim() || '',\n source: 'https://www.besthdwallpaper.com' + hrefAttr,\n image: [imgSrc || '', srcset1 || '', srcset2 || ''],\n });\n }\n });\n\n resolve({ creator: global.creator, status: 200, result: hasil });\n })\n .catch((error) => {\n reject(error);\n });\n });\n };\n\n wikimedia = (title: string): Promise<ApiResponse<WikimediaResult[]>> => {\n return new Promise((resolve, reject) => {\n axios\n .get(\n `https://commons.wikimedia.org/w/index.php?search=${title}&title=Special:MediaSearch&go=Go&type=image`\n )\n .then((res) => {\n const $ = cheerio.load(res.data);\n const hasil: WikimediaResult[] = [];\n\n $('.sdms-search-results__list-wrapper > div > a').each(function (\n _,\n b\n ) {\n const altText = $(b).find('img').attr('alt');\n const href = $(b).attr('href');\n const dataSrc = $(b).find('img').attr('data-src');\n const src = $(b).find('img').attr('src');\n\n if (altText && href) {\n hasil.push({\n title: altText,\n source: href,\n image: dataSrc || src || '',\n });\n }\n });\n\n resolve({ creator: global.creator, status: 200, result: hasil });\n })\n .catch(reject);\n });\n };\n}\n","import axios, { AxiosResponse } from 'axios';\nimport FormData from 'form-data';\n\nglobal.creator = '@abotscraper – ahmuq'\n\nexport default class Tools {\n reminiUpscale = (buffer: Buffer) => {\n return new Promise((resolve, reject) => {\n const form = new FormData();\n form.append('type', 'Enhancer');\n form.append('original_image_file', buffer, 'blob');\n axios.post('https://api.remaker.ai/api/pai/v4/ai-enhance/create-job-new', form, {\n headers: {\n ...form.getHeaders(),\n 'authorization': '',\n 'product-code': '067003',\n 'product-serial': '24d7e0c0b939f686aaa76f532c3efcd4',\n 'Referer': 'https://remaker.ai/',\n }\n }).then((createJobResponse: AxiosResponse) => {\n if (createJobResponse.data.code !== 100000) {\n reject({\n creator: global.creator,\n status: false,\n error: `Job creation failed: ${createJobResponse.data.message.en}`,\n });\n return;\n }\n const jobId = createJobResponse.data.result.job_id;\n const checkJobStatus = () => {\n axios.get(`https://api.remaker.ai/api/pai/v4/ai-enhance/get-job/${jobId}`, {\n headers: {\n 'authorization': '',\n 'product-code': '067003',\n 'product-serial': '24d7e0c0b939f686aaa76f532c3efcd4',\n 'Referer': 'https://remaker.ai/',\n }\n }).then((jobResponse: AxiosResponse) => {\n if (jobResponse.data.code === 100000) {\n resolve({\n creator: global.creator,\n status: true,\n result: {\n job_id: jobId,\n image_url: jobResponse.data.result.output[0]\n }\n });\n } else if (jobResponse.data.code === 300013) {\n setTimeout(checkJobStatus, 3000);\n } else {\n reject({\n creator: global.creator,\n status: false,\n error: `Job failed: ${jobResponse.data.message.en}`,\n });\n }\n }).catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n };\n\n checkJobStatus();\n }).catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n });\n }\n\n uploadImage = (buffer: Buffer) => {\n return new Promise((resolve, reject) => {\n const form = new FormData();\n form.append('fileToUpload', buffer, 'image.jpg');\n form.append('reqtype', 'fileupload');\n form.append('userhash', '');\n\n axios.post('https://catbox.moe/user/api.php', form, {\n headers: {\n ...form.getHeaders(),\n }\n })\n .then((response: AxiosResponse) => {\n resolve({\n creator: global.creator,\n status: true,\n result: response.data\n })\n })\n .catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n })\n }\n}"],"mappings":"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","names":["crypto","qs","axios","response","import_axios","cheerio","axios","data","import_axios","FormData","axios"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/scraper/downloader.ts","../src/utils/generator.ts","../src/scraper/search.ts","../src/scraper/tools.ts"],"sourcesContent":["import Downloader from './scraper/downloader.js';\nimport Search from './scraper/search.js';\nimport Tools from './scraper/tools.js';\n\nconst downloader = new Downloader();\nconst search = new Search();\nconst tools = new Tools();\nexport default {\n downloader,\n search,\n tools\n};\n\nexport { Downloader, downloader, Search, search, Tools, tools };\n\n","import axios, { AxiosResponse } from 'axios';\nimport * as cheerio from 'cheerio';\nimport qs from 'qs';\nimport {\n ApiResponse,\n FacebookResult,\n InstagramMediaItem,\n InstagramStoriesResult,\n SfileDownloadResult,\n TikTokResult,\n YoutubeResult,\n YoutubeResultV2,\n} from '../../types/index.js';\nimport Generator from '../utils/generator.js';\n\ninterface StoryItem {\n source: string;\n [key: string]: unknown;\n}\n\ninterface InstagramApiResponse {\n stories: StoryItem[];\n user_info: {\n username: string;\n [key: string]: unknown;\n };\n}\n\ninterface FileItem {\n __type: string;\n video_url?: string;\n download_url?: string;\n [key: string]: unknown;\n}\n\ninterface InstagramFilesResponse {\n files: FileItem[];\n}\n\ninterface YouTubeFormat {\n quality: string;\n video_url: string;\n [key: string]: unknown;\n}\n\ninterface YouTubeMedia {\n media_type: string;\n preview_url?: string;\n resource_url?: string;\n formats?: YouTubeFormat[];\n [key: string]: unknown;\n}\n\ninterface YouTubeApiResponse {\n text: string;\n medias: YouTubeMedia[];\n}\n\ndeclare global {\n // eslint-disable-next-line no-var\n var creator: string;\n}\n\nglobal.creator = '@abotscraper – ahmuq';\n\nexport default class Downloader {\n private generator: Generator;\n\n constructor() {\n this.generator = new Generator();\n }\n\n async facebook(url: string): Promise<ApiResponse<FacebookResult>> {\n try {\n const headers = {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0',\n Origin: 'https://www.fdown.world',\n referer: 'https://www.fdown.world/',\n 'x-requested-with': 'XMLHttpRequest',\n Cookie: 'codehap_domain=www.fdown.world',\n };\n\n const data = new URLSearchParams({ codehap_link: url, codehap: 'true' });\n\n const response: AxiosResponse = await axios.post(\n 'https://www.fdown.world/result.php',\n data,\n { headers }\n );\n\n const $ = cheerio.load(response.data);\n const videoUrl = $('video source').attr('src');\n const imageUrl = $('img').attr('src');\n\n if (!videoUrl && !imageUrl) {\n throw new Error('No video or image found in the response.');\n }\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n thumbnail: imageUrl || '',\n videoUrl: videoUrl || '',\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async tiktokDownloader(url: string): Promise<ApiResponse<TikTokResult>> {\n try {\n const headers = {\n 'sec-ch-ua':\n '\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"',\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n };\n\n const data = new URLSearchParams({\n id: url,\n locale: 'en',\n tt: 'WmNzZDk_',\n });\n\n const response: AxiosResponse = await axios.post(\n 'https://ssstik.io/abc?url=dl',\n data,\n {\n headers,\n }\n );\n\n const $ = cheerio.load(response.data);\n const title = $('p.maintext').text().trim();\n const audio = $('a.download_link.music').attr('href');\n const video = $('a.download_link.without_watermark').attr('href');\n\n if (!title || !video) {\n throw new Error('Failed to extract video or title from response.');\n }\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n title: title,\n video: video || '',\n audio: audio || '',\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async igstory(username: string): Promise<ApiResponse<InstagramStoriesResult>> {\n const payload = {\n username: username,\n }\n const headers = {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/',\n accept: 'application/json, text/plain, */*',\n 'accept-language': 'en-US,en;q=0.9,ar;q=0.8,id;q=0.7,vi;q=0.6',\n 'content-type': 'application/json',\n priority: 'u=1, i',\n 'sec-ch-ua':\n '\"Microsoft Edge\";v=\"137\", \"Chromium\";v=\"137\", \"Not/A)Brand\";v=\"24\"',\n 'sec-ch-ua-mobile': '?0',\n 'sec-ch-ua-platform': '\"Windows\"',\n 'sec-fetch-dest': 'empty',\n 'sec-fetch-mode': 'cors',\n 'sec-fetch-site': 'same-origin',\n Referer: 'https://storyviewer.com/',\n 'Referrer-Policy': 'strict-origin-when-cross-origin',\n };\n try {\n const response: AxiosResponse = await axios.post(\n `https://storyviewer.com/api/data`,\n payload,\n { headers }\n );\n\n const data: InstagramApiResponse = response.data;\n const sources = data.stories.map((story: StoryItem) => story.source);\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n user_info: data.user_info,\n links: sources,\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async instagram(url: string): Promise<ApiResponse<InstagramMediaItem[]>> {\n try {\n const config = new URLSearchParams({\n url: url,\n new: '2',\n lang: 'en',\n app: '',\n });\n\n const headers = {\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n };\n\n const response: AxiosResponse<InstagramFilesResponse> = await axios.post(\n 'https://snapinsta.app/get-data.php',\n config,\n { headers }\n );\n\n const downloadLinks = response.data.files\n .map((file: FileItem) =>\n file.__type === 'GraphVideo'\n ? { type: 'video' as const, url: file.video_url || '' }\n : file.__type === 'GraphImage'\n ? { type: 'image' as const, url: file.download_url || '' }\n : null\n )\n .filter((link: InstagramMediaItem | null): link is InstagramMediaItem => link !== null);\n\n return {\n creator: global.creator,\n status: 200,\n result: downloadLinks,\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async youtubeDownloader(url: string): Promise<ApiResponse<YoutubeResult>> {\n try {\n const config = qs.stringify({\n url: url,\n q_auto: 0,\n ajax: 1,\n lang: 'en',\n });\n\n const headers = {\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n };\n\n const response: AxiosResponse = await axios.post(\n 'https://yt1s.net/ajax?retry=undefined&platform=youtube',\n config,\n { headers }\n );\n\n const $ = cheerio.load(response.data.result);\n const title = $('.caption b').text().trim();\n const downloadLinks = {\n '480p': $('a[data-fquality=\"480p\"]').attr('href') || '',\n '720p': $('a[data-fquality=\"720p\"]').attr('href') || '',\n '1080p': $('a[data-fquality=\"1080p\"]').attr('href') || '',\n };\n const thumbnailUrl = $('.thumbnail.cover img').attr('src');\n\n const mp3ConvertElement = $('#convert-mp3 a');\n const hrefAttr = mp3ConvertElement.attr('href');\n\n if (!hrefAttr) throw new Error('MP3 conversion link not found.');\n\n const mp3ConvertTokenMatch = hrefAttr.match(\n /mp3_convert_task\\('(\\d+)',\\s*'([^']+)'\\)/\n );\n\n if (!mp3ConvertTokenMatch)\n throw new Error('MP3 conversion token not found.');\n\n const mp3ConvertToken = mp3ConvertTokenMatch[2];\n\n const mp3Response: AxiosResponse = await axios.get(\n `https://api.fabdl.com/youtube/mp3-convert-task?token=${mp3ConvertToken}`\n );\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n title: title,\n thumbnail: thumbnailUrl || '',\n downloadLinks: downloadLinks,\n mp3DownloadUrl: `https://api.fabdl.com${mp3Response.data.result.download_url}`,\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n ytMp3Downloader = (url: string) => {\n return new Promise((resolve, reject) => {\n const headers = {\n accept: \"*/*\",\n \"accept-language\": \"en-US,en;q=0.9,ar;q=0.8,id;q=0.7,vi;q=0.6\",\n \"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n priority: \"u=1, i\",\n \"sec-ch-ua\":\n '\"Microsoft Edge\";v=\"137\", \"Chromium\";v=\"137\", \"Not/A)Brand\";v=\"24\"',\n \"sec-ch-ua-mobile\": \"?0\",\n \"sec-ch-ua-platform\": '\"Windows\"',\n \"sec-fetch-dest\": \"empty\",\n \"sec-fetch-mode\": \"cors\",\n \"sec-fetch-site\": \"cross-site\",\n Referer: \"https://y2hub.com/\",\n \"Referrer-Policy\": \"strict-origin-when-cross-origin\",\n };\n\n const payload = qs.stringify({\n action: \"yt_convert\",\n nonce: \"1495b10e48\",\n youtube_url: url,\n });\n\n axios(`https://youtubemp4free.com/wp-admin/admin-ajax.php`, {\n method: \"POST\",\n headers: headers,\n data: payload,\n })\n .then(({ data }) => {\n if (!data.success) {\n return reject(new Error(\"Failed to fetch video data\"));\n }\n\n const videoInfo = data.data.info;\n const slug = data.data.slug;\n const size = data.data.size;\n return axios(\"https://ryin.info/\", {\n method: \"GET\",\n headers: {\n \"User-Agent\":\n \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0\",\n },\n }).then((response) => {\n const setCookieHeaders = response.headers[\"set-cookie\"];\n let cookies;\n\n if (setCookieHeaders) {\n cookies = setCookieHeaders\n .map((cookie) => cookie.split(\";\")[0])\n .join(\"; \");\n } else {\n cookies =\n \"PHPSESSID=fl86pmq4dqgh2835b32mdm7380; csrf_cookie_name=739e04fcc21050c61c5325b34f449659; lang=en\";\n }\n\n const pageUrl = \"https://ryin.info/\" + slug;\n\n return axios(pageUrl, {\n method: \"GET\",\n headers: {\n \"User-Agent\":\n \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0\",\n Cookie: cookies,\n },\n }).then((response) => {\n const html = response.data;\n const $ = cheerio.load(html);\n const downloadHref = $(\"#download-url\").attr(\"download-href\");\n\n if (!downloadHref) {\n return reject(new Error(\"Download link not found on page\"));\n }\n resolve({\n creator: global.creator,\n status: true,\n title: videoInfo.title,\n thumbnail: videoInfo.thumbnail,\n description: videoInfo.description,\n viewCount: videoInfo.view_count,\n size: this.generator.formatFileSize(size),\n downloadUrl: downloadHref,\n });\n });\n });\n })\n .catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n });\n };\n\n\n async youtubeDownloaderV2(url: string): Promise<ApiResponse<YoutubeResultV2>> {\n try {\n const timestamp = this.generator.generateTimeStampYoutubeDL();\n const footer = this.generator.generateFooterYoutubeDL(timestamp, url);\n\n const payload = {\n link: url,\n };\n\n const headers = {\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n 'g-footer': footer,\n 'g-timestamp': timestamp,\n accept: '*/*',\n 'accept-language': 'en',\n 'content-type': 'application/json',\n priority: 'u=1, i',\n 'sec-ch-ua':\n '\"Microsoft Edge\";v=\"137\", \"Chromium\";v=\"137\", \"Not/A)Brand\";v=\"24\"',\n 'sec-ch-ua-mobile': '?0',\n 'sec-ch-ua-platform': '\"Windows\"',\n 'sec-fetch-dest': 'empty',\n 'sec-fetch-mode': 'cors',\n 'sec-fetch-site': 'same-site',\n Referer: 'https://snapany.com/',\n 'Referrer-Policy': 'strict-origin-when-cross-origin',\n };\n\n const response: AxiosResponse<YouTubeApiResponse> = await axios.post(\n 'https://api.snapany.com/v1/extract',\n payload,\n { headers }\n );\n const data = response.data;\n\n const videoMedia = data.medias.find(\n (media: YouTubeMedia) => media.media_type === 'video'\n );\n const audioMedia = data.medias.find(\n (media: YouTubeMedia) => media.media_type === 'audio'\n );\n\n const downloadLinks: Record<string, string> = {};\n if (videoMedia && videoMedia.formats) {\n videoMedia.formats.forEach((format: YouTubeFormat) => {\n const qualityKey = `${format.quality}p`;\n downloadLinks[qualityKey] = format.video_url;\n });\n }\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n title: data.text,\n thumbnail: videoMedia?.preview_url || null,\n downloadLinks: downloadLinks,\n video: videoMedia?.resource_url || null,\n audio: audioMedia?.resource_url || null,\n formats: videoMedia?.formats || [],\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async sfileDownloader(url: string): Promise<ApiResponse<SfileDownloadResult>> {\n try {\n const response: AxiosResponse = await axios.get(url, {\n headers: {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n Referer: 'https://sfile.mobi/',\n 'Accept-Language': 'en-US,en;q=0.9',\n },\n });\n\n const $ = cheerio.load(response.data);\n const filename = $('.intro-container img').attr('alt') || '';\n const mimetype = $('div.list').text().split(' - ')[1]?.split('\\n')[0] || '';\n const downloadHref = $('#download').attr('href');\n const download = downloadHref\n ? downloadHref + '&k=' + Math.floor(Math.random() * (15 - 10 + 1) + 10)\n : '';\n\n return {\n creator: global.creator,\n status: 200,\n result: { filename, mimetype, download },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n}\n","import crypto from 'crypto';\n\nexport default class Generator {\n generateTimeStampYoutubeDL(): string {\n return Date.now().toString();\n }\n\n generateFooterYoutubeDL(timestamp: string, link: string): string {\n const locale = 'en';\n const secretKey = '6HTugjCXxR';\n const input = link + locale + timestamp + secretKey;\n const hash = crypto.createHash('md5').update(input).digest('hex');\n return hash;\n }\n\n formatFileSize(bytes: number): string {\n if (bytes === 0) return \"0 Bytes\";\n const k = 1024;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + \" \" + sizes[i];\n }\n\n private static generateVisitorId(): string {\n const components = [\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',\n '1920x1080',\n new Date().getTimezoneOffset().toString(),\n 'en-US',\n 'Win32',\n Math.random().toString(36).substring(2, 15),\n Date.now().toString(),\n process.pid.toString(),\n Math.floor(Math.random() * 1000000).toString()\n ];\n const fingerprint = crypto.createHash('md5')\n .update(components.join('|'))\n .digest('hex');\n return fingerprint;\n }\n\n static getFingerprint(): string {\n const visitorId = this.generateVisitorId();\n return visitorId;\n }\n}\n","import axios, { AxiosResponse } from 'axios';\nimport * as cheerio from 'cheerio';\nimport {\n ApiResponse,\n SfileSearchResult,\n WallpaperResult,\n WikimediaResult,\n YtPlayResult,\n YtSearchResult,\n} from '../../types/index.js';\n\ndeclare global {\n // eslint-disable-next-line no-var\n var creator: string;\n}\n\nglobal.creator = '@abotscraper – ahmuq';\n\ninterface YtPlayConfig {\n k_query: string;\n k_page: string;\n q_auto: number;\n hl?: string;\n}\n\ninterface ConvertConfig {\n vid: string;\n k: string;\n}\n\nexport default class Search {\n async sfileSearch(\n query: string,\n page: number = 1\n ): Promise<ApiResponse<SfileSearchResult[]>> {\n try {\n const response: AxiosResponse = await axios.get(\n `https://sfile.mobi/search.php?q=${query}&page=${page}`,\n {\n headers: {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n Referer: 'https://sfile.mobi/',\n 'Accept-Language': 'en-US,en;q=0.9',\n },\n }\n );\n const $ = cheerio.load(response.data);\n const results: SfileSearchResult[] = [];\n\n $('div.list').each(function () {\n const title = $(this).find('a').text();\n const sizeText = $(this).text().trim().split('(')[1];\n const link = $(this).find('a').attr('href');\n\n if (link && sizeText) {\n results.push({\n title,\n size: sizeText.replace(')', ''),\n link\n });\n }\n });\n\n return {\n creator: global.creator,\n status: 200,\n result: results,\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error'\n };\n }\n }\n\n async ytSearch(query: string): Promise<ApiResponse<YtSearchResult[]>> {\n try {\n const headers = {\n accept: \"*/*\",\n \"accept-language\": \"en-US,en;q=0.9,ar;q=0.8,id;q=0.7,vi;q=0.6\",\n priority: \"u=1, i\",\n \"sec-ch-ua\":\n '\"Microsoft Edge\";v=\"137\", \"Chromium\";v=\"137\", \"Not/A)Brand\";v=\"24\"',\n \"sec-ch-ua-mobile\": \"?0\",\n \"sec-ch-ua-platform\": '\"Windows\"',\n \"sec-fetch-dest\": \"empty\",\n \"sec-fetch-mode\": \"cors\",\n \"sec-fetch-site\": \"cross-site\",\n }\n const response: AxiosResponse = await axios.get(\n `https://line.1010diy.com/web/free-mp3-finder/query?q=${encodeURIComponent(query)}&type=youtube&pageToken=`,\n { headers }\n );\n\n const data = response.data;\n const videos = data?.data?.items || [];\n const results: YtSearchResult[] = videos.map((item: {\n title: string;\n thumbnail: string;\n url: string;\n }) => ({\n title: item.title,\n thumbnail: item.thumbnail,\n url: item.url\n }));\n\n return {\n creator: global.creator,\n status: 200,\n result: results,\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error'\n };\n }\n }\n\n ytPlay = (text: string): Promise<ApiResponse<YtPlayResult>> => {\n return new Promise((resolve, reject) => {\n const configd: YtPlayConfig = {\n k_query: text,\n k_page: 'mp3',\n q_auto: 1,\n };\n\n const headerss = {\n 'sec-ch-ua':\n '\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"',\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n Cookie:\n 'PHPSESSID=6jo2ggb63g5mjvgj45f612ogt7; _ga=GA1.2.405896420.1625200423; _gid=GA1.2.2135261581.1625200423; _PN_SBSCRBR_FALLBACK_DENIED=1625200785624; MarketGidStorage={\"0\":{},\"C702514\":{\"page\":5,\"time\":1625200846733}}',\n };\n\n axios('https://www.y2mate.com/mates/analyzeV2/ajax', {\n method: 'POST',\n data: new URLSearchParams(Object.entries(configd)),\n headers: headerss,\n })\n .then(({ data }) => {\n const v = data.vitems;\n const v2 = v[Math.floor(Math.random() * v.length)].v;\n const url = 'https://www.youtube.com/watch?v=' + v2;\n\n const config: YtPlayConfig = {\n k_query: 'https://www.youtube.be/' + url,\n k_page: 'mp3',\n hl: 'en',\n q_auto: 1,\n };\n\n\n axios('https://www.y2mate.com/mates/en68/analyze/ajax', {\n method: 'POST',\n data: new URLSearchParams({\n url: 'https://www.youtube.be/' + url,\n q_auto: '0',\n ajax: '1',\n }),\n headers: headerss,\n }).then(({ data }) => {\n const $ = cheerio.load(data.result);\n const img = $('div.thumbnail.cover > a > img').attr('src');\n\n axios('https://www.y2mate.com/mates/analyzeV2/ajax', {\n method: 'POST',\n data: new URLSearchParams(Object.entries(config)),\n headers: headerss,\n }).then(({ data }) => {\n const convertConfig: ConvertConfig = {\n vid: data.vid,\n k: data.links.mp3.mp3128.k,\n };\n\n const size = data.links.mp3.mp3128.size;\n\n axios('https://www.y2mate.com/mates/convertV2/index', {\n method: 'POST',\n data: new URLSearchParams(Object.entries(convertConfig)),\n headers: headerss,\n })\n .then((response) => {\n resolve({\n creator: global.creator,\n status: 200,\n result: {\n status: response.data.status,\n title: response.data.title,\n ftype: response.data.ftype,\n thumb: img || '',\n size_mp3: size,\n link: response.data.dlink,\n },\n });\n })\n .catch(reject);\n });\n });\n })\n .catch(reject);\n });\n };\n\n wallpaper = (\n title: string,\n page: string = '1'\n ): Promise<ApiResponse<WallpaperResult[]>> => {\n return new Promise((resolve, reject) => {\n axios\n .get(\n `https://www.besthdwallpaper.com/search?CurrentPage=${page}&q=${title}`\n )\n .then(({ data }) => {\n const $ = cheerio.load(data);\n const hasil: WallpaperResult[] = [];\n\n $('div.grid-item').each(function (_, b) {\n const titleAttr = $(b).find('p[title]').attr('title');\n const typeText = $(b).find('div.info > a:nth-child(2)').text();\n const hrefAttr = $(b).find('a').attr('href');\n const imgSrc = $(b).find('picture > img').attr('src');\n const srcset1 = $(b)\n .find('picture > source:nth-child(1)')\n .attr('srcset');\n const srcset2 = $(b)\n .find('picture > source:nth-child(2)')\n .attr('srcset');\n\n if (titleAttr && hrefAttr) {\n hasil.push({\n title: titleAttr.trim(),\n type: typeText?.trim() || '',\n source: 'https://www.besthdwallpaper.com' + hrefAttr,\n image: [imgSrc || '', srcset1 || '', srcset2 || ''],\n });\n }\n });\n\n resolve({ creator: global.creator, status: 200, result: hasil });\n })\n .catch((error) => {\n reject(error);\n });\n });\n };\n\n wikimedia = (title: string): Promise<ApiResponse<WikimediaResult[]>> => {\n return new Promise((resolve, reject) => {\n axios\n .get(\n `https://commons.wikimedia.org/w/index.php?search=${title}&title=Special:MediaSearch&go=Go&type=image`\n )\n .then((res) => {\n const $ = cheerio.load(res.data);\n const hasil: WikimediaResult[] = [];\n\n $('.sdms-search-results__list-wrapper > div > a').each(function (\n _,\n b\n ) {\n const altText = $(b).find('img').attr('alt');\n const href = $(b).attr('href');\n const dataSrc = $(b).find('img').attr('data-src');\n const src = $(b).find('img').attr('src');\n\n if (altText && href) {\n hasil.push({\n title: altText,\n source: href,\n image: dataSrc || src || '',\n });\n }\n });\n\n resolve({ creator: global.creator, status: 200, result: hasil });\n })\n .catch(reject);\n });\n };\n}\n","import axios, { AxiosResponse } from 'axios';\nimport FormData from 'form-data';\nimport Generator from '../utils/generator.js';\nglobal.creator = '@abotscraper – ahmuq'\n\n\nexport default class Tools {\n reminiUpscale = (buffer: Buffer) => {\n return new Promise((resolve, reject) => {\n const form = new FormData();\n form.append('type', 'Enhancer');\n form.append('original_image_file', buffer, 'blob');\n const productSerial = Generator.getFingerprint();\n axios.post('https://api.remaker.ai/api/pai/v4/ai-enhance/create-job-new', form, {\n headers: {\n ...form.getHeaders(),\n 'authorization': '',\n 'product-code': '067003',\n 'product-serial': productSerial,\n 'Referer': 'https://remaker.ai/',\n }\n }).then((createJobResponse: AxiosResponse) => {\n if (createJobResponse.data.code !== 100000) {\n reject({\n creator: global.creator,\n status: false,\n error: `Job creation failed: ${createJobResponse.data.message.en}`,\n });\n return;\n }\n const jobId = createJobResponse.data.result.job_id;\n const checkJobStatus = () => {\n axios.get(`https://api.remaker.ai/api/pai/v4/ai-enhance/get-job/${jobId}`, {\n headers: {\n 'authorization': '',\n 'product-code': '067003',\n 'product-serial': productSerial,\n 'Referer': 'https://remaker.ai/',\n }\n }).then((jobResponse: AxiosResponse) => {\n if (jobResponse.data.code === 100000) {\n resolve({\n creator: global.creator,\n status: true,\n result: {\n job_id: jobId,\n image_url: jobResponse.data.result.output[0]\n }\n });\n } else if (jobResponse.data.code === 300013) {\n setTimeout(checkJobStatus, 3000);\n } else {\n reject({\n creator: global.creator,\n status: false,\n error: `Job failed: ${jobResponse.data.message.en}`,\n });\n }\n }).catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n };\n\n checkJobStatus();\n }).catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n });\n }\n\n uploadImage = (buffer: Buffer) => {\n return new Promise((resolve, reject) => {\n const form = new FormData();\n form.append('fileToUpload', buffer, 'image.jpg');\n form.append('reqtype', 'fileupload');\n form.append('userhash', '');\n\n axios.post('https://catbox.moe/user/api.php', form, {\n headers: {\n ...form.getHeaders(),\n }\n })\n .then((response: AxiosResponse) => {\n resolve({\n creator: global.creator,\n status: true,\n result: response.data\n })\n })\n .catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n })\n }\n}"],"mappings":"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","names":["crypto","qs","axios","response","import_axios","cheerio","axios","data","import_axios","FormData","axios"]}
package/dist/index.js CHANGED
@@ -23,6 +23,25 @@ var Generator = class {
23
23
  const i = Math.floor(Math.log(bytes) / Math.log(k));
24
24
  return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + " " + sizes[i];
25
25
  }
26
+ static generateVisitorId() {
27
+ const components = [
28
+ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
29
+ "1920x1080",
30
+ (/* @__PURE__ */ new Date()).getTimezoneOffset().toString(),
31
+ "en-US",
32
+ "Win32",
33
+ Math.random().toString(36).substring(2, 15),
34
+ Date.now().toString(),
35
+ process.pid.toString(),
36
+ Math.floor(Math.random() * 1e6).toString()
37
+ ];
38
+ const fingerprint = crypto.createHash("md5").update(components.join("|")).digest("hex");
39
+ return fingerprint;
40
+ }
41
+ static getFingerprint() {
42
+ const visitorId = this.generateVisitorId();
43
+ return visitorId;
44
+ }
26
45
  };
27
46
 
28
47
  // src/scraper/downloader.ts
@@ -632,12 +651,13 @@ var Tools = class {
632
651
  const form = new FormData();
633
652
  form.append("type", "Enhancer");
634
653
  form.append("original_image_file", buffer, "blob");
654
+ const productSerial = Generator.getFingerprint();
635
655
  axios3.post("https://api.remaker.ai/api/pai/v4/ai-enhance/create-job-new", form, {
636
656
  headers: {
637
657
  ...form.getHeaders(),
638
658
  "authorization": "",
639
659
  "product-code": "067003",
640
- "product-serial": "24d7e0c0b939f686aaa76f532c3efcd4",
660
+ "product-serial": productSerial,
641
661
  "Referer": "https://remaker.ai/"
642
662
  }
643
663
  }).then((createJobResponse) => {
@@ -655,7 +675,7 @@ var Tools = class {
655
675
  headers: {
656
676
  "authorization": "",
657
677
  "product-code": "067003",
658
- "product-serial": "24d7e0c0b939f686aaa76f532c3efcd4",
678
+ "product-serial": productSerial,
659
679
  "Referer": "https://remaker.ai/"
660
680
  }
661
681
  }).then((jobResponse) => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scraper/downloader.ts","../src/utils/generator.ts","../src/scraper/search.ts","../src/scraper/tools.ts","../src/index.ts"],"sourcesContent":["import axios, { AxiosResponse } from 'axios';\nimport * as cheerio from 'cheerio';\nimport qs from 'qs';\nimport {\n ApiResponse,\n FacebookResult,\n InstagramMediaItem,\n InstagramStoriesResult,\n SfileDownloadResult,\n TikTokResult,\n YoutubeResult,\n YoutubeResultV2,\n} from '../../types/index.js';\nimport Generator from '../utils/generator.js';\n\ninterface StoryItem {\n source: string;\n [key: string]: unknown;\n}\n\ninterface InstagramApiResponse {\n stories: StoryItem[];\n user_info: {\n username: string;\n [key: string]: unknown;\n };\n}\n\ninterface FileItem {\n __type: string;\n video_url?: string;\n download_url?: string;\n [key: string]: unknown;\n}\n\ninterface InstagramFilesResponse {\n files: FileItem[];\n}\n\ninterface YouTubeFormat {\n quality: string;\n video_url: string;\n [key: string]: unknown;\n}\n\ninterface YouTubeMedia {\n media_type: string;\n preview_url?: string;\n resource_url?: string;\n formats?: YouTubeFormat[];\n [key: string]: unknown;\n}\n\ninterface YouTubeApiResponse {\n text: string;\n medias: YouTubeMedia[];\n}\n\ndeclare global {\n // eslint-disable-next-line no-var\n var creator: string;\n}\n\nglobal.creator = '@abotscraper – ahmuq';\n\nexport default class Downloader {\n private generator: Generator;\n\n constructor() {\n this.generator = new Generator();\n }\n\n async facebook(url: string): Promise<ApiResponse<FacebookResult>> {\n try {\n const headers = {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0',\n Origin: 'https://www.fdown.world',\n referer: 'https://www.fdown.world/',\n 'x-requested-with': 'XMLHttpRequest',\n Cookie: 'codehap_domain=www.fdown.world',\n };\n\n const data = new URLSearchParams({ codehap_link: url, codehap: 'true' });\n\n const response: AxiosResponse = await axios.post(\n 'https://www.fdown.world/result.php',\n data,\n { headers }\n );\n\n const $ = cheerio.load(response.data);\n const videoUrl = $('video source').attr('src');\n const imageUrl = $('img').attr('src');\n\n if (!videoUrl && !imageUrl) {\n throw new Error('No video or image found in the response.');\n }\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n thumbnail: imageUrl || '',\n videoUrl: videoUrl || '',\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async tiktokDownloader(url: string): Promise<ApiResponse<TikTokResult>> {\n try {\n const headers = {\n 'sec-ch-ua':\n '\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"',\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n };\n\n const data = new URLSearchParams({\n id: url,\n locale: 'en',\n tt: 'WmNzZDk_',\n });\n\n const response: AxiosResponse = await axios.post(\n 'https://ssstik.io/abc?url=dl',\n data,\n {\n headers,\n }\n );\n\n const $ = cheerio.load(response.data);\n const title = $('p.maintext').text().trim();\n const audio = $('a.download_link.music').attr('href');\n const video = $('a.download_link.without_watermark').attr('href');\n\n if (!title || !video) {\n throw new Error('Failed to extract video or title from response.');\n }\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n title: title,\n video: video || '',\n audio: audio || '',\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async igstory(username: string): Promise<ApiResponse<InstagramStoriesResult>> {\n const payload = {\n username: username,\n }\n const headers = {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/',\n accept: 'application/json, text/plain, */*',\n 'accept-language': 'en-US,en;q=0.9,ar;q=0.8,id;q=0.7,vi;q=0.6',\n 'content-type': 'application/json',\n priority: 'u=1, i',\n 'sec-ch-ua':\n '\"Microsoft Edge\";v=\"137\", \"Chromium\";v=\"137\", \"Not/A)Brand\";v=\"24\"',\n 'sec-ch-ua-mobile': '?0',\n 'sec-ch-ua-platform': '\"Windows\"',\n 'sec-fetch-dest': 'empty',\n 'sec-fetch-mode': 'cors',\n 'sec-fetch-site': 'same-origin',\n Referer: 'https://storyviewer.com/',\n 'Referrer-Policy': 'strict-origin-when-cross-origin',\n };\n try {\n const response: AxiosResponse = await axios.post(\n `https://storyviewer.com/api/data`,\n payload,\n { headers }\n );\n\n const data: InstagramApiResponse = response.data;\n const sources = data.stories.map((story: StoryItem) => story.source);\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n user_info: data.user_info,\n links: sources,\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async instagram(url: string): Promise<ApiResponse<InstagramMediaItem[]>> {\n try {\n const config = new URLSearchParams({\n url: url,\n new: '2',\n lang: 'en',\n app: '',\n });\n\n const headers = {\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n };\n\n const response: AxiosResponse<InstagramFilesResponse> = await axios.post(\n 'https://snapinsta.app/get-data.php',\n config,\n { headers }\n );\n\n const downloadLinks = response.data.files\n .map((file: FileItem) =>\n file.__type === 'GraphVideo'\n ? { type: 'video' as const, url: file.video_url || '' }\n : file.__type === 'GraphImage'\n ? { type: 'image' as const, url: file.download_url || '' }\n : null\n )\n .filter((link: InstagramMediaItem | null): link is InstagramMediaItem => link !== null);\n\n return {\n creator: global.creator,\n status: 200,\n result: downloadLinks,\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async youtubeDownloader(url: string): Promise<ApiResponse<YoutubeResult>> {\n try {\n const config = qs.stringify({\n url: url,\n q_auto: 0,\n ajax: 1,\n lang: 'en',\n });\n\n const headers = {\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n };\n\n const response: AxiosResponse = await axios.post(\n 'https://yt1s.net/ajax?retry=undefined&platform=youtube',\n config,\n { headers }\n );\n\n const $ = cheerio.load(response.data.result);\n const title = $('.caption b').text().trim();\n const downloadLinks = {\n '480p': $('a[data-fquality=\"480p\"]').attr('href') || '',\n '720p': $('a[data-fquality=\"720p\"]').attr('href') || '',\n '1080p': $('a[data-fquality=\"1080p\"]').attr('href') || '',\n };\n const thumbnailUrl = $('.thumbnail.cover img').attr('src');\n\n const mp3ConvertElement = $('#convert-mp3 a');\n const hrefAttr = mp3ConvertElement.attr('href');\n\n if (!hrefAttr) throw new Error('MP3 conversion link not found.');\n\n const mp3ConvertTokenMatch = hrefAttr.match(\n /mp3_convert_task\\('(\\d+)',\\s*'([^']+)'\\)/\n );\n\n if (!mp3ConvertTokenMatch)\n throw new Error('MP3 conversion token not found.');\n\n const mp3ConvertToken = mp3ConvertTokenMatch[2];\n\n const mp3Response: AxiosResponse = await axios.get(\n `https://api.fabdl.com/youtube/mp3-convert-task?token=${mp3ConvertToken}`\n );\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n title: title,\n thumbnail: thumbnailUrl || '',\n downloadLinks: downloadLinks,\n mp3DownloadUrl: `https://api.fabdl.com${mp3Response.data.result.download_url}`,\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n ytMp3Downloader = (url: string) => {\n return new Promise((resolve, reject) => {\n const headers = {\n accept: \"*/*\",\n \"accept-language\": \"en-US,en;q=0.9,ar;q=0.8,id;q=0.7,vi;q=0.6\",\n \"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n priority: \"u=1, i\",\n \"sec-ch-ua\":\n '\"Microsoft Edge\";v=\"137\", \"Chromium\";v=\"137\", \"Not/A)Brand\";v=\"24\"',\n \"sec-ch-ua-mobile\": \"?0\",\n \"sec-ch-ua-platform\": '\"Windows\"',\n \"sec-fetch-dest\": \"empty\",\n \"sec-fetch-mode\": \"cors\",\n \"sec-fetch-site\": \"cross-site\",\n Referer: \"https://y2hub.com/\",\n \"Referrer-Policy\": \"strict-origin-when-cross-origin\",\n };\n\n const payload = qs.stringify({\n action: \"yt_convert\",\n nonce: \"1495b10e48\",\n youtube_url: url,\n });\n\n axios(`https://youtubemp4free.com/wp-admin/admin-ajax.php`, {\n method: \"POST\",\n headers: headers,\n data: payload,\n })\n .then(({ data }) => {\n if (!data.success) {\n return reject(new Error(\"Failed to fetch video data\"));\n }\n\n const videoInfo = data.data.info;\n const slug = data.data.slug;\n const size = data.data.size;\n return axios(\"https://ryin.info/\", {\n method: \"GET\",\n headers: {\n \"User-Agent\":\n \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0\",\n },\n }).then((response) => {\n const setCookieHeaders = response.headers[\"set-cookie\"];\n let cookies;\n\n if (setCookieHeaders) {\n cookies = setCookieHeaders\n .map((cookie) => cookie.split(\";\")[0])\n .join(\"; \");\n } else {\n cookies =\n \"PHPSESSID=fl86pmq4dqgh2835b32mdm7380; csrf_cookie_name=739e04fcc21050c61c5325b34f449659; lang=en\";\n }\n\n const pageUrl = \"https://ryin.info/\" + slug;\n\n return axios(pageUrl, {\n method: \"GET\",\n headers: {\n \"User-Agent\":\n \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0\",\n Cookie: cookies,\n },\n }).then((response) => {\n const html = response.data;\n const $ = cheerio.load(html);\n const downloadHref = $(\"#download-url\").attr(\"download-href\");\n\n if (!downloadHref) {\n return reject(new Error(\"Download link not found on page\"));\n }\n resolve({\n creator: global.creator,\n status: true,\n title: videoInfo.title,\n thumbnail: videoInfo.thumbnail,\n description: videoInfo.description,\n viewCount: videoInfo.view_count,\n size: this.generator.formatFileSize(size),\n downloadUrl: downloadHref,\n });\n });\n });\n })\n .catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n });\n };\n\n\n async youtubeDownloaderV2(url: string): Promise<ApiResponse<YoutubeResultV2>> {\n try {\n const timestamp = this.generator.generateTimeStampYoutubeDL();\n const footer = this.generator.generateFooterYoutubeDL(timestamp, url);\n\n const payload = {\n link: url,\n };\n\n const headers = {\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n 'g-footer': footer,\n 'g-timestamp': timestamp,\n accept: '*/*',\n 'accept-language': 'en',\n 'content-type': 'application/json',\n priority: 'u=1, i',\n 'sec-ch-ua':\n '\"Microsoft Edge\";v=\"137\", \"Chromium\";v=\"137\", \"Not/A)Brand\";v=\"24\"',\n 'sec-ch-ua-mobile': '?0',\n 'sec-ch-ua-platform': '\"Windows\"',\n 'sec-fetch-dest': 'empty',\n 'sec-fetch-mode': 'cors',\n 'sec-fetch-site': 'same-site',\n Referer: 'https://snapany.com/',\n 'Referrer-Policy': 'strict-origin-when-cross-origin',\n };\n\n const response: AxiosResponse<YouTubeApiResponse> = await axios.post(\n 'https://api.snapany.com/v1/extract',\n payload,\n { headers }\n );\n const data = response.data;\n\n const videoMedia = data.medias.find(\n (media: YouTubeMedia) => media.media_type === 'video'\n );\n const audioMedia = data.medias.find(\n (media: YouTubeMedia) => media.media_type === 'audio'\n );\n\n const downloadLinks: Record<string, string> = {};\n if (videoMedia && videoMedia.formats) {\n videoMedia.formats.forEach((format: YouTubeFormat) => {\n const qualityKey = `${format.quality}p`;\n downloadLinks[qualityKey] = format.video_url;\n });\n }\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n title: data.text,\n thumbnail: videoMedia?.preview_url || null,\n downloadLinks: downloadLinks,\n video: videoMedia?.resource_url || null,\n audio: audioMedia?.resource_url || null,\n formats: videoMedia?.formats || [],\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async sfileDownloader(url: string): Promise<ApiResponse<SfileDownloadResult>> {\n try {\n const response: AxiosResponse = await axios.get(url, {\n headers: {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n Referer: 'https://sfile.mobi/',\n 'Accept-Language': 'en-US,en;q=0.9',\n },\n });\n\n const $ = cheerio.load(response.data);\n const filename = $('.intro-container img').attr('alt') || '';\n const mimetype = $('div.list').text().split(' - ')[1]?.split('\\n')[0] || '';\n const downloadHref = $('#download').attr('href');\n const download = downloadHref\n ? downloadHref + '&k=' + Math.floor(Math.random() * (15 - 10 + 1) + 10)\n : '';\n\n return {\n creator: global.creator,\n status: 200,\n result: { filename, mimetype, download },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n}\n","import crypto from 'crypto';\n\nexport default class Generator {\n generateTimeStampYoutubeDL(): string {\n return Date.now().toString();\n }\n\n generateFooterYoutubeDL(timestamp: string, link: string): string {\n const locale = 'en';\n const secretKey = '6HTugjCXxR';\n const input = link + locale + timestamp + secretKey;\n const hash = crypto.createHash('md5').update(input).digest('hex');\n return hash;\n }\n\n formatFileSize(bytes: number): string {\n if (bytes === 0) return \"0 Bytes\";\n const k = 1024;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + \" \" + sizes[i];\n }\n}\n","import axios, { AxiosResponse } from 'axios';\nimport * as cheerio from 'cheerio';\nimport {\n ApiResponse,\n SfileSearchResult,\n WallpaperResult,\n WikimediaResult,\n YtPlayResult,\n YtSearchResult,\n} from '../../types/index.js';\n\ndeclare global {\n // eslint-disable-next-line no-var\n var creator: string;\n}\n\nglobal.creator = '@abotscraper – ahmuq';\n\ninterface YtPlayConfig {\n k_query: string;\n k_page: string;\n q_auto: number;\n hl?: string;\n}\n\ninterface ConvertConfig {\n vid: string;\n k: string;\n}\n\nexport default class Search {\n async sfileSearch(\n query: string,\n page: number = 1\n ): Promise<ApiResponse<SfileSearchResult[]>> {\n try {\n const response: AxiosResponse = await axios.get(\n `https://sfile.mobi/search.php?q=${query}&page=${page}`,\n {\n headers: {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n Referer: 'https://sfile.mobi/',\n 'Accept-Language': 'en-US,en;q=0.9',\n },\n }\n );\n const $ = cheerio.load(response.data);\n const results: SfileSearchResult[] = [];\n\n $('div.list').each(function () {\n const title = $(this).find('a').text();\n const sizeText = $(this).text().trim().split('(')[1];\n const link = $(this).find('a').attr('href');\n\n if (link && sizeText) {\n results.push({\n title,\n size: sizeText.replace(')', ''),\n link\n });\n }\n });\n\n return {\n creator: global.creator,\n status: 200,\n result: results,\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error'\n };\n }\n }\n\n async ytSearch(query: string): Promise<ApiResponse<YtSearchResult[]>> {\n try {\n const headers = {\n accept: \"*/*\",\n \"accept-language\": \"en-US,en;q=0.9,ar;q=0.8,id;q=0.7,vi;q=0.6\",\n priority: \"u=1, i\",\n \"sec-ch-ua\":\n '\"Microsoft Edge\";v=\"137\", \"Chromium\";v=\"137\", \"Not/A)Brand\";v=\"24\"',\n \"sec-ch-ua-mobile\": \"?0\",\n \"sec-ch-ua-platform\": '\"Windows\"',\n \"sec-fetch-dest\": \"empty\",\n \"sec-fetch-mode\": \"cors\",\n \"sec-fetch-site\": \"cross-site\",\n }\n const response: AxiosResponse = await axios.get(\n `https://line.1010diy.com/web/free-mp3-finder/query?q=${encodeURIComponent(query)}&type=youtube&pageToken=`,\n { headers }\n );\n\n const data = response.data;\n const videos = data?.data?.items || [];\n const results: YtSearchResult[] = videos.map((item: {\n title: string;\n thumbnail: string;\n url: string;\n }) => ({\n title: item.title,\n thumbnail: item.thumbnail,\n url: item.url\n }));\n\n return {\n creator: global.creator,\n status: 200,\n result: results,\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error'\n };\n }\n }\n\n ytPlay = (text: string): Promise<ApiResponse<YtPlayResult>> => {\n return new Promise((resolve, reject) => {\n const configd: YtPlayConfig = {\n k_query: text,\n k_page: 'mp3',\n q_auto: 1,\n };\n\n const headerss = {\n 'sec-ch-ua':\n '\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"',\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n Cookie:\n 'PHPSESSID=6jo2ggb63g5mjvgj45f612ogt7; _ga=GA1.2.405896420.1625200423; _gid=GA1.2.2135261581.1625200423; _PN_SBSCRBR_FALLBACK_DENIED=1625200785624; MarketGidStorage={\"0\":{},\"C702514\":{\"page\":5,\"time\":1625200846733}}',\n };\n\n axios('https://www.y2mate.com/mates/analyzeV2/ajax', {\n method: 'POST',\n data: new URLSearchParams(Object.entries(configd)),\n headers: headerss,\n })\n .then(({ data }) => {\n const v = data.vitems;\n const v2 = v[Math.floor(Math.random() * v.length)].v;\n const url = 'https://www.youtube.com/watch?v=' + v2;\n\n const config: YtPlayConfig = {\n k_query: 'https://www.youtube.be/' + url,\n k_page: 'mp3',\n hl: 'en',\n q_auto: 1,\n };\n\n\n axios('https://www.y2mate.com/mates/en68/analyze/ajax', {\n method: 'POST',\n data: new URLSearchParams({\n url: 'https://www.youtube.be/' + url,\n q_auto: '0',\n ajax: '1',\n }),\n headers: headerss,\n }).then(({ data }) => {\n const $ = cheerio.load(data.result);\n const img = $('div.thumbnail.cover > a > img').attr('src');\n\n axios('https://www.y2mate.com/mates/analyzeV2/ajax', {\n method: 'POST',\n data: new URLSearchParams(Object.entries(config)),\n headers: headerss,\n }).then(({ data }) => {\n const convertConfig: ConvertConfig = {\n vid: data.vid,\n k: data.links.mp3.mp3128.k,\n };\n\n const size = data.links.mp3.mp3128.size;\n\n axios('https://www.y2mate.com/mates/convertV2/index', {\n method: 'POST',\n data: new URLSearchParams(Object.entries(convertConfig)),\n headers: headerss,\n })\n .then((response) => {\n resolve({\n creator: global.creator,\n status: 200,\n result: {\n status: response.data.status,\n title: response.data.title,\n ftype: response.data.ftype,\n thumb: img || '',\n size_mp3: size,\n link: response.data.dlink,\n },\n });\n })\n .catch(reject);\n });\n });\n })\n .catch(reject);\n });\n };\n\n wallpaper = (\n title: string,\n page: string = '1'\n ): Promise<ApiResponse<WallpaperResult[]>> => {\n return new Promise((resolve, reject) => {\n axios\n .get(\n `https://www.besthdwallpaper.com/search?CurrentPage=${page}&q=${title}`\n )\n .then(({ data }) => {\n const $ = cheerio.load(data);\n const hasil: WallpaperResult[] = [];\n\n $('div.grid-item').each(function (_, b) {\n const titleAttr = $(b).find('p[title]').attr('title');\n const typeText = $(b).find('div.info > a:nth-child(2)').text();\n const hrefAttr = $(b).find('a').attr('href');\n const imgSrc = $(b).find('picture > img').attr('src');\n const srcset1 = $(b)\n .find('picture > source:nth-child(1)')\n .attr('srcset');\n const srcset2 = $(b)\n .find('picture > source:nth-child(2)')\n .attr('srcset');\n\n if (titleAttr && hrefAttr) {\n hasil.push({\n title: titleAttr.trim(),\n type: typeText?.trim() || '',\n source: 'https://www.besthdwallpaper.com' + hrefAttr,\n image: [imgSrc || '', srcset1 || '', srcset2 || ''],\n });\n }\n });\n\n resolve({ creator: global.creator, status: 200, result: hasil });\n })\n .catch((error) => {\n reject(error);\n });\n });\n };\n\n wikimedia = (title: string): Promise<ApiResponse<WikimediaResult[]>> => {\n return new Promise((resolve, reject) => {\n axios\n .get(\n `https://commons.wikimedia.org/w/index.php?search=${title}&title=Special:MediaSearch&go=Go&type=image`\n )\n .then((res) => {\n const $ = cheerio.load(res.data);\n const hasil: WikimediaResult[] = [];\n\n $('.sdms-search-results__list-wrapper > div > a').each(function (\n _,\n b\n ) {\n const altText = $(b).find('img').attr('alt');\n const href = $(b).attr('href');\n const dataSrc = $(b).find('img').attr('data-src');\n const src = $(b).find('img').attr('src');\n\n if (altText && href) {\n hasil.push({\n title: altText,\n source: href,\n image: dataSrc || src || '',\n });\n }\n });\n\n resolve({ creator: global.creator, status: 200, result: hasil });\n })\n .catch(reject);\n });\n };\n}\n","import axios, { AxiosResponse } from 'axios';\nimport FormData from 'form-data';\n\nglobal.creator = '@abotscraper – ahmuq'\n\nexport default class Tools {\n reminiUpscale = (buffer: Buffer) => {\n return new Promise((resolve, reject) => {\n const form = new FormData();\n form.append('type', 'Enhancer');\n form.append('original_image_file', buffer, 'blob');\n axios.post('https://api.remaker.ai/api/pai/v4/ai-enhance/create-job-new', form, {\n headers: {\n ...form.getHeaders(),\n 'authorization': '',\n 'product-code': '067003',\n 'product-serial': '24d7e0c0b939f686aaa76f532c3efcd4',\n 'Referer': 'https://remaker.ai/',\n }\n }).then((createJobResponse: AxiosResponse) => {\n if (createJobResponse.data.code !== 100000) {\n reject({\n creator: global.creator,\n status: false,\n error: `Job creation failed: ${createJobResponse.data.message.en}`,\n });\n return;\n }\n const jobId = createJobResponse.data.result.job_id;\n const checkJobStatus = () => {\n axios.get(`https://api.remaker.ai/api/pai/v4/ai-enhance/get-job/${jobId}`, {\n headers: {\n 'authorization': '',\n 'product-code': '067003',\n 'product-serial': '24d7e0c0b939f686aaa76f532c3efcd4',\n 'Referer': 'https://remaker.ai/',\n }\n }).then((jobResponse: AxiosResponse) => {\n if (jobResponse.data.code === 100000) {\n resolve({\n creator: global.creator,\n status: true,\n result: {\n job_id: jobId,\n image_url: jobResponse.data.result.output[0]\n }\n });\n } else if (jobResponse.data.code === 300013) {\n setTimeout(checkJobStatus, 3000);\n } else {\n reject({\n creator: global.creator,\n status: false,\n error: `Job failed: ${jobResponse.data.message.en}`,\n });\n }\n }).catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n };\n\n checkJobStatus();\n }).catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n });\n }\n\n uploadImage = (buffer: Buffer) => {\n return new Promise((resolve, reject) => {\n const form = new FormData();\n form.append('fileToUpload', buffer, 'image.jpg');\n form.append('reqtype', 'fileupload');\n form.append('userhash', '');\n\n axios.post('https://catbox.moe/user/api.php', form, {\n headers: {\n ...form.getHeaders(),\n }\n })\n .then((response: AxiosResponse) => {\n resolve({\n creator: global.creator,\n status: true,\n result: response.data\n })\n })\n .catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n })\n }\n}","import Downloader from './scraper/downloader.js';\nimport Search from './scraper/search.js';\nimport Tools from './scraper/tools.js';\n\nconst downloader = new Downloader();\nconst search = new Search();\nconst tools = new Tools();\nexport default {\n downloader,\n search,\n tools\n};\n\nexport { Downloader, downloader, Search, search, Tools, tools };\n\n"],"mappings":"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","names":["response","axios","cheerio","data","axios"]}
1
+ {"version":3,"sources":["../src/scraper/downloader.ts","../src/utils/generator.ts","../src/scraper/search.ts","../src/scraper/tools.ts","../src/index.ts"],"sourcesContent":["import axios, { AxiosResponse } from 'axios';\nimport * as cheerio from 'cheerio';\nimport qs from 'qs';\nimport {\n ApiResponse,\n FacebookResult,\n InstagramMediaItem,\n InstagramStoriesResult,\n SfileDownloadResult,\n TikTokResult,\n YoutubeResult,\n YoutubeResultV2,\n} from '../../types/index.js';\nimport Generator from '../utils/generator.js';\n\ninterface StoryItem {\n source: string;\n [key: string]: unknown;\n}\n\ninterface InstagramApiResponse {\n stories: StoryItem[];\n user_info: {\n username: string;\n [key: string]: unknown;\n };\n}\n\ninterface FileItem {\n __type: string;\n video_url?: string;\n download_url?: string;\n [key: string]: unknown;\n}\n\ninterface InstagramFilesResponse {\n files: FileItem[];\n}\n\ninterface YouTubeFormat {\n quality: string;\n video_url: string;\n [key: string]: unknown;\n}\n\ninterface YouTubeMedia {\n media_type: string;\n preview_url?: string;\n resource_url?: string;\n formats?: YouTubeFormat[];\n [key: string]: unknown;\n}\n\ninterface YouTubeApiResponse {\n text: string;\n medias: YouTubeMedia[];\n}\n\ndeclare global {\n // eslint-disable-next-line no-var\n var creator: string;\n}\n\nglobal.creator = '@abotscraper – ahmuq';\n\nexport default class Downloader {\n private generator: Generator;\n\n constructor() {\n this.generator = new Generator();\n }\n\n async facebook(url: string): Promise<ApiResponse<FacebookResult>> {\n try {\n const headers = {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0',\n Origin: 'https://www.fdown.world',\n referer: 'https://www.fdown.world/',\n 'x-requested-with': 'XMLHttpRequest',\n Cookie: 'codehap_domain=www.fdown.world',\n };\n\n const data = new URLSearchParams({ codehap_link: url, codehap: 'true' });\n\n const response: AxiosResponse = await axios.post(\n 'https://www.fdown.world/result.php',\n data,\n { headers }\n );\n\n const $ = cheerio.load(response.data);\n const videoUrl = $('video source').attr('src');\n const imageUrl = $('img').attr('src');\n\n if (!videoUrl && !imageUrl) {\n throw new Error('No video or image found in the response.');\n }\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n thumbnail: imageUrl || '',\n videoUrl: videoUrl || '',\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async tiktokDownloader(url: string): Promise<ApiResponse<TikTokResult>> {\n try {\n const headers = {\n 'sec-ch-ua':\n '\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"',\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n };\n\n const data = new URLSearchParams({\n id: url,\n locale: 'en',\n tt: 'WmNzZDk_',\n });\n\n const response: AxiosResponse = await axios.post(\n 'https://ssstik.io/abc?url=dl',\n data,\n {\n headers,\n }\n );\n\n const $ = cheerio.load(response.data);\n const title = $('p.maintext').text().trim();\n const audio = $('a.download_link.music').attr('href');\n const video = $('a.download_link.without_watermark').attr('href');\n\n if (!title || !video) {\n throw new Error('Failed to extract video or title from response.');\n }\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n title: title,\n video: video || '',\n audio: audio || '',\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async igstory(username: string): Promise<ApiResponse<InstagramStoriesResult>> {\n const payload = {\n username: username,\n }\n const headers = {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/',\n accept: 'application/json, text/plain, */*',\n 'accept-language': 'en-US,en;q=0.9,ar;q=0.8,id;q=0.7,vi;q=0.6',\n 'content-type': 'application/json',\n priority: 'u=1, i',\n 'sec-ch-ua':\n '\"Microsoft Edge\";v=\"137\", \"Chromium\";v=\"137\", \"Not/A)Brand\";v=\"24\"',\n 'sec-ch-ua-mobile': '?0',\n 'sec-ch-ua-platform': '\"Windows\"',\n 'sec-fetch-dest': 'empty',\n 'sec-fetch-mode': 'cors',\n 'sec-fetch-site': 'same-origin',\n Referer: 'https://storyviewer.com/',\n 'Referrer-Policy': 'strict-origin-when-cross-origin',\n };\n try {\n const response: AxiosResponse = await axios.post(\n `https://storyviewer.com/api/data`,\n payload,\n { headers }\n );\n\n const data: InstagramApiResponse = response.data;\n const sources = data.stories.map((story: StoryItem) => story.source);\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n user_info: data.user_info,\n links: sources,\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async instagram(url: string): Promise<ApiResponse<InstagramMediaItem[]>> {\n try {\n const config = new URLSearchParams({\n url: url,\n new: '2',\n lang: 'en',\n app: '',\n });\n\n const headers = {\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n };\n\n const response: AxiosResponse<InstagramFilesResponse> = await axios.post(\n 'https://snapinsta.app/get-data.php',\n config,\n { headers }\n );\n\n const downloadLinks = response.data.files\n .map((file: FileItem) =>\n file.__type === 'GraphVideo'\n ? { type: 'video' as const, url: file.video_url || '' }\n : file.__type === 'GraphImage'\n ? { type: 'image' as const, url: file.download_url || '' }\n : null\n )\n .filter((link: InstagramMediaItem | null): link is InstagramMediaItem => link !== null);\n\n return {\n creator: global.creator,\n status: 200,\n result: downloadLinks,\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async youtubeDownloader(url: string): Promise<ApiResponse<YoutubeResult>> {\n try {\n const config = qs.stringify({\n url: url,\n q_auto: 0,\n ajax: 1,\n lang: 'en',\n });\n\n const headers = {\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n };\n\n const response: AxiosResponse = await axios.post(\n 'https://yt1s.net/ajax?retry=undefined&platform=youtube',\n config,\n { headers }\n );\n\n const $ = cheerio.load(response.data.result);\n const title = $('.caption b').text().trim();\n const downloadLinks = {\n '480p': $('a[data-fquality=\"480p\"]').attr('href') || '',\n '720p': $('a[data-fquality=\"720p\"]').attr('href') || '',\n '1080p': $('a[data-fquality=\"1080p\"]').attr('href') || '',\n };\n const thumbnailUrl = $('.thumbnail.cover img').attr('src');\n\n const mp3ConvertElement = $('#convert-mp3 a');\n const hrefAttr = mp3ConvertElement.attr('href');\n\n if (!hrefAttr) throw new Error('MP3 conversion link not found.');\n\n const mp3ConvertTokenMatch = hrefAttr.match(\n /mp3_convert_task\\('(\\d+)',\\s*'([^']+)'\\)/\n );\n\n if (!mp3ConvertTokenMatch)\n throw new Error('MP3 conversion token not found.');\n\n const mp3ConvertToken = mp3ConvertTokenMatch[2];\n\n const mp3Response: AxiosResponse = await axios.get(\n `https://api.fabdl.com/youtube/mp3-convert-task?token=${mp3ConvertToken}`\n );\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n title: title,\n thumbnail: thumbnailUrl || '',\n downloadLinks: downloadLinks,\n mp3DownloadUrl: `https://api.fabdl.com${mp3Response.data.result.download_url}`,\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n ytMp3Downloader = (url: string) => {\n return new Promise((resolve, reject) => {\n const headers = {\n accept: \"*/*\",\n \"accept-language\": \"en-US,en;q=0.9,ar;q=0.8,id;q=0.7,vi;q=0.6\",\n \"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n priority: \"u=1, i\",\n \"sec-ch-ua\":\n '\"Microsoft Edge\";v=\"137\", \"Chromium\";v=\"137\", \"Not/A)Brand\";v=\"24\"',\n \"sec-ch-ua-mobile\": \"?0\",\n \"sec-ch-ua-platform\": '\"Windows\"',\n \"sec-fetch-dest\": \"empty\",\n \"sec-fetch-mode\": \"cors\",\n \"sec-fetch-site\": \"cross-site\",\n Referer: \"https://y2hub.com/\",\n \"Referrer-Policy\": \"strict-origin-when-cross-origin\",\n };\n\n const payload = qs.stringify({\n action: \"yt_convert\",\n nonce: \"1495b10e48\",\n youtube_url: url,\n });\n\n axios(`https://youtubemp4free.com/wp-admin/admin-ajax.php`, {\n method: \"POST\",\n headers: headers,\n data: payload,\n })\n .then(({ data }) => {\n if (!data.success) {\n return reject(new Error(\"Failed to fetch video data\"));\n }\n\n const videoInfo = data.data.info;\n const slug = data.data.slug;\n const size = data.data.size;\n return axios(\"https://ryin.info/\", {\n method: \"GET\",\n headers: {\n \"User-Agent\":\n \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0\",\n },\n }).then((response) => {\n const setCookieHeaders = response.headers[\"set-cookie\"];\n let cookies;\n\n if (setCookieHeaders) {\n cookies = setCookieHeaders\n .map((cookie) => cookie.split(\";\")[0])\n .join(\"; \");\n } else {\n cookies =\n \"PHPSESSID=fl86pmq4dqgh2835b32mdm7380; csrf_cookie_name=739e04fcc21050c61c5325b34f449659; lang=en\";\n }\n\n const pageUrl = \"https://ryin.info/\" + slug;\n\n return axios(pageUrl, {\n method: \"GET\",\n headers: {\n \"User-Agent\":\n \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0\",\n Cookie: cookies,\n },\n }).then((response) => {\n const html = response.data;\n const $ = cheerio.load(html);\n const downloadHref = $(\"#download-url\").attr(\"download-href\");\n\n if (!downloadHref) {\n return reject(new Error(\"Download link not found on page\"));\n }\n resolve({\n creator: global.creator,\n status: true,\n title: videoInfo.title,\n thumbnail: videoInfo.thumbnail,\n description: videoInfo.description,\n viewCount: videoInfo.view_count,\n size: this.generator.formatFileSize(size),\n downloadUrl: downloadHref,\n });\n });\n });\n })\n .catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n });\n };\n\n\n async youtubeDownloaderV2(url: string): Promise<ApiResponse<YoutubeResultV2>> {\n try {\n const timestamp = this.generator.generateTimeStampYoutubeDL();\n const footer = this.generator.generateFooterYoutubeDL(timestamp, url);\n\n const payload = {\n link: url,\n };\n\n const headers = {\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n 'g-footer': footer,\n 'g-timestamp': timestamp,\n accept: '*/*',\n 'accept-language': 'en',\n 'content-type': 'application/json',\n priority: 'u=1, i',\n 'sec-ch-ua':\n '\"Microsoft Edge\";v=\"137\", \"Chromium\";v=\"137\", \"Not/A)Brand\";v=\"24\"',\n 'sec-ch-ua-mobile': '?0',\n 'sec-ch-ua-platform': '\"Windows\"',\n 'sec-fetch-dest': 'empty',\n 'sec-fetch-mode': 'cors',\n 'sec-fetch-site': 'same-site',\n Referer: 'https://snapany.com/',\n 'Referrer-Policy': 'strict-origin-when-cross-origin',\n };\n\n const response: AxiosResponse<YouTubeApiResponse> = await axios.post(\n 'https://api.snapany.com/v1/extract',\n payload,\n { headers }\n );\n const data = response.data;\n\n const videoMedia = data.medias.find(\n (media: YouTubeMedia) => media.media_type === 'video'\n );\n const audioMedia = data.medias.find(\n (media: YouTubeMedia) => media.media_type === 'audio'\n );\n\n const downloadLinks: Record<string, string> = {};\n if (videoMedia && videoMedia.formats) {\n videoMedia.formats.forEach((format: YouTubeFormat) => {\n const qualityKey = `${format.quality}p`;\n downloadLinks[qualityKey] = format.video_url;\n });\n }\n\n return {\n creator: global.creator,\n status: 200,\n result: {\n title: data.text,\n thumbnail: videoMedia?.preview_url || null,\n downloadLinks: downloadLinks,\n video: videoMedia?.resource_url || null,\n audio: audioMedia?.resource_url || null,\n formats: videoMedia?.formats || [],\n },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n\n async sfileDownloader(url: string): Promise<ApiResponse<SfileDownloadResult>> {\n try {\n const response: AxiosResponse = await axios.get(url, {\n headers: {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n Referer: 'https://sfile.mobi/',\n 'Accept-Language': 'en-US,en;q=0.9',\n },\n });\n\n const $ = cheerio.load(response.data);\n const filename = $('.intro-container img').attr('alt') || '';\n const mimetype = $('div.list').text().split(' - ')[1]?.split('\\n')[0] || '';\n const downloadHref = $('#download').attr('href');\n const download = downloadHref\n ? downloadHref + '&k=' + Math.floor(Math.random() * (15 - 10 + 1) + 10)\n : '';\n\n return {\n creator: global.creator,\n status: 200,\n result: { filename, mimetype, download },\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error',\n };\n }\n }\n}\n","import crypto from 'crypto';\n\nexport default class Generator {\n generateTimeStampYoutubeDL(): string {\n return Date.now().toString();\n }\n\n generateFooterYoutubeDL(timestamp: string, link: string): string {\n const locale = 'en';\n const secretKey = '6HTugjCXxR';\n const input = link + locale + timestamp + secretKey;\n const hash = crypto.createHash('md5').update(input).digest('hex');\n return hash;\n }\n\n formatFileSize(bytes: number): string {\n if (bytes === 0) return \"0 Bytes\";\n const k = 1024;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + \" \" + sizes[i];\n }\n\n private static generateVisitorId(): string {\n const components = [\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',\n '1920x1080',\n new Date().getTimezoneOffset().toString(),\n 'en-US',\n 'Win32',\n Math.random().toString(36).substring(2, 15),\n Date.now().toString(),\n process.pid.toString(),\n Math.floor(Math.random() * 1000000).toString()\n ];\n const fingerprint = crypto.createHash('md5')\n .update(components.join('|'))\n .digest('hex');\n return fingerprint;\n }\n\n static getFingerprint(): string {\n const visitorId = this.generateVisitorId();\n return visitorId;\n }\n}\n","import axios, { AxiosResponse } from 'axios';\nimport * as cheerio from 'cheerio';\nimport {\n ApiResponse,\n SfileSearchResult,\n WallpaperResult,\n WikimediaResult,\n YtPlayResult,\n YtSearchResult,\n} from '../../types/index.js';\n\ndeclare global {\n // eslint-disable-next-line no-var\n var creator: string;\n}\n\nglobal.creator = '@abotscraper – ahmuq';\n\ninterface YtPlayConfig {\n k_query: string;\n k_page: string;\n q_auto: number;\n hl?: string;\n}\n\ninterface ConvertConfig {\n vid: string;\n k: string;\n}\n\nexport default class Search {\n async sfileSearch(\n query: string,\n page: number = 1\n ): Promise<ApiResponse<SfileSearchResult[]>> {\n try {\n const response: AxiosResponse = await axios.get(\n `https://sfile.mobi/search.php?q=${query}&page=${page}`,\n {\n headers: {\n 'User-Agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n Referer: 'https://sfile.mobi/',\n 'Accept-Language': 'en-US,en;q=0.9',\n },\n }\n );\n const $ = cheerio.load(response.data);\n const results: SfileSearchResult[] = [];\n\n $('div.list').each(function () {\n const title = $(this).find('a').text();\n const sizeText = $(this).text().trim().split('(')[1];\n const link = $(this).find('a').attr('href');\n\n if (link && sizeText) {\n results.push({\n title,\n size: sizeText.replace(')', ''),\n link\n });\n }\n });\n\n return {\n creator: global.creator,\n status: 200,\n result: results,\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error'\n };\n }\n }\n\n async ytSearch(query: string): Promise<ApiResponse<YtSearchResult[]>> {\n try {\n const headers = {\n accept: \"*/*\",\n \"accept-language\": \"en-US,en;q=0.9,ar;q=0.8,id;q=0.7,vi;q=0.6\",\n priority: \"u=1, i\",\n \"sec-ch-ua\":\n '\"Microsoft Edge\";v=\"137\", \"Chromium\";v=\"137\", \"Not/A)Brand\";v=\"24\"',\n \"sec-ch-ua-mobile\": \"?0\",\n \"sec-ch-ua-platform\": '\"Windows\"',\n \"sec-fetch-dest\": \"empty\",\n \"sec-fetch-mode\": \"cors\",\n \"sec-fetch-site\": \"cross-site\",\n }\n const response: AxiosResponse = await axios.get(\n `https://line.1010diy.com/web/free-mp3-finder/query?q=${encodeURIComponent(query)}&type=youtube&pageToken=`,\n { headers }\n );\n\n const data = response.data;\n const videos = data?.data?.items || [];\n const results: YtSearchResult[] = videos.map((item: {\n title: string;\n thumbnail: string;\n url: string;\n }) => ({\n title: item.title,\n thumbnail: item.thumbnail,\n url: item.url\n }));\n\n return {\n creator: global.creator,\n status: 200,\n result: results,\n };\n } catch (error) {\n return {\n creator: global.creator,\n status: false,\n msg: error instanceof Error ? error.message : 'Unknown error'\n };\n }\n }\n\n ytPlay = (text: string): Promise<ApiResponse<YtPlayResult>> => {\n return new Promise((resolve, reject) => {\n const configd: YtPlayConfig = {\n k_query: text,\n k_page: 'mp3',\n q_auto: 1,\n };\n\n const headerss = {\n 'sec-ch-ua':\n '\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"91\", \"Chromium\";v=\"91\"',\n 'user-agent':\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',\n Cookie:\n 'PHPSESSID=6jo2ggb63g5mjvgj45f612ogt7; _ga=GA1.2.405896420.1625200423; _gid=GA1.2.2135261581.1625200423; _PN_SBSCRBR_FALLBACK_DENIED=1625200785624; MarketGidStorage={\"0\":{},\"C702514\":{\"page\":5,\"time\":1625200846733}}',\n };\n\n axios('https://www.y2mate.com/mates/analyzeV2/ajax', {\n method: 'POST',\n data: new URLSearchParams(Object.entries(configd)),\n headers: headerss,\n })\n .then(({ data }) => {\n const v = data.vitems;\n const v2 = v[Math.floor(Math.random() * v.length)].v;\n const url = 'https://www.youtube.com/watch?v=' + v2;\n\n const config: YtPlayConfig = {\n k_query: 'https://www.youtube.be/' + url,\n k_page: 'mp3',\n hl: 'en',\n q_auto: 1,\n };\n\n\n axios('https://www.y2mate.com/mates/en68/analyze/ajax', {\n method: 'POST',\n data: new URLSearchParams({\n url: 'https://www.youtube.be/' + url,\n q_auto: '0',\n ajax: '1',\n }),\n headers: headerss,\n }).then(({ data }) => {\n const $ = cheerio.load(data.result);\n const img = $('div.thumbnail.cover > a > img').attr('src');\n\n axios('https://www.y2mate.com/mates/analyzeV2/ajax', {\n method: 'POST',\n data: new URLSearchParams(Object.entries(config)),\n headers: headerss,\n }).then(({ data }) => {\n const convertConfig: ConvertConfig = {\n vid: data.vid,\n k: data.links.mp3.mp3128.k,\n };\n\n const size = data.links.mp3.mp3128.size;\n\n axios('https://www.y2mate.com/mates/convertV2/index', {\n method: 'POST',\n data: new URLSearchParams(Object.entries(convertConfig)),\n headers: headerss,\n })\n .then((response) => {\n resolve({\n creator: global.creator,\n status: 200,\n result: {\n status: response.data.status,\n title: response.data.title,\n ftype: response.data.ftype,\n thumb: img || '',\n size_mp3: size,\n link: response.data.dlink,\n },\n });\n })\n .catch(reject);\n });\n });\n })\n .catch(reject);\n });\n };\n\n wallpaper = (\n title: string,\n page: string = '1'\n ): Promise<ApiResponse<WallpaperResult[]>> => {\n return new Promise((resolve, reject) => {\n axios\n .get(\n `https://www.besthdwallpaper.com/search?CurrentPage=${page}&q=${title}`\n )\n .then(({ data }) => {\n const $ = cheerio.load(data);\n const hasil: WallpaperResult[] = [];\n\n $('div.grid-item').each(function (_, b) {\n const titleAttr = $(b).find('p[title]').attr('title');\n const typeText = $(b).find('div.info > a:nth-child(2)').text();\n const hrefAttr = $(b).find('a').attr('href');\n const imgSrc = $(b).find('picture > img').attr('src');\n const srcset1 = $(b)\n .find('picture > source:nth-child(1)')\n .attr('srcset');\n const srcset2 = $(b)\n .find('picture > source:nth-child(2)')\n .attr('srcset');\n\n if (titleAttr && hrefAttr) {\n hasil.push({\n title: titleAttr.trim(),\n type: typeText?.trim() || '',\n source: 'https://www.besthdwallpaper.com' + hrefAttr,\n image: [imgSrc || '', srcset1 || '', srcset2 || ''],\n });\n }\n });\n\n resolve({ creator: global.creator, status: 200, result: hasil });\n })\n .catch((error) => {\n reject(error);\n });\n });\n };\n\n wikimedia = (title: string): Promise<ApiResponse<WikimediaResult[]>> => {\n return new Promise((resolve, reject) => {\n axios\n .get(\n `https://commons.wikimedia.org/w/index.php?search=${title}&title=Special:MediaSearch&go=Go&type=image`\n )\n .then((res) => {\n const $ = cheerio.load(res.data);\n const hasil: WikimediaResult[] = [];\n\n $('.sdms-search-results__list-wrapper > div > a').each(function (\n _,\n b\n ) {\n const altText = $(b).find('img').attr('alt');\n const href = $(b).attr('href');\n const dataSrc = $(b).find('img').attr('data-src');\n const src = $(b).find('img').attr('src');\n\n if (altText && href) {\n hasil.push({\n title: altText,\n source: href,\n image: dataSrc || src || '',\n });\n }\n });\n\n resolve({ creator: global.creator, status: 200, result: hasil });\n })\n .catch(reject);\n });\n };\n}\n","import axios, { AxiosResponse } from 'axios';\nimport FormData from 'form-data';\nimport Generator from '../utils/generator.js';\nglobal.creator = '@abotscraper – ahmuq'\n\n\nexport default class Tools {\n reminiUpscale = (buffer: Buffer) => {\n return new Promise((resolve, reject) => {\n const form = new FormData();\n form.append('type', 'Enhancer');\n form.append('original_image_file', buffer, 'blob');\n const productSerial = Generator.getFingerprint();\n axios.post('https://api.remaker.ai/api/pai/v4/ai-enhance/create-job-new', form, {\n headers: {\n ...form.getHeaders(),\n 'authorization': '',\n 'product-code': '067003',\n 'product-serial': productSerial,\n 'Referer': 'https://remaker.ai/',\n }\n }).then((createJobResponse: AxiosResponse) => {\n if (createJobResponse.data.code !== 100000) {\n reject({\n creator: global.creator,\n status: false,\n error: `Job creation failed: ${createJobResponse.data.message.en}`,\n });\n return;\n }\n const jobId = createJobResponse.data.result.job_id;\n const checkJobStatus = () => {\n axios.get(`https://api.remaker.ai/api/pai/v4/ai-enhance/get-job/${jobId}`, {\n headers: {\n 'authorization': '',\n 'product-code': '067003',\n 'product-serial': productSerial,\n 'Referer': 'https://remaker.ai/',\n }\n }).then((jobResponse: AxiosResponse) => {\n if (jobResponse.data.code === 100000) {\n resolve({\n creator: global.creator,\n status: true,\n result: {\n job_id: jobId,\n image_url: jobResponse.data.result.output[0]\n }\n });\n } else if (jobResponse.data.code === 300013) {\n setTimeout(checkJobStatus, 3000);\n } else {\n reject({\n creator: global.creator,\n status: false,\n error: `Job failed: ${jobResponse.data.message.en}`,\n });\n }\n }).catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n };\n\n checkJobStatus();\n }).catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n });\n }\n\n uploadImage = (buffer: Buffer) => {\n return new Promise((resolve, reject) => {\n const form = new FormData();\n form.append('fileToUpload', buffer, 'image.jpg');\n form.append('reqtype', 'fileupload');\n form.append('userhash', '');\n\n axios.post('https://catbox.moe/user/api.php', form, {\n headers: {\n ...form.getHeaders(),\n }\n })\n .then((response: AxiosResponse) => {\n resolve({\n creator: global.creator,\n status: true,\n result: response.data\n })\n })\n .catch((error) => {\n reject({\n creator: global.creator,\n status: false,\n error: error.message,\n });\n });\n })\n }\n}","import Downloader from './scraper/downloader.js';\nimport Search from './scraper/search.js';\nimport Tools from './scraper/tools.js';\n\nconst downloader = new Downloader();\nconst search = new Search();\nconst tools = new Tools();\nexport default {\n downloader,\n search,\n tools\n};\n\nexport { Downloader, downloader, Search, search, Tools, tools };\n\n"],"mappings":"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","names":["response","axios","cheerio","data","axios","axios"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "abot-scraper",
3
- "version": "1.5.0",
3
+ "version": "1.5.1",
4
4
  "description": "scraper random for downloader and searching",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",