@ernestoyoofi/yt.loader-to
Version:
An unofficial, promise-based API wrapper for `loader.to` to fetch YouTube video information and generate download links. Written in TypeScript, it's fully typed and easy to use in any Node.js project.
48 lines (47 loc) • 2.56 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.RequestURL = RequestURL;
const axios_1 = __importDefault(require("axios"));
function RequestURL(url, options) {
return __awaiter(this, void 0, void 0, function* () {
try {
const axiosdefault = Object.assign({ url: String(url || ""), headers: Object.assign({ "accept": "*/*", "accept-language": "id,en-US;q=0.9,en;q=0.8,ms;q=0.7", "cookie": "_ga_JQXWSK7VEK=GS1.1.1737284104.1.1.1737284811.0.0.0;", "dnt": "1", "origin": new URL(url).origin, "sec-ch-ua": `"Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"`, 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"Linux"', 'user-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:34.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36' }, ((options === null || options === void 0 ? void 0 : options.headers) || {})) }, options);
const axiosrequest = yield axios_1.default.request(axiosdefault);
return {
status: axiosrequest.status,
statusText: axiosrequest.statusText,
headers: axiosrequest.headers,
data: axiosrequest.data,
};
}
catch (e) {
const response = e.response;
if (response) {
return {
error: e.stack,
isError: false,
status: response.status,
statusText: response.statusText,
headers: response.headers,
data: response.data,
};
}
return {
isError: true,
error: e.stack
};
}
});
}