feat(packages.core): disabling saveFrom due lack knowledge to RE their browser mechanism request

Signed-off-by: Hanif Dwy Putra S <hanifdwyputrasembiring@gmail.com>
This commit is contained in:
Hanif Dwy Putra S
2025-09-21 02:51:53 +07:00
parent c88c881e69
commit 86a9f38dc1
2 changed files with 18 additions and 10 deletions

View File

@@ -1,3 +1,4 @@
import got from 'got';
import {getFetch} from '../fetch';
import {BaseProvider, ExtractedInfo, MaintenanceProvider} from './base';
import {deObfuscateSaveFromScript} from './utils';
@@ -17,8 +18,8 @@ export class SaveFromProvider extends BaseProvider {
public client = getFetch('https://worker.savefrom.net');
public maintenance: MaintenanceProvider = {
reason: 'Need advance investigate to Reverse Engineering the response scripts.'
}
reason: 'Need further investigation.',
};
/**
*
@@ -26,27 +27,33 @@ export class SaveFromProvider extends BaseProvider {
* @return {Promise<ExtractedInfo>}
*/
public async fetch(url: string): Promise<ExtractedInfo> {
const responseFirst = await got.get('https://en1.savefrom.net');
const response = await this.client.post('./savefrom.php', {
form: {
sf_url: url,
sf_submit: '',
new: '2',
lang: 'id',
lang: 'en',
country: 'id',
os: 'Ubuntu',
browser: 'Firefox',
channel: 'Downloader',
os: 'Linux',
browser: 'Brave',
channel: 'main',
'sf-nomad': '1',
url,
ts: Date.now(),
_ts: Date.now(),
_tsc: 0,
},
headers: {
Origin: 'https://id.savefrom.net',
Referer: 'https://id.savefrom.net',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36',
Origin: 'https://en1.savefrom.net',
Referer: 'https://en1.savefrom.net',
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36',
Cookies: responseFirst.headers['set-cookie']?.toString(),
},
});
console.log(response.body);
return this.extract(response.body);
}

View File

@@ -92,9 +92,10 @@ export const matchCustomDownload = (
export const deObfuscateSaveFromScript = (scriptContent: string): string => {
const safeScript =
'let result;' +
'let result = ' +
scriptContent
.replace(/\/\*js\-response\*\//gi, '');
const vm = new NodeVM({
compiler: 'javascript',
console: 'inherit',