# XDownloader — Hướng dẫn sử dụng

Tải video creative từ **TikTok · Instagram Reels · Facebook Reels · YouTube Shorts** về máy, quản lý theo thư mục nền tảng. Luôn tải chất lượng tốt nhất (MP4, có tiếng).

> Made by **Bạch Tử Hoạ**

---

## 1. Cài đặt & mở app

1. Mở file cài đặt (`.dmg` trên macOS / `.exe` trên Windows) → kéo vào Applications (Mac) hoặc chạy installer (Windows).
2. Lần đầu mở:
   - **macOS:** nếu hiện "không xác minh được nhà phát triển" → bấm chuột phải vào app → **Mở** → **Mở**.
   - **Windows:** nếu hiện SmartScreen → **More info** → **Run anyway**.
3. Video tải về mặc định lưu ở: `~/Downloads/creatives/<nền tảng>/` (tự phân loại TikTok / Instagram / Facebook / YouTube).

---

## 2. Tải video (cơ bản)

### Bước 1 — Lấy link video
Phải là link **của 1 video cụ thể**, không phải trang chủ/trang cá nhân.

| Nền tảng | Cách lấy link |
|----------|---------------|
| **TikTok** | Bấm vào video để mở → copy link trên thanh địa chỉ (`.../@user/video/123...`). Hoặc bấm **Share → Copy link**. (App điện thoại: **Share → Copy link**) |
| **YouTube** | Copy link trên thanh địa chỉ (Shorts hoặc video thường), hoặc nút **Share**. |
| **Instagram** | Mở Reel/bài viết → nút **Share (máy bay) → Copy link**. |
| **Facebook** | Reel/Video → **Share → Copy link**. |

> ❌ Link kiểu `tiktok.com/vi-VN/` (trang chủ) hay `tiktok.com/@user` (trang cá nhân) **không tải được**.

### Bước 2 — Tải
- **Cách nhanh:** chỉ cần **Copy** link → app **tự nhận diện** và điền vào ô link → bấm **Tải xuống**.
- Hoặc dán thủ công vào ô link rồi bấm **Tải xuống**.

### Bước 3 — Theo dõi
- Video xuất hiện trong **Hàng đợi tải** với thanh tiến độ %.
- Lưu ý: có thể mất **~8 giây "im lặng"** lúc đầu (yt-dlp đang khởi động) trước khi % bắt đầu chạy — không phải treo.
- Tải nhiều link cùng lúc được (mặc định 2 luồng, đổi trong Cài đặt).
- Nếu lỗi → bấm nút **Thử lại (↺)** ngay trên dòng đó.

---

## 3. Cookie — để tải video cần đăng nhập (IG / FB / TikTok)

Video **public** thường tải được luôn. Nhưng nhiều video **TikTok / Instagram / Facebook** yêu cầu đăng nhập → cần nạp **cookie**. Cách ổn định nhất (đặc biệt TikTok trên macOS) là dùng file **cookies.txt**.

### Bước 1 — Cài extension lấy cookie
- **Chrome / Edge / Brave / Cốc Cốc:** cài **"Get cookies.txt LOCALLY"** (trên Chrome Web Store — bản mã nguồn mở, an toàn).
- **Firefox:** cài **"cookies.txt"** hoặc **"Get cookies.txt LOCALLY"**.

> ⚠️ Tránh extension cũ tên "Get cookies.txt" (không có chữ **LOCALLY**) — đã bị gỡ vì dính mã độc.

### Bước 2 — Đăng nhập
Đăng nhập **tất cả** các nền tảng bạn cần (TikTok, Instagram, Facebook, YouTube) trong **cùng 1 trình duyệt**.

### Bước 3 — Export cookie
1. Bấm icon extension.
2. Chọn **Export All** (xuất tất cả) — KHÔNG chọn "current site" nếu muốn 1 file dùng cho mọi nền tảng.
3. Lưu file `cookies.txt`.

> 1 file "Export All" chứa cookie của mọi site bạn đang đăng nhập → dùng được cho cả TikTok + IG + FB + YouTube. yt-dlp tự lấy đúng cookie theo từng nền tảng.

### Bước 4 — Nạp vào app
- Mở **Cài đặt (⚙)** → mục **Nguồn cookie** → chọn **File cookies.txt** → bấm **Chọn file** → trỏ tới file vừa lưu.
- Xong. Tải lại video cần login → sẽ chạy.

> 💡 App tự tạo bản sao tạm của cookies.txt cho mỗi lượt tải, nên file gốc của bạn **không bị thay đổi** — tải xen kẽ nhiều nền tảng thoải mái.

### Khi nào phải làm lại?
Cookie hết hạn theo thời gian. Nếu báo lỗi **"Cookie không hợp lệ hoặc đã hết hạn"** → vào lại nền tảng, **đăng nhập lại → Export cookies.txt mới → chọn lại file**.

### Tuỳ chọn khác: cookie từ trình duyệt
Trong **Cài đặt → Nguồn cookie → Trình duyệt**: app lấy cookie trực tiếp từ trình duyệt đang đăng nhập.
- **Firefox:** hoạt động tốt (Mac & Windows).
- **Chrome trên macOS:** ❌ không đọc được (Chrome mã hoá cookie) → hãy dùng **file cookies.txt** thay thế.

---

## 4. Thư viện (quản lý video đã tải)

Chuyển sang tab **Thư viện**:
- **Thumbnail** + thông tin từng video (nền tảng, ngày, dung lượng, thời lượng).
- **Thanh thư mục nền tảng:** Tất cả / TikTok / Instagram / Facebook / YouTube (kèm số lượng) — bấm để lọc.
- **Tìm kiếm** theo tên + **Sắp xếp** (mới nhất / cũ nhất / dung lượng / tên).
- Mỗi video:
  - Bấm vào → **mở bằng trình phát mặc định** của máy.
  - Nút **thư mục** → mở vị trí file.
  - Menu **⋯** → Mở bằng app ngoài / Hiện trong thư mục / **Xoá**.

---

## 5. Cài đặt (⚙)

| Mục | Ý nghĩa |
|-----|---------|
| **Thư mục tải xuống** | Đổi nơi lưu video |
| **Tự động nhận diện link** | Bật/tắt nhận link khi copy vào clipboard |
| **Số luồng tải đồng thời** | Tải nhiều video cùng lúc (1–8) |
| **Nguồn cookie** | Không dùng / Trình duyệt / File cookies.txt |
| **Giao diện** | Sáng / Tối |
| **Phiên bản ứng dụng** | Kiểm tra cập nhật app |
| **Phiên bản yt-dlp** | Xem + **Cập nhật yt-dlp** (lõi tải video — nên cập nhật khi tải bị lỗi do nền tảng đổi) |

---

## 6. Xử lý sự cố nhanh (FAQ)

- **Bấm tải nhưng đứng 0% một lúc?** Bình thường — yt-dlp mất ~8s khởi động, sau đó % sẽ chạy. Video nhỏ (TikTok) tải xong gần như tức thì.
- **Báo "Video này cần đăng nhập"?** Cần cookie → làm theo **Mục 3**.
- **Đã nạp cookie mà vẫn lỗi đăng nhập?** Cookie đã hết hạn → **export lại cookies.txt mới**.
- **Tải TikTok lỗi sau khi tải nền tảng khác?** Đã được khắc phục (app dùng bản sao cookie tạm) — nếu vẫn gặp, cập nhật app bản mới nhất.
- **Link báo không hợp lệ?** Kiểm tra phải là link 1 video cụ thể (có `/video/`, `/reel/`, `/shorts/`…), không phải trang chủ.
- **Video tải về không có tiếng?** App luôn ghép tiếng vào file. Lưu ý: tắt tiếng khi *xem* trên TikTok **không** ảnh hưởng file tải.
- **Tải bị lỗi do nền tảng thay đổi?** Vào **Cài đặt → Cập nhật yt-dlp**.

---

## 7. Lưu ý quan trọng

- 🔒 File **cookies.txt = phiên đăng nhập của bạn**. Giữ riêng tư, **không gửi cho ai** (ai có nó coi như đăng nhập được tài khoản bạn).
- ⚖️ Tải video chỉ nên dùng cho **tham khảo creative cá nhân**; tôn trọng bản quyền, không đăng lại nội dung của người khác.
