# 📥 priyansh-all-dl

A lightweight and easy-to-use Node.js package that allows you to **download videos from popular social media platforms** like **Facebook**, **Instagram**, **Twitter**, **Threads**, **TikTok**, and now **YouTube (MP3 & MP4)** with just a single function call.

> Built with ❤️ by [Priyansh Rajput](https://github.com/priyanshu192)

---

## 🌐 Supported Platforms

- 📘 Facebook  
- 📸 Instagram  
- 🐦 Twitter  
- 🧵 Threads  
- 🎵 TikTok  
- ▶️ YouTube (MP3 & MP4)  

---

## 📖 Table of Contents

- [Installation](#installation)
- [Usage](#usage)
- [Features](#features)
- [Configuration](#configuration)
- [Examples](#examples)
- [Troubleshooting](#troubleshooting)
- [Contributors](#contributors)
- [License](#license)

---

## 📦 Installation

Using **npm**:

```bash
npm install priyansh-all-dl
```

Using **yarn**:

```bash
yarn add priyansh-all-dl
```

---

## 🛠 Usage

### 📥 Downloading Videos

```js
const { downloadVideo } = require('priyansh-all-dl');

async function download() {
  try {
    const result = await downloadVideo('https://www.facebook.com/share/r/1AbiKZBHWp/');
    console.log(result);
  } catch (error) {
    console.error('Error:', error.message);
  }
}

download();
```

### 🎵 Download YouTube MP3 (Audio) or MP4 (Video)

```js
const { downloadVideo } = require('priyansh-all-dl');

async function download() {
  try {
    // Download YouTube video in MP3 (audio) format
    const audioResult = await downloadVideo('https://www.youtube.com/watch?v=kJQP7kiw5Fk', { format: 'audio' });
    console.log(audioResult);

    // Download YouTube video in MP4 (default) format
    const videoResult = await downloadVideo('https://www.youtube.com/watch?v=kJQP7kiw5Fk');
    console.log(videoResult);

  } catch (error) {
    console.error('Error:', error.message);
  }
}

download();
```

> 🔹 **By default, videos are downloaded in MP4 format.** To download MP3, pass `{ format: 'audio' }` as an option.

---

## ✨ Features

- ✅ Simple API to download videos from multiple platforms
- 🎵 Supports **YouTube MP3** & **MP4**
- ⚡ Fast and asynchronous
- 🛡️ Automatically handles redirects and private URLs
- 🔁 Constantly updated for platform changes

---

## ⚙️ Configuration

No additional configuration is required. Just install and start using the `downloadVideo` function.

---

## 💡 Examples

```js
// Example with Instagram
const result = await downloadVideo('https://www.instagram.com/reel/abc123xyz');

// Example with Twitter
const result = await downloadVideo('https://twitter.com/user/status/1234567890');

// Example with YouTube MP3
const audioResult = await downloadVideo('https://www.youtube.com/watch?v=kJQP7kiw5Fk', { format: 'audio' });

// Example with YouTube MP4
const videoResult = await downloadVideo('https://www.youtube.com/watch?v=kJQP7kiw5Fk');
```

You can use any valid video URL from supported platforms.

---

## 🧯 Troubleshooting

| Issue | Solution |
|-------|----------|
| `Invalid URL` | Make sure the link is a direct video post URL |
| `Download failed` | Check if the video is public and not removed |
| `Unsupported platform` | Ensure the URL is from a supported platform |
| `Audio format not supported` | Ensure you are using `{ format: 'audio' }` for MP3 downloads |

---

## 👤 Author

**Priyansh Rajput**  
GitHub: [@priyanshu192](https://github.com/priyanshu192)  
NPM: [`priyansh-all-dl`](https://www.npmjs.com/package/priyansh-all-dl)

---

## 🤝 Contributors

Contributions, suggestions, and PRs are welcome!  
To contribute, fork the repo and submit a pull request.

---

## 📄 License

This project is licensed under the **MIT License**. See the [LICENSE](LICENSE) file for more info.

---

> 🚀 Happy downloading with `priyansh-all-dl`!
