2014-04-06 21 views
6

Tôi đã gặp khó khăn với API v3 của Youtube ngay bây giờ và tôi không thể làm cho nó hoạt động theo cách mình muốn. Mục tiêu của tôi là tải các video mới nhất từ ​​danh sách phát đã chọn vào trang web của tôi. Vấn đề là tôi chỉ là những video cũ nhất trong phản hồi của tôi.Sắp xếp kết quả API Youtube từ danh sách phát

Để tải các danh sách nhạc tôi yêu cầu sau đây API URI: https://www.googleapis.com/youtube/v3/playlistItems

Dưới đây là một ví dụ về một yêu cầu (chỉ cần nhấp vào thực hiện): http://developers.google.com/apis-explorer/#p/youtube/v3/youtube.playlistItems.list?part=id%252Csnippet%252CcontentDetails%252Cstatus&playlistId=PLOU2XLYxmsIKGo-dgliIJQNZ6L3G8UV4b&_h=1&

Làm thế nào một loại kết quả và có thể nhận được các video mới nhất Đầu tiên? Tôi không thể tìm thấy bất cứ điều gì trong các tài liệu và tôi đã googling mà không có bất kỳ may mắn. Không có điểm nào với API này nếu bạn không thể sắp xếp kết quả. Cách duy nhất là tải tất cả video bằng cách tiếp tục tải trang tiếp theo bằng mã thông báo nhưng điều đó thật điên rồ.

Bất kỳ ý tưởng nào? Có vẻ như một vấn đề cơ bản nhưng tôi không thể tìm thấy giải pháp ...

Trả lời

10

API hiện tại không có tùy chọn sắp xếp để liệt kê các mục trong danh sách phát, nhưng nếu bạn đang chèn các mục theo chương trình, bạn có thể chỉ định giá trị position khi chèn để làm cho video mới xuất hiện ở đầu danh sách.

Nếu đó là người khác đang thêm video, bạn sẽ phải tải tất cả các trang. Vì danh sách phát được giới hạn trong 200 mục nên điều này yêu cầu tối đa 4 yêu cầu. Không lý tưởng, nhưng bây giờ là lựa chọn duy nhất.

+12

Ok, đây là những gì tôi đã sợ. API vô dụng nếu bạn hỏi tôi. – LetsGoRangers

+0

Chỉ cần nhận thấy rằng kết quả được sắp xếp dựa trên cài đặt danh sách phát? (mà bạn phải sở hữu để thay đổi tất nhiên). –

5

Điều này dường như là một hạn chế hiện tại của API YouTube và có vẻ khá ngắn ngủi bởi người sáng tạo của nó.

Điều này không giải quyết được vấn đề chính xác của bạn, nhưng đối với những người khác có vấn đề tương tự, tôi thấy rằng sử dụng truy vấn 'tìm kiếm' bạn có thể đặt ở một mức độ nhất định.

Điều này đã giúp tôi đặt hàng truy vấn danh sách phát (không phải playlistItems) bằng cách tìm kiếm danh sách phát thay vì yêu cầu danh sách danh sách phát. Như vậy câu hỏi của tôi:

https://www.googleapis.com/youtube/v3/playlists?part=snippet&maxResults=20&channelId={channelID}&key={API_KEY} 

trở thành:

https://www.googleapis.com/youtube/v3/search?part=snippet&type=video&order=date&safeSearch=none&maxResults=20&channelId={channelID}&key={API_KEY} 

Bạn cũng có thể tìm kiếm video và thuật ngữ truy vấn và một số thông số khác, như vậy có lẽ bạn có thể nhận được kết quả mong muốn theo cách này.

+0

Cảm ơn @ paul-thomas-gc. Tôi đã thay đổi loại thành 'video' và điều đó cho tôi kết quả được sắp xếp – kitwalker

+0

Tôi đã quan sát các trường hợp hiếm hoi trong đó tìm kiếm không trả về tất cả các video. Tôi đoán là YouTube hoàn toàn xóa một số video không phù hợp khỏi tìm kiếm ngay cả khi bạn sử dụng 'safeSearch = none'. –

0

Bạn cần phải xác định cả playlistID và Danh Kênh trong truy vấn của bạn như thế này:

https://www.googleapis.com/youtube/v3/search?part=snippet&type=video&order=date&maxResults=20&playlistId={playlistID}&channelId={channelID}&key={API_KEY} 
+0

Nó là không đủ. Chỉ cần thử nó! –

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