import express from "express" import fetch from "node-fetch" import { exec } from "child_process" const app = express() const PORT = 7860 function isYouTube(url) { return /youtube\.com|youtu\.be/.test(url) } app.get("/api/info", async (req, res) => { const url = req.query.url if (!url) return res.json({ status:false, error:"URL required" }) // ✅ YOUTUBE → OEMBED if (isYouTube(url)) { try { const r = await fetch( `https://www.youtube.com/oembed?url=${url}&format=json` ) const d = await r.json() return res.json({ status: true, platform: "youtube", title: d.title, author: d.author_name, author_url: d.author_url, thumbnail: d.thumbnail_url }) } catch { return res.json({ status:false, error:"YT info failed" }) } } // ✅ SOSMED LAIN → yt-dlp exec(`yt-dlp -j --no-playlist "${url}"`, { maxBuffer: 1024 * 1024 * 10 }, (err, stdout) => { if (err) return res.json({ status:false, error:"Fetch failed" }) try { const d = JSON.parse(stdout) res.json({ status: true, platform: d.extractor_key, title: d.title, duration: d.duration, thumbnail: d.thumbnail, uploader: d.uploader, view_count: d.view_count }) } catch { res.json({ status:false, error:"Parse error" }) } } ) }) app.listen(PORT, () => console.log("HF INFO API ready"))