Không có API của JavDB. JavDB chưa bao giờ phát hành. Tìm “javdb api” và bạn nhận về một đống scraper cộng đồng dùng cái tên đó, mỗi cái đều parse HTML có thể vỡ vào ngày mai.
Đó là toàn bộ vấn đề gói trong một câu. Vẫn đáng để đi qua xem thực tế ngoài kia có gì, vì bạn sẽ gặp tất cả.
”javdb api” thực ra trỏ tới đâu
Một nhúm repo, không cái nào chính thức, tất cả đều dễ vỡ:
javdb-pythonbọc quanh javdatabase.com, thậm chí không phải javdb.com. Tác giả nói thẳng: các hàm và cấu trúc HTML không phải một API ổn định. Ổn cho một script dùng một lần rồi vứt, không ổn cho bất cứ thứ gì bạn đưa ra production.javdb-apitrên npm coi như đã chết. Hơn một năm không có bản phát hành, vài lượt tải mỗi tuần. Đừng xây dựng dựa trên nó.- Các scraper tự host như
ovnrain/javbus-apiđưa cho bạn một Docker container scrape thay bạn. Dễ chạy hơn, cùng một nền tảng, vẫn vỡ khi trang nguồn đổi markup. - Các công cụ media-server (Javinizer, plugin JavScraper cho Emby/Jellyfin) rất tốt để sắp xếp thư viện cục bộ, nhưng chưa bao giờ được thiết kế làm một API dữ liệu mà bạn gọi từ app của chính mình.
Vì sao rốt cuộc chúng đều hỏng
Những công cụ này scrape một website đang chạy, nên chúng thừa hưởng mọi lớp phòng thủ của website đó. JavDB nằm sau Cloudflare, và một nửa số dự án này cần chạy kèm FlareSolverr chỉ để lấy được một trang. Một số nội dung (fc2) cần session cookie bạn dán bằng tay rồi làm mới khi hết hạn. Một lần đổi tên class trên trang sẽ âm thầm làm vỡ parser của bạn, không changelog và không cảnh báo, rồi metadata cứ thế trống trơn vào một ngày nào đó. Vì metadata của JavDB chỉ có tiếng Anh và tiếng Trung, bất cứ thứ gì xây trên nó đều bỏ lỡ các trường tiếng Nhật.
Vậy nên bạn không bảo trì một tích hợp. Bạn bảo trì scraper, bypass trình duyệt headless, cookie, và pager cho lúc tất cả sập vào 2 giờ sáng.
Một lựa chọn được host sẵn
javinfo là API mà JavDB chưa bao giờ trao cho bạn. Nó có nhà cung cấp javdb thực thụ: gửi mã, nhận metadata có cấu trúc, bao gồm cả link download và magnet mà đám scraper săn lùng. Cùng một cấu trúc mỗi lần, không có gì phải canh.
curl -X POST "https://api.javinfo.dev/movie" \ -H "x-javinfo-key: YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{ "q": "CAWD-001", "providers": "javdb" }'{ "q": "CAWD-001", "source": "javdb", "result": { "dvdId": "CAWD-001", "runtimeMins": 120, "extra": { "downloadLinks": [ { "name": "CAWD-001 1080p", "magnet": "magnet:?xt=urn:btih:...", "size": 5905580032, "hd": true } ], "score": 4.3, "voteCount": 512 } }}Mỗi nhà cung cấp đều ánh xạ vào cùng một cấu trúc result nền tảng, nên bạn đọc result.* theo cùng một cách bất kể nguồn nào trả lời. Chúng tôi lo scraping và những trận chiến với Cloudflare để bạn không phải lo. Nó là một phần của một API metadata JAV duy nhất bao phủ mọi nguồn, không bị khóa vào nhà cung cấp ngay từ thiết kế — một tích hợp được bảo trì thay vì một đống scraper mong manh. JavDB chẳng phải nguồn duy nhất kiểu này. DMM còn tệ hơn.
Đăng ký tại app.javinfo.dev, lấy key và truyền qua header x-javinfo-key (cũng có sẵn trên RapidAPI). Cả hai nhà cung cấp javdb và missav đều hoạt động trên mọi request và trả về dữ liệu đầy đủ, không hề bị chặn theo bậc — tính phí theo mức dùng: /movie giá $0,001 cho mỗi kết quả thành công, /query giá $0,0002, và bạn bắt đầu với 1.000+ lượt tra cứu miễn phí, không cần thẻ tín dụng (sau đó nạp bằng USDC, cộng theo tỷ lệ 1:1). Bạn có thể chạy trong một phút. Không Docker, không FlareSolverr, không cookie.