Metadata-Version: 2.4
Name: rahad-all-downloader
Version: 1.0.1
Summary: All-in-one video downloader for TikTok, Facebook, Instagram, YouTube, X/Twitter, CapCut, Kwai, Snapchat, Threads, Likee, Pinterest, Dailymotion, Vimeo
Author: Mohammad Rahad
License: MIT
Project-URL: Homepage, https://github.com/MR-RAHAD/rahad-all-downloader-v2
Project-URL: Repository, https://github.com/MR-RAHAD/rahad-all-downloader-v2
Keywords: downloader,tiktok,facebook,instagram,youtube,video
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: requests>=2.28.0
Requires-Dist: beautifulsoup4>=4.11.0

<div align="center">

# ⚡ RAHAD ALL DOWNLOADER (Python)

### *One Package. Every Platform. Zero Hassle.*

**The fastest all-in-one media downloader for Python**

Paste any social media link and get direct, watermark-free download URLs in milliseconds. No login. No cookies. No API keys.

<br>

[![PyPI version](https://img.shields.io/pypi/v/rahad-all-downloader?style=for-the-badge&color=3775a9&logo=pypi&logoColor=white)](https://pypi.org/project/rahad-all-downloader/)
[![PyPI downloads](https://img.shields.io/pypi/dm/rahad-all-downloader?style=for-the-badge&color=blue)](https://pypi.org/project/rahad-all-downloader/)
[![license](https://img.shields.io/pypi/l/rahad-all-downloader?style=for-the-badge&color=green)](https://github.com/MR-RAHAD/rahad-all-downloader-python/blob/main/LICENSE)
[![python](https://img.shields.io/badge/python-%3E%3D3.8-3776AB?style=for-the-badge&logo=python&logoColor=white)](https://python.org)

<br>

[![GitHub](https://img.shields.io/github/stars/MR-RAHAD/rahad-all-downloader-python?style=social)](https://github.com/MR-RAHAD/rahad-all-downloader-python)

</div>

---

## ✨ Why This Package?

<table>
<tr>
<td align="center">🚀<br><b>Blazing Fast</b><br><sub>Optimized extraction with parallel backend fallbacks</sub></td>
<td align="center">🔓<br><b>No Watermark</b><br><sub>Clean HD videos, straight from the source</sub></td>
<td align="center">🍪<br><b>No Cookies Needed</b><br><sub>Works out of the box, zero setup</sub></td>
</tr>
<tr>
<td align="center">🌐<br><b>13 Platforms</b><br><sub>TikTok, FB, IG, YT, X & more in one call</sub></td>
<td align="center">🔄<br><b>Auto Fallback</b><br><sub>Multiple sources per platform — if one API is down, the next takes over silently</sub></td>
<td align="center">🐍<br><b>Pythonic API</b><br><sub>Simple functions, type hints, thread-safe batch downloads</sub></td>
</tr>
</table>

---

## 📦 Installation

```bash
pip install rahad-all-downloader
```

> **Requirements:** Python ≥ 3.8

---

## 🌐 Supported Platforms

| Platform | HD Video | No Watermark | Audio / MP3 | Extra |
|:---------|:--------:|:------------:|:-----------:|-------|
| 🎵 **TikTok** | ✅ | ✅ | ✅ | 3-source fallback: tikwm + downloader API + direct scrape |
| 📘 **Facebook** | ✅ | ✅ | – | HD & SD quality options |
| 📸 **Instagram** | ✅ | ✅ | – | Reels, Posts — no login needed |
| 🧵 **Threads** | ✅ | ✅ | – | High-quality video & images |
| ▶️ **YouTube** | ✅ | ✅ | – | Auto instance fallback via Invidious |
| ✖️ **X (Twitter)** | ✅ | ✅ | – | Multi-source video extraction |
| 👻 **Snapchat** | ✅ | ✅ | – | Spotlight & Stories |
| 📌 **Pinterest** | ✅ | ✅ | – | Direct MP4 extraction |
| 🎭 **Likee** | ✅ | ✅ | – | Direct MP4 extraction |
| ✂️ **CapCut** | ✅ | ✅ | – | Direct MP4 extraction |
| 🔥 **Kwai** | ✅ | ✅ | – | Direct video extraction |
| 🎞️ **Dailymotion** | ✅ | ✅ | – | Direct video extraction |
| 🎥 **Vimeo** | ✅ | ✅ | – | Direct video extraction |

---

## 🚀 Quick Start

```python
from rahad_all_downloader import alldl

# Auto-detect platform from URL
result = alldl("https://www.tiktok.com/@user/video/1234567890")
print(result["videoUrl"])  # Direct download URL
print(result["data"]["title"])
```

### Platform-specific

```python
from rahad_all_downloader import alldl

result = alldl.tiktok("https://www.tiktok.com/@user/video/123")
result = alldl.facebook("https://www.facebook.com/reel/123")
result = alldl.instagram("https://www.instagram.com/reel/ABC123/")
result = alldl.youtube("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
result = alldl.twitter("https://x.com/user/status/123")  # or alldl.x(...)
```

### Download to file

```python
from rahad_all_downloader import download

path = download(
    "https://www.tiktok.com/@user/video/123",
    "video.mp4",
    on_progress=lambda p: print(f"{p*100:.1f}%"),
)
print("Saved to:", path)
```

### Batch downloads (never raises)

```python
from rahad_all_downloader import batch

results = batch(
    ["https://www.tiktok.com/@a/video/1",
     "https://www.instagram.com/reel/ABC/"],
    concurrency=3,
    on_item=lambda item: print(item["url"], "OK" if item["success"] else "FAIL"),
)

for r in results:
    if r["success"]:
        print(r["url"], "->", r["result"]["videoUrl"])
    else:
        print(r["url"], "ERROR:", r["error"])
```

### Metadata only

```python
from rahad_all_downloader import info

meta = info("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
print(meta["data"]["title"])
print(meta["data"]["thumbnail"])
```

---

## 📖 API Reference

### `alldl(url, retries=2)`

Fetch video info + direct download URL. Auto-detects the platform.

| Param | Type | Default | Description |
|:------|:-----|:--------|:------------|
| `url` | `str` | — | Video URL from any supported platform |
| `retries` | `int` | `2` | Retry attempts on transient failure |

**Returns:** `dict` with `success`, `source`, `platform`, `videoUrl`, `data`

```python
{
    "success": True,
    "source": "TikTok",
    "platform": "tiktok",
    "videoUrl": "https://...",
    "data": {
        "title": "...",
        "thumbnail": "https://...",
        "owner": {"username": "...", "nickname": "...", "avatar": "..."},
        "stats": {"likes": 123, "comments": 45, "plays": 6789, "shares": 10},
        "download": {"no_watermark": "https://...", "watermark": "...", "music": "..."},
    },
}
```

### `download(url, dest=None, on_progress=None, retries=2)`

Download the video to a file. Returns the absolute file path.

### `batch(urls, concurrency=3, on_item=None)`

Process multiple URLs in parallel. Never raises — each item reports `success`/`error`.

### `info(url)`

Alias of `alldl()` — metadata without downloading the file.

---

## 🔎 Looking for a Video Downloader?

**rahad-all-downloader** is an all-in-one media downloader for Python. If you searched for any of these, you're in the right place:

### TikTok Video Downloader (Python)
Download TikTok videos without watermark in HD, plus TikTok MP3 audio extraction — no login required.

```python
from rahad_all_downloader import alldl
r = alldl("https://www.tiktok.com/@user/video/123")
```

### Instagram Video Downloader (Python)
Download Instagram Reels and posts in high quality without logging in.

### Facebook Video Downloader (Python)
Download Facebook videos in HD & SD quality with a single function call.

### YouTube Video Downloader (Python)
Download YouTube videos and Shorts with automatic fallback for maximum reliability.

### Twitter / X Video Downloader (Python)
Download X (Twitter) videos in multiple qualities.

---

## 🛡️ Reliability

Every platform uses **multiple independent sources** with automatic fallback:

| Platform | Sources |
|:---------|:--------|
| TikTok | tikwm API → downloader API → direct page scrape |
| Instagram | snapinsta API → embed page |
| YouTube | Invidious (multi-instance) |
| X / Twitter | vxtwitter API → savetwitter |
| Others | Primary API + direct extraction |

If one source goes down, the next takes over silently — your code never sees an error.

Plus a **remote kill-switch** (fail-open): the package checks a public config for owner-disabled platforms, and keeps working even if the config is unreachable.

---

## 🤝 Related

- 📦 **Node.js version:** [`rahad-all-downloader-v2`](https://www.npmjs.com/package/rahad-all-downloader-v2) on npm
- 🌐 **Live demo:** [mr-rahad.github.io/rahad-all-downloader-v2](https://mr-rahad.github.io/rahad-all-downloader-v2/)

---

## 📄 License

MIT © [Mohammad Rahad](https://github.com/MR-RAHAD)

---

<div align="center">

**Buy Me a Coffee** ☕

*If this package saved you hours of work, a small donation keeps it alive and updated* ❤️

| Method | Address |
|:-------|:--------|
| 🟡 USDT (BEP20) | `0x2efda5b5834ad178900f2a67cbb2c567692f4d00` |
| 🔴 USDT (TRC20) | `TN7xQw7XosR2CVAa1DWWmiSLknDrSUQ1c2` |
| 🟡 Binance UID | `979450444` |

> ⚠️ Send **USDT only**, on the **matching network**. Funds sent on the wrong network are lost forever.

</div>
