============================================================ HOLETEX TRANSCRIPTS — HƯỚNG DẪN (3 bước) ============================================================ Gói này tải PHỤ ĐỀ (transcript) của 163 video kênh @holetex. Chỉ tải phụ đề, KHÔNG tải video/audio: cả kênh chỉ khoảng vài MB. Chạy trên máy của bạn (Windows / macOS / Linux), cần mạng Internet. BƯỚC 1 — GIẢI NÉN ------------------ Giải nén cả thư mục ra một chỗ bất kỳ. Trong đó phải có đủ 5 tệp: get.py urls.txt <- danh sách 163 video run_windows.bat <- dùng cho Windows run_mac_linux.sh <- dùng cho macOS / Linux README.txt <- tệp này Đừng tách lẻ get.py ra khỏi urls.txt: hai tệp phải nằm cùng thư mục. BƯỚC 2 — CHẠY ------------- WINDOWS: Nhấp đúp vào run_windows.bat (hoặc mở Command Prompt trong thư mục đó rồi gõ: run_windows.bat ) Nếu báo "Khong tim thay Python": cài Python từ https://www.python.org/downloads/windows/ và nhớ TICK vào ô "Add python.exe to PATH" ở màn hình cài đặt đầu tiên, sau đó đóng cửa sổ và chạy lại. macOS / LINUX: Mở Terminal, vào thư mục vừa giải nén, rồi: chmod +x run_mac_linux.sh ./run_mac_linux.sh (chmod chỉ cần gõ một lần) Lần chạy đầu, script tự tạo môi trường Python riêng trong out/venv và tự cài yt-dlp + youtube-transcript-api vào đó — không cài gì vào Python hệ thống của máy bạn. Thời gian tải: khoảng 10–25 phút cho 163 video. Muốn thử trước 3 video cho nhanh: python3 get.py --limit 3 (Windows: py -3 get.py --limit 3) KẾT QUẢ nằm trong thư mục out/: .txt một tệp cho mỗi video có phụ đề MANIFEST.json id, ngôn ngữ, tự động hay không, số ký tự, trạng thái venv/ môi trường Python (có thể xoá, không gửi đi) Và ở cuối, script tự đóng gói thành: holetex-transcripts.zip BƯỚC 3 — GỬI LÊN ---------------- Mở trang upload: https://kl-yt-kit.pages.dev/ Dán mã gửi: (8 ký tự — trợ lý gửi riêng trong chat, không nằm trong tệp này) Chọn tệp holetex-transcripts.zip -> bấm "Gửi lên". Trang sẽ báo "Gửi thành công" kèm một dòng khoá dạng upload:1712345678901-holetex-transcripts.zip — chụp lại dòng đó báo cho agent là xong. DỪNG GIỮA CHỪNG THÌ SAO? ------------------------ Cứ bấm Ctrl+C (hoặc đóng cửa sổ). Hôm sau chạy lại đúng lệnh cũ: video nào đã có out/.txt dài hơn 200 ký tự sẽ được BỎ QUA, chỉ tải phần còn thiếu. Không mất kết quả cũ, không tải lại từ đầu. Muốn tải lại từ đầu một video cụ thể: xoá tệp out/.txt rồi chạy lại, hoặc chạy: get.py --force --only NẾU CÓ VIDEO KHÔNG CÓ PHỤ ĐỀ ---------------------------- Script ghi trạng thái "no_subs" vào MANIFEST.json và chạy tiếp, không dừng. Đó là video thật sự không có phụ đề (thường là video cũ hoặc shorts), không phải lỗi. Nếu rất nhiều video báo "blocked" (YouTube: "Sign in to confirm you're not a bot") thì mạng/IP của bạn đang bị YouTube nghi ngờ — thử tắt VPN, hoặc đăng nhập YouTube trên trình duyệt cùng máy rồi chạy lại. Đây là lý do gói này phải chạy trên máy bạn thay vì máy chủ của agent. Nếu bị "HTTP Error 429" (quá nhiều yêu cầu): đợi 15–30 phút rồi chạy lại, phần đã tải vẫn được giữ. TUỲ CHỌN NÂNG CAO (không cần dùng) ----------------------------------- --urls PATH dùng danh sách khác --out DIR đổi thư mục đầu ra --limit N chỉ làm N video đầu --only ID,ID chỉ làm vài id --force tải lại cả video đã có --no-venv không tạo venv, dùng Python hiện tại --no-zip không đóng gói zip ở cuối --help xem trợ giúp