https://github.com/ahmuq/abot-scraper
abot scraper for tool downloader, searching and more
https://github.com/ahmuq/abot-scraper
instagram scraper whatsapp whatsapp-bot youtube-api
Last synced: 3 months ago
JSON representation
abot scraper for tool downloader, searching and more
- Host: GitHub
- URL: https://github.com/ahmuq/abot-scraper
- Owner: ahmuq
- License: mit
- Created: 2023-10-15T05:27:13.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-07-03T20:39:23.000Z (3 months ago)
- Last Synced: 2025-07-13T03:45:01.818Z (3 months ago)
- Topics: instagram, scraper, whatsapp, whatsapp-bot, youtube-api
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/abot-scraper
- Size: 159 KB
- Stars: 16
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
- License: license
Awesome Lists containing this project
README
# abot-scraper
A comprehensive scraper package for downloading content from social media platforms and performing AI-powered image processing tasks. Supports Facebook, TikTok, Instagram, YouTube, SFile downloads, plus advanced image enhancement and background removal tools.
## Features
### 📥 **Downloader**
- **Facebook**: Download videos from Facebook posts
- **TikTok**: Download videos from TikTok (watermark-free)
- **Instagram**: Download posts, stories, and reels
- **YouTube**: Download videos in multiple formats and quality options
- **YouTube MP3**: Download YouTube videos as MP3 audio files
- **SFile**: Download files from SFile sharing platform### 🔍 **Search**
- **YouTube Search**: Find videos by keywords
- **Instagram Stories**: Get user's Instagram stories
- **Wallpaper Search**: Find high-quality wallpapers
- **Wikimedia Search**: Search for images and media from Wikimedia
- **SFile Search**: Search for files on SFile platform### 🎨 **AI Tools**
- **Background Removal**: AI-powered background removal from images
- **Image Enhancement**: Enhance image quality using Remini AI (V1 & V2)
- **Image Upload**: Upload images and get shareable URLs### 🛠️ **Technical Features**
- **TypeScript Support**: Full type definitions included
- **Dual Package**: Works with both CommonJS and ES Modules
- **Error Handling**: Comprehensive error handling and validation
- **Modern Architecture**: Built with latest Node.js standards## Installation
### Stable Version
Install the latest stable version from npm:
```bash
npm install abot-scraper
# or
yarn add abot-scraper
# or
bun add abot-scraper
```### Development Version
Install the latest development version directly from GitHub (not recommended for production):
```bash
npm install github:ahlulmukh/abot-scraper
```## Usage
### Quick Start Example
```javascript
const { Downloader, Search, Tools } = require('abot-scraper');
const fs = require('fs');async function example() {
// Initialize classes
const downloader = new Downloader();
const search = new Search();
const tools = new Tools();try {
// Download a TikTok video
const tiktokResult = await downloader.tiktokDownloader(
'https://vt.tiktok.com/ZSB2LtXQF/'
);
console.log('TikTok download:', tiktokResult);// Search YouTube videos
const ytResults = await search.ytSearch('phonk music');
console.log('YouTube search results:', ytResults);// Remove background from image
const imageBuffer = fs.readFileSync('path/to/image.jpg');
const bgRemoved = await tools.removeBackground(imageBuffer);
console.log('Background removed:', bgRemoved);
} catch (error) {
console.error('Error:', error.message);
}
}example();
```### CommonJS (Node.js with require)
```javascript
// Import classes directly
const { Downloader, Search, Tools } = require('abot-scraper');const downloader = new Downloader();
const search = new Search();
const tools = new Tools();// Download a Facebook video
const result = await downloader.facebookDownloader(
'https://facebook.com/video/123'
);
const searchResult = await search.sfileSearch('query', 1);
```### ES Modules (modern JavaScript/TypeScript)
```javascript
// Import classes directly
import { Downloader, Search, Tools } from 'abot-scraper';const downloader = new Downloader();
const search = new Search();
const tools = new Tools();// Download a Facebook video
const result = await downloader.facebookDownloader(
'https://facebook.com/video/123'
);
const searchResult = await search.sfileSearch('query', 1);
```### TypeScript
TypeScript declarations are included, providing full type safety and IntelliSense support:
```typescript
import {
Downloader,
Search,
Tools,
type ApiResponse,
type FacebookResult,
} from 'abot-scraper';// TypeScript will provide full type checking and autocomplete
const downloader = new Downloader();
const result: ApiResponse = await downloader.facebookDownloader(
'https://facebook.com/video/123'
);// Types are automatically inferred
const fbResult = await downloader.facebookDownloader('https://example.com'); // Return type is known
```## API Reference
### Downloader Class
The `Downloader` class provides methods to download content from various platforms.
#### Available Methods
- `facebookDownloader(url)` - Download Facebook videos
- `tiktokDownloader(url)` - Download TikTok videos
- `instagramDownloader(url)` - Download Instagram posts/stories/reels
- `youtubeDownloader(url)` - Download YouTube videos with multiple formats
- `ytMp3Downloader(url)` - Download YouTube videos as MP3 audio
- `sfileDownloader(url)` - Download files from SFile#### Example Usage
```javascript
// Import the Downloader class
const { Downloader } = require('abot-scraper');
const downloader = new Downloader();// Download YouTube video
const result = await downloader.youtubeDownloader(
'https://youtu.be/j_MlBCb9-m8'
);
console.log(result);// Download TikTok video
const tiktokResult = await downloader.tiktokDownloader(
'https://vt.tiktok.com/ZSB2LtXQF/'
);
console.log(tiktokResult);// Download Facebook video
const fbResult = await downloader.facebookDownloader(
'https://facebook.com/video/123'
);
console.log(fbResult);// Download Instagram content
const igResult = await downloader.instagramDownloader(
'https://www.instagram.com/p/CK0tLXyAzEI/'
);
console.log(igResult);// Download YouTube as MP3
const mp3Result = await downloader.ytMp3Downloader(
'https://youtu.be/H_z0t5NQs7U'
);
console.log(mp3Result);
```### Search Class
The `Search` class provides methods to search for content across various platforms.
#### Available Methods
- `ytSearch(query)` - Search YouTube videos by query
- `igStory(username)` - Get Instagram stories for a user
- `wallpaper(query, page?)` - Search for wallpapers
- `wikimedia(query)` - Search Wikimedia content
- `sfileSearch(query, page?)` - Search SFile for files#### Example Usage
```javascript
// Import the Search class
const { Search } = require('abot-scraper');
const search = new Search();// Search YouTube videos
const ytResults = await search.ytSearch('music video');
console.log(ytResults);// Get Instagram stories
const igStories = await search.igStory('cristiano');
console.log(igStories);// Search wallpapers
const wallpapers = await search.wallpaper('abstract art', 1);
console.log(wallpapers);// Search Wikimedia
const wikimediaResults = await search.wikimedia('nature photos');
console.log(wikimediaResults);// Search SFile
const sfileResults = await search.sfileSearch('Capcut Pro');
console.log(sfileResults);
```### Tools Class
The `Tools` class provides utility methods for image processing and manipulation.
#### Available Methods
- `removeBackground(buffer)` - Remove background from an image using AI
- `reminiV1(buffer)` - Enhance image quality using Remini V1 API
- `reminiV2(buffer)` - Enhance image quality using Remini V2 API
- `uploadImage(buffer)` - Upload image and get a shareable URL#### Example Usage
```javascript
// Import the Tools class
const { Tools } = require('abot-scraper');
const fs = require('fs');
const tools = new Tools();// Remove background from image
const imageBuffer = fs.readFileSync('path/to/image.jpg');
const bgRemoved = await tools.removeBackground(imageBuffer);
console.log(bgRemoved);// Enhance image quality
const imageBuffer = fs.readFileSync('path/to/image.jpg');
const enhanced = await tools.reminiV1(imageBuffer);
console.log(enhanced);// Upload image
const uploaded = await tools.uploadImage(imageBuffer);
console.log(uploaded);
```### Error Handling
All methods return promises and should be wrapped in try-catch blocks or use `.catch()` for proper error handling:
```javascript
try {
const downloader = new Downloader();
const result = await downloader.youtubeDownloader(
'https://youtu.be/invalid-url'
);
console.log(result);
} catch (error) {
console.error('Download failed:', error.message);
}// Or using .catch()
const downloader = new Downloader();
downloader
.facebookDownloader('https://facebook.com/video/123')
.then(result => console.log(result))
.catch(error => console.error('Error:', error));
```### Response Format
All API methods return a standardized response format:
```typescript
interface ApiResponse {
creator: string; // Package creator information
status: number | boolean; // Success status (200 for success, false for error)
result?: T; // The actual data (varies by method)
msg?: string; // Error message if status indicates failure
}
```Example responses:
```javascript
// Successful TikTok download
{
creator: "@abotscraper – ahmuq",
status: 200,
result: {
title: "Video Title",
video: "https://download-url.com/video.mp4",
audio: "https://download-url.com/audio.mp3"
}
}// Error response
{
creator: "@abotscraper – ahmuq",
status: false,
msg: "Invalid URL provided"
}
```## Requirements
- **Node.js**: Version 16.0.0 or higher
- **Internet connection**: Required for scraping online content
- **Dependencies**: All required dependencies are automatically installed## Package Information
- **Package Type**: Dual (CommonJS + ES Modules)
- **Build System**: Modern TypeScript/JavaScript build pipeline
- **Source Format**: TypeScript with ES Modules
- **Distribution**: Both CommonJS (.cjs) and ESM (.mjs) builds included
- **TypeScript**: Full type declarations provided (.d.ts files)
- **Testing**: Comprehensive test suite with 100% coverage
- **Compatibility**: Works with Node.js, Bun, and other JavaScript runtimes## Contributing
We welcome contributions from the community! If you encounter a bug or have a feature request, please open an issue on our [GitHub repository](https://github.com/ahlulmukh/abot-scraper).
To contribute:
1. Fork the repository.
2. Create a new branch for your feature or bug fix.
3. Submit a pull request with a detailed description of your changes.## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.