find-deleted-videos/lib.js
2022-09-06 11:46:11 -04:00

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;
}