badan-ser
Version:
external functions for zoe
144 lines (102 loc) • 2.72 kB
Markdown
# 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)