64 lines
2.1 KiB
JavaScript
64 lines
2.1 KiB
JavaScript
const ytdl = require("ytdl-core");
|
|
|
|
module.exports = {
|
|
check: check,
|
|
parseFilename: parseFilename
|
|
}
|
|
|
|
async function check(id) {
|
|
try {
|
|
let info = (await ytdl.getBasicInfo(id)).player_response.videoDetails;
|
|
if (info.isPrivate == false) return true;
|
|
else return false;
|
|
} catch(err) {
|
|
if (
|
|
err.message !== "Video unavailable" &&
|
|
err.message !== "This is a private video. Please sign in to verify that you may see it." &&
|
|
!err.message.includes("Status code")
|
|
) console.log(err.message);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function parseFilename(name, args) {
|
|
if (!args) args = {};
|
|
let ext = name.split(`.`)[name.split(`.`).length - 1];
|
|
|
|
if (
|
|
ext == "json" ||
|
|
ext == "png" ||
|
|
ext == "jpg" ||
|
|
ext == "webp" ||
|
|
ext == "txt" ||
|
|
ext == "part" ||
|
|
ext == "ytdl" ||
|
|
ext == "vtt" ||
|
|
ext == "srt"
|
|
) return null; // skipping non-video/audio
|
|
|
|
if (name.split(` [`)?.[name.split(` [`).length - 1]?.split(`]`)?.[0].length == 11 && args?.["force-type"] !== "youtube-dl") {
|
|
// ytdlp detected
|
|
|
|
if (
|
|
name.split(` [`)?.[name.split(` [`).length - 1]?.split(`]`)?.[0].includes(` `) ||
|
|
name.split(` [`)?.[name.split(` [`).length - 1]?.split(`]`)?.[0].includes(`/`) ||
|
|
name.split(` [`)?.[name.split(` [`).length - 1]?.split(`]`)?.[0].includes(`&`) ||
|
|
name.split(` [`)?.[name.split(` [`).length - 1]?.split(`]`)?.[0].includes(`!`)
|
|
) return null; // detect false positives for yt-dlp ID.
|
|
|
|
return {
|
|
type: "yt-dlp",
|
|
name: name.split(` [`)?.slice(0, (name.split(` [`).length - 1)).join(` [`),
|
|
id: name.split(` [`)?.[name.split(` [`).length - 1]?.split(`]`)?.[0],
|
|
extension: ext
|
|
};
|
|
} else if (name.split(`-`)?.[name.split(`-`).length - 1]?.split(`.`)?.[0].length == 11 && args?.["force-type"] !== "yt-dlp") {
|
|
// youtube-dl detected
|
|
return {
|
|
type: "youtube-dl",
|
|
name: name.split(`-`)?.slice(0, (name.split(`-`).length - 1)).join(`-`),
|
|
id: name.split(`-`)?.[name.split(`-`).length - 1]?.split(`.`)?.[0],
|
|
extension: ext
|
|
};
|
|
} else return null;
|
|
} |