<?php require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/session.php"; global $isLoggedIn; if (!$isLoggedIn) header("Location: /-/login") and die(); if (isset($_GET['id'])) { header("Content-Type: application/json"); $data = json_decode(exec("yt-dlp -q -x --no-playlist --skip-download --dump-json \"https://www.youtube.com/watch?v=" . str_replace('"', '\'', $_GET['id']) . "\""), true); $qualities = array_values(array_filter(array_map(function ($i) { return [ "quality" => $i["height"], "id" => $i['format_id'] ]; }, $data["formats"]), function ($i) { return !is_null($i["quality"]); })); $hd = array_values(array_filter($qualities, function ($i) { return $i["quality"] >= 720; })); $selected = count($hd) > 0 ? $hd[0] : $qualities[count($qualities) - 1]; $stream = array_values(array_filter($data["formats"], function ($i) use ($selected) { return $i["height"] === $selected["quality"] && $i["acodec"] !== null && $i["acodec"] !== "none"; }))[0]; echo(json_encode([ "title" => $data["fulltitle"], "author" => $data["channel"], "count" => [ "channel" => $data["channel_follower_count"], "likes" => $data["like_count"], "views" => $data["view_count"] ], "duration" => $data["duration"], "stream" => $selected, "url" => $stream["url"], "duration_pretty" => $stream["duration_string"], "poster" => $data["thumbnail"], ], JSON_PRETTY_PRINT)); }