UNPKG

badan-ser

Version:

external functions for zoe

144 lines (102 loc) 2.72 kB
# Utils Toolkit A Node.js toolkit to: - Search YouTube without using the official API - Download YouTube videos (MP4) and audio (MP3) - Take advanced screenshots of web pages using Puppeteer - Load `.env` variables without using external dotenv packages --- ## 🚀 Features - 🔍 **YouTube Search** (No API key required) - 🎵 **YouTube to MP3** conversion - 🎥 **YouTube to MP4** download (multiple quality options) - 📸 **Advanced Web Screenshot** with Puppeteer: - Full page - Specific region - DOM element - 🔧 Lightweight `.env` loader --- ## 📦 Installation ```bash npm install badan-ser ``` --- ## 🛠️ Usage ### 1. Load Environment Variables ```js const { loadEnv } = require('badan-ser'); loadEnv(); // Loads .env from project root ``` ### 2. YouTube Search ```js const { yts } = require('badan-ser'); (async () => { const results = await yts("lofi music"); console.log(results); })(); ``` ### 3. Download YouTube as MP3 ```js const { ytdls } = require('badan-ser'); (async () => { const result = await ytdls.mp3('https://youtu.be/exampleID'); console.log(result); })(); ``` ### 4. Download YouTube as MP4 (480p, 720p, 1080p, etc.) ```js const { ytdls } = require('badan-ser'); (async () => { const result = await ytdls.mp4('https://youtu.be/exampleID', '720'); console.log(result); })(); ``` ### 5. Take Screenshot of a Web Page ```js const { ss } = require('badan-ser'); (async () => { await ss({ url: 'https://example.com', output: 'screenshot.png', type: 'element', selector: '#main' }); })(); ``` --- ## 📘 API Overview ### `loadEnv(filePath = '.env')` Loads `.env` variables into `process.env`. --- ### `yts(query)` Search YouTube and return metadata for top videos. --- ### `ytdls.mp3(url)` Convert and download YouTube video as MP3. --- ### `ytdls.mp4(url, quality)` Download YouTube video as MP4. Supported qualities: - `360`, `480`, `720`, `1080` - `"audio"` for MP3 --- ### `ss(options)` Take a screenshot of a URL. - `url` required - `output` filename - `type` `'full'`, `'region'`, `'element'`, `'viewport'` - `selector` DOM selector (if type = `element`) - `region` `{ x, y, width, height }` (if type = `region`) - `viewport` `{ width, height }` - `delay` ms to wait before capture --- ## 🧱 Dependencies - [`puppeteer`](https://www.npmjs.com/package/puppeteer) - [`axios`](https://www.npmjs.com/package/axios) - [`cheerio`](https://www.npmjs.com/package/cheerio) - [`form-data`](https://www.npmjs.com/package/form-data) - Built-in: `fs`, `path` --- ## 📄 License MIT License --- ## 👨‍💻 Author Made with ❤️ by [Badan Ser](https://github.com/Kingbadan321)