# TPhimX - Cloudflare Worker R2 Auto-Cache CDN & Media Proxy Dự án này chứa mã nguồn **Cloudflare Worker** chịu trách nhiệm chạy **Reverse Proxy & Tự động lưu trữ (Cache) luồng phim HLS** vào bộ nhớ Cloudflare R2 bucket của bạn. --- ## ⚡ Các Tính Năng Vượt Trội 1. **Bỏ qua CORS (CORS Bypass):** Cho phép phát phim trực tiếp từ trình duyệt trên mọi tên miền (`localhost`, `vercel.app`, `Smart TV`, `Mobile App`). 2. **Hỗ trợ tua phim (Range Requests):** Trình phát phim có thể tua (seeking/scrubbing) mượt mà không bị xoay tròn tải lại nhờ hỗ trợ mã phản hồi HTTP `206 Partial Content`. 3. **Tự động Cache vào R2 (Cache Miss / Cache Hit):** - Khi có người xem phim, Worker sẽ kiểm tra trong Cloudflare R2 bucket (`tphimx-movie`) trước. - Nếu phim **đã có** (Cache HIT): Worker phát trực tiếp từ R2 cực nhanh và mượt mà, **không tốn băng thông và zero egress fee**. - Nếu phim **chưa có** (Cache MISS): Worker tải phim từ link gốc (như KKPhim/NguonC), đồng thời lưu file đó vào R2 bucket của bạn ở chế độ nền (background task) và trả về cho người dùng cùng lúc. Lần sau người khác xem sẽ là Cache HIT! 4. **M3U8 Playlist Rewriter:** Tự động phân tích file danh sách phát `.m3u8` và viết lại toàn bộ đường dẫn các phân đoạn `.ts` để chúng tự động đi qua Worker và lưu vào R2 bucket của bạn. --- ## 🚀 Hướng Dẫn Triển Khai (Chỉ 2 Phút) Hãy chắc chắn rằng máy tính của bạn đã cài đặt Node.js. Chạy các lệnh sau trong Terminal tại thư mục này: ### Bước 1: Đăng nhập vào Cloudflare Bật Terminal và chạy lệnh sau để đăng nhập tài khoản Cloudflare của bạn: ```bash npx wrangler login ``` *Trình duyệt sẽ tự động mở ra, bạn chỉ cần bấm **Allow/Xác nhận**.* ### Bước 2: Triển khai Worker Chạy lệnh sau để deploy trực tiếp lên hệ thống Cloudflare toàn cầu: ```bash npx wrangler deploy ``` *Sau khi hoàn tất, hệ thống sẽ trả về một đường dẫn Worker của bạn, ví dụ:* `https://tphimx-r2-proxy.tên-tài-khoản.workers.dev` --- ## ⚙️ Cấu Hình Tên Miền / Cập Nhật Ứng Dụng Web Sau khi đã deploy xong và có link Worker của bạn: 1. Mở file `.env` của web và cấu hình thêm biến môi trường sau để ứng dụng web tự động nhận diện: ```env PUBLIC_CLOUDFLARE_PROXY_URL=https://tphimx-r2-proxy.tên-tài-khoản.workers.dev ``` 2. Các trang phát phim như [[slug].astro](file:///c:/Users/TXA3100/Desktop/SRC%20-%20ROPHIm/web/src/pages/xem/%5Bslug%5D.astro) sẽ tự động ưu tiên điều hướng qua Proxy R2 của bạn để phát phim nhanh chóng và tự động lưu trữ lại.