mirror of
https://github.com/Inside4ndroid/TMDB-Embed-API.git
synced 2026-10-22 09:35:11 +00:00
changed provider. and fixed routes / resolver..
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
import express from "express";
|
||||
import { getvmovie, getvserie } from "./src/vidsrcto.js";
|
||||
|
||||
import { getvmovie } from "./src/vidsrcpro.js";
|
||||
|
||||
const port = 3000;
|
||||
|
||||
@@ -8,7 +7,7 @@ const app = express()
|
||||
|
||||
app.get('/', (req, res) => {
|
||||
res.status(200).json({
|
||||
intro: "Welcome to the unofficial vidsrc provider: check the provider website @ https://vidsrc.cc/ ",
|
||||
intro: "Welcome to the unofficial vidsrcPro provider",
|
||||
routes: {
|
||||
movie: "/vidsrc/:movieTMDBid",
|
||||
show: "/vidsrc/:showTMDBid?s=seasonNumber&e=episodeNumber"
|
||||
@@ -24,7 +23,7 @@ app.get('/vidsrc/:tmdbId', async (req, res) => {
|
||||
|
||||
try {
|
||||
if (season && episode) {
|
||||
const vidsrcresponse = await getvserie(id, season, episode);
|
||||
const vidsrcresponse = await getvmovie(id, season, episode);
|
||||
res.status(200).json(vidsrcresponse);
|
||||
} else {
|
||||
const vidsrcresponse = await getvmovie(id);
|
||||
|
||||
@@ -0,0 +1,264 @@
|
||||
export async function getvmovie(tmdb_id, s, e) {
|
||||
const PROVIDER = 'ZVidsrcPro';
|
||||
const DOMAIN = "https://embed.su";
|
||||
const headers = {
|
||||
'user-agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
|
||||
'Referer': "https://embed.su/",
|
||||
'Origin': "https://embed.su",
|
||||
};
|
||||
|
||||
try {
|
||||
let urlSearch = '';
|
||||
|
||||
if(s && e){
|
||||
urlSearch = `${DOMAIN}/embed/tv/${tmdb_id}/${s}/${e}`;
|
||||
} else {
|
||||
urlSearch = `${DOMAIN}/embed/movie/${tmdb_id}`;
|
||||
}
|
||||
|
||||
log({ urlSearch: urlSearch }, PROVIDER, 'URLSEARCH');
|
||||
|
||||
const htmlSearch = await fetch(urlSearch, {
|
||||
method: 'GET',
|
||||
headers: headers,
|
||||
});
|
||||
const textSearch = await htmlSearch.text();
|
||||
|
||||
const hashEncodeMatch = textSearch.match(/JSON\.parse\(atob\(\`([^\`]+)/i);
|
||||
const hashEncode = hashEncodeMatch ? hashEncodeMatch[1] : "";
|
||||
|
||||
if (!hashEncode) {
|
||||
return;
|
||||
}
|
||||
|
||||
const hashDecode = JSON.parse(await string_atob(hashEncode));
|
||||
|
||||
const mEncrypt = hashDecode.hash;
|
||||
if (!mEncrypt) {
|
||||
return;
|
||||
}
|
||||
|
||||
const firstDecode = (await string_atob(mEncrypt)).split(".").map(item => item.split("").reverse().join(""));
|
||||
const secondDecode = JSON.parse(await string_atob(firstDecode.join("").split("").reverse().join("")));
|
||||
|
||||
if (!secondDecode || secondDecode.length == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (let i = 0; i < secondDecode.length; i++) {
|
||||
const item = secondDecode[i];
|
||||
if (item.name.toLowerCase() != "viper") {
|
||||
continue;
|
||||
}
|
||||
|
||||
const urlDirect = `${DOMAIN}/api/e/${item.hash}`;
|
||||
const dataDirect = await request_get(urlDirect, {
|
||||
'user-agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
|
||||
}, false);
|
||||
|
||||
if (!dataDirect.source) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const tracks = [];
|
||||
try {
|
||||
for (let j = 0; j < dataDirect.subtitles.length; j++) {
|
||||
const itemTrack = dataDirect.subtitles[j];
|
||||
const labelMatch = itemTrack.label.match(/^([A-z]+)/i);
|
||||
const label = labelMatch ? labelMatch[1] : "";
|
||||
if (!label) {
|
||||
continue;
|
||||
}
|
||||
tracks.push({
|
||||
url: itemTrack.file,
|
||||
lang: label
|
||||
});
|
||||
}
|
||||
} catch (etrack) { }
|
||||
|
||||
const requestDirectSize = await fetch(dataDirect.source, {
|
||||
headers: {
|
||||
"Referer": "https://embed.su/",
|
||||
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
|
||||
"Accept": "*/*"
|
||||
},
|
||||
method: "GET",
|
||||
});
|
||||
const parseRequest = await requestDirectSize.text();
|
||||
|
||||
const patternSize = [];
|
||||
const parseDirectSize = parseRequest.split('\n');
|
||||
|
||||
for (let k = 0; k < parseDirectSize.length; k++) {
|
||||
const item = parseDirectSize[k];
|
||||
if (item.indexOf('/proxy/') == -1) {
|
||||
continue;
|
||||
}
|
||||
patternSize.push(item);
|
||||
}
|
||||
|
||||
const directQuality = [];
|
||||
for (let l = 0; l < patternSize.length; l++) {
|
||||
const patternItem = patternSize[l];
|
||||
const sizeQualityMatch = patternItem.match(/\/([0-9]+)\//i);
|
||||
const sizeQuality = sizeQualityMatch ? Number(sizeQualityMatch[1]) : 1080;
|
||||
let dURL = `${DOMAIN}${patternItem}`;
|
||||
dURL = dURL.replace("embed.su/api/proxy/viper/", "");
|
||||
dURL = dURL.replace(".png", ".m3u8");
|
||||
directQuality.push({
|
||||
url: dURL,
|
||||
quality: sizeQuality.toString(),
|
||||
isM3U8: true
|
||||
});
|
||||
}
|
||||
|
||||
if (!directQuality.length) {
|
||||
continue;
|
||||
}
|
||||
|
||||
directQuality.sort((a, b) => b.quality - a.quality);
|
||||
|
||||
const results = {
|
||||
headers: {
|
||||
"Referer": "https://embed.su/",
|
||||
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
|
||||
"Accept": "*/*"
|
||||
},
|
||||
sources: directQuality,
|
||||
subtitles: tracks
|
||||
};
|
||||
|
||||
return results;
|
||||
}
|
||||
} catch (e) {
|
||||
log({ e: e }, PROVIDER, "ERROR");
|
||||
}
|
||||
}
|
||||
|
||||
function log(data, prefix, subfix) {
|
||||
console.log(data, "----- ".concat(prefix, " ").concat(subfix, " ----"));
|
||||
};
|
||||
|
||||
async function string_atob(input) {
|
||||
var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
||||
var str = input.replace(/=+$/, '');
|
||||
var output = '';
|
||||
if (str.length % 4 == 1) {
|
||||
throw new Error("'atob' failed: The string to be decoded is not correctly encoded.");
|
||||
}
|
||||
for (var bc = 0, bs = 0, buffer = void 0, i = 0; buffer = str.charAt(i++); ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,
|
||||
bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0) {
|
||||
buffer = chars.indexOf(buffer);
|
||||
}
|
||||
return output;
|
||||
}
|
||||
|
||||
async function request_get(url, headers = {}) {
|
||||
try {
|
||||
headers = headers || {};
|
||||
if (!headers['user-agent']) {
|
||||
headers['user-agent'] = getRandomUserAgent();
|
||||
}
|
||||
|
||||
const response = await fetch(url, {
|
||||
method: 'GET',
|
||||
headers: headers,
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error(`HTTP error! status: ${response.status}`);
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
return data;
|
||||
} catch (error) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
function getRandomUserAgent() {
|
||||
var userAgent = [
|
||||
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.101 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.101 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.101 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36",
|
||||
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.113 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.89 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.89 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.89 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.89 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.89 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.89 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36",
|
||||
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36"
|
||||
];
|
||||
var random = _.random(0, userAgent.length - 1);
|
||||
return userAgent[random];
|
||||
}
|
||||
@@ -1,90 +0,0 @@
|
||||
const HOST = 'vidsrc.cc';
|
||||
|
||||
async function episode(data_id_1, data_id_2, type, s, e) {
|
||||
if (type == 'movie') {
|
||||
const url = `https://${HOST}/api/episodes/${data_id_2}/servers?id=${data_id_1}&type=${type}`;
|
||||
let resp = await (await fetch(url)).json();
|
||||
let id1 = resp['data'][0]['hash'];
|
||||
let id2 = resp['data'][1]['hash'];
|
||||
const url1 = `https://${HOST}/api/source/${id1}`;
|
||||
console.log(url1);
|
||||
const resp1 = await (await fetch(url1)).json();
|
||||
const url2 = `https://${HOST}/api/source/${id2}`;
|
||||
console.log(url2);
|
||||
const resp2 = await (await fetch(url2)).json();
|
||||
const result_1 = {
|
||||
source1: resp1
|
||||
};
|
||||
const result_2 = {
|
||||
source2: resp2
|
||||
};
|
||||
const combinedResponse = { ...result_1, ...result_2 };
|
||||
console.log(`combinedResponse : ${JSON.stringify(combinedResponse, null, 2)}`);
|
||||
return combinedResponse;
|
||||
};
|
||||
|
||||
if (type == 'tv') {
|
||||
const url = `https://${HOST}/api/episodes/${data_id_2}/servers?id=${data_id_1}&type=tv&season=${s}&episode=${e}`;
|
||||
console.log(url);
|
||||
let resp = await (await fetch(url)).json();
|
||||
let id1 = resp['data'][0]['hash'];
|
||||
let id2 = resp['data'][1]['hash'];
|
||||
const url1 = `https://${HOST}/api/source/${id1}`;
|
||||
console.log(url1);
|
||||
const resp1 = await (await fetch(url1)).json();
|
||||
const url2 = `https://${HOST}/api/source/${id2}`;
|
||||
console.log(url2);
|
||||
const resp2 = await (await fetch(url2)).json();
|
||||
const result_1 = {
|
||||
source1: resp1
|
||||
};
|
||||
const result_2 = {
|
||||
source2: resp2
|
||||
};
|
||||
const combinedResponse = { ...result_1, ...result_2 };
|
||||
console.log(`combinedResponse : ${JSON.stringify(combinedResponse, null, 2)}`);
|
||||
return combinedResponse;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export async function getvmovie(id) {
|
||||
console.log(`https://${HOST}/v2/embed/movie/${id}`);
|
||||
let resp = await (await fetch(`https://${HOST}/v2/embed/movie/${id}`)).text();
|
||||
|
||||
let regex = /data-id="(.*?)"/g;
|
||||
let matches = [];
|
||||
let match;
|
||||
|
||||
while ((match = regex.exec(resp)) !== null) {
|
||||
matches.push(match[1]);
|
||||
}
|
||||
|
||||
if (matches.length >= 2) {
|
||||
let data_id_1 = matches[0];
|
||||
let data_id_2 = matches[1];
|
||||
return await episode(data_id_1, data_id_2, 'movie');
|
||||
} else {
|
||||
throw new Error("Failed to find two data-id values in response.");
|
||||
}
|
||||
}
|
||||
|
||||
export async function getvserie(id, s, e) {
|
||||
console.log(`https://${HOST}/v2/embed/tv/${id}/${s}/${e}`);
|
||||
let resp = await (await fetch(`https://${HOST}/v2/embed/tv/${id}/${s}/${e}`)).text();
|
||||
let regex = /data-id="(.*?)"/g;
|
||||
let matches = [];
|
||||
let match;
|
||||
|
||||
while ((match = regex.exec(resp)) !== null) {
|
||||
matches.push(match[1]);
|
||||
}
|
||||
|
||||
if (matches.length >= 2) {
|
||||
let data_id_1 = matches[0];
|
||||
let data_id_2 = matches[1];
|
||||
return await episode(data_id_1, data_id_2, 'tv', s, e);
|
||||
} else {
|
||||
throw new Error("Failed to find two data-id values in response.");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user