2014-12-16 20 views
6

Giống như tiêu đề. tôi làm một yêu cầu như thế này:Cách nhận tất cả kết quả từ phản hồi API API (API tìm kiếm)

https://www.googleapis.com/youtube/v3/search?key=AIzaSyDuxczhyyvHWfxKuF3ygW9p0GWmKlvWLYc&part=id,snippet&publishedAfter=2014-12-09T00:00:00Z&publishedBefore=2014-12-11T00:00:00Z&videoCategoryId=GCSG93LXRvICYgRElZ&type=video&maxResults=50&pageToken= 

Tổng số kết quả là 1000000. Nhưng tôi chỉ có thể nhận được 500 kết quả tối đa (10 trang, 50 kết quả/trang). Ở trang thứ 10, tôi không thấy thuộc tính nextPageToken để truy cập trang tiếp theo. ??? Tôi không biết tại sao. Làm cách nào tôi có thể nhận được tất cả kết quả.

Trả lời

11

YouTube áp đặt giới hạn mềm khoảng 500. Không có cách trực tiếp nào để nhận nhiều hơn thông qua API.

Chi tiết đầy đủ: https://code.google.com/p/gdata-issues/issues/detail?id=4282

liên quan Trích:

"Chúng tôi không thể cung cấp nhiều hơn ~ 500 kết quả tìm kiếm cho bất kỳ truy vấn YouTube tùy ý qua API mà không cần chất lượng của các kết quả tìm kiếm xuống cấp nghiêm trọng (bản sao , vv)

API GData v1/v2 đã được cập nhật trở lại vào tháng 11 để giới hạn số lượng kết quả tìm kiếm được trả về 500. Nếu bạn chỉ định chỉ mục bắt đầu từ 500 trở lên, bạn sẽ không lấy lại bất kỳ kết quả.

Điều này được cho là cũng đã có hiệu lực đối với API v3 (sử dụng một phương pháp phân trang khác thông qua kết quả) nhưng dường như không được đẩy ra, do đó, vẫn có thể truy xuất tới 1000 kết quả tìm kiếm trong v3 — 500 trong số đó thường có chất lượng kém.

Thay đổi giới hạn v3 đến 500 kết quả tìm kiếm sẽ bị đẩy ra đôi khi trong tương lai gần. Sẽ không còn được nextPageTokens trả lại khi bạn đạt được 500 kết quả.

Tôi hiểu rằng totalResults được trả về cao hơn nhiều so với 500 trong tất cả các trường hợp này, nhưng điều đó không giống như khi nói rằng chúng tôi có thể trả lại hiệu quả tất cả X triệu kết quả có thể. Nó có nghĩa là như một ước tính của tổng kích thước của tập các video phù hợp với một truy vấn và thường không phải là rất hữu ích "

Cập nhật -. Làm thế nào để có được xung quanh 500 kết quả giới hạn mềm max

Sử dụng các bộ lọc 'publishedAfter' và 'publishedBefore' để chia nhỏ truy vấn của bạn thành các vòng truy vấn theo ngày/tuần/tháng cho đến khi không có kết quả nào được trả về.

+0

Cảm ơn rất nhiều @john Tôi đã tìm kiếm nhiều ngày nhưng không thể tìm thấy câu trả lời Cảm ơn bạn –

+0

Xin chào, hãy đánh dấu câu trả lời này hữu ích. – johnh10

Các vấn đề liên quan