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 express from "express";
|
||||||
import { getvmovie, getvserie } from "./src/vidsrcto.js";
|
import { getvmovie } from "./src/vidsrcpro.js";
|
||||||
|
|
||||||
|
|
||||||
const port = 3000;
|
const port = 3000;
|
||||||
|
|
||||||
@@ -8,7 +7,7 @@ const app = express()
|
|||||||
|
|
||||||
app.get('/', (req, res) => {
|
app.get('/', (req, res) => {
|
||||||
res.status(200).json({
|
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: {
|
routes: {
|
||||||
movie: "/vidsrc/:movieTMDBid",
|
movie: "/vidsrc/:movieTMDBid",
|
||||||
show: "/vidsrc/:showTMDBid?s=seasonNumber&e=episodeNumber"
|
show: "/vidsrc/:showTMDBid?s=seasonNumber&e=episodeNumber"
|
||||||
@@ -24,7 +23,7 @@ app.get('/vidsrc/:tmdbId', async (req, res) => {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
if (season && episode) {
|
if (season && episode) {
|
||||||
const vidsrcresponse = await getvserie(id, season, episode);
|
const vidsrcresponse = await getvmovie(id, season, episode);
|
||||||
res.status(200).json(vidsrcresponse);
|
res.status(200).json(vidsrcresponse);
|
||||||
} else {
|
} else {
|
||||||
const vidsrcresponse = await getvmovie(id);
|
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