2014-04-06 23 views
6

Mam już problemy z interfejsem API YouTube 3 i nie mogę go uruchomić tak, jak chcę. Moim celem jest załadowanie najnowszych filmów z wybranej listy odtwarzania do mojej witryny. Problem polega na tym, że mam tylko najstarsze filmy z mojej odpowiedzi.Sortowanie interfejsu API serwisu Youtube z listy odtwarzania

Aby wczytać playlistę zażądać następujących API URI: https://www.googleapis.com/youtube/v3/playlistItems

Oto przykład żądania (wystarczy kliknąć wykonać): http://developers.google.com/apis-explorer/#p/youtube/v3/youtube.playlistItems.list?part=id%252Csnippet%252CcontentDetails%252Cstatus&playlistId=PLOU2XLYxmsIKGo-dgliIJQNZ6L3G8UV4b&_h=1&

Jak można sortować wynik i uzyskać najnowsze filmy pierwszy? Nie mogę znaleźć niczego w dokumentach i szukałem go bez powodzenia. Z tym API nie ma sensu, jeśli nie możesz posortować wyniku. Jedynym sposobem jest załadowanie wszystkich filmów przez ładowanie następnej strony przez token, ale to jest po prostu szalone.

Każdy pomysł? Brzmi jak podstawowy problem, ale nie mogę znaleźć rozwiązania ...

Odpowiedz

10

Bieżący interfejs API nie ma opcji sortowania dla listy elementów listy odtwarzania, ale jeśli wstawiasz elementy programowo, możesz podać wartość position podczas wstawiania, aby nowe filmy pojawiały się u góry listy.

Jeśli to ktoś inny dodaje filmy, to musisz pobrać wszystkie strony. Ponieważ lista odtwarzania jest ograniczona do 200 elementów, wymaga to maksymalnie 4 żądań. Nie jest idealny, ale teraz jest to jedyna opcja.

+12

Ok, to jest to, czego bała. Dość bezużyteczne API, jeśli mnie pytasz. – LetsGoRangers

+0

Po prostu zauważyłeś, że wyniki są uporządkowane w oparciu o ustawienie listy odtwarzania? (które musisz posiadać, aby zmienić kurs). –

5

To wydaje się być obecnie ograniczeniem YouTube API i wydaje się być dość krótkowzroczne przez jego twórców.

To nie rozwiąże problemu, ale dla innych osób mających podobny problem, stwierdziłem, że za pomocą zapytania "szukaj" można zamówić do pewnego stopnia.

Pomogło mi to zamówić zapytanie do listy odtwarzania (nie playlistItems), wyszukując listy odtwarzania zamiast żądać listy list odtwarzania. Tak więc moje zapytanie:

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

stała:

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

Można również wyszukiwać filmy i terminów zapytania i kilku innych parametrów, więc może można otrzymać wyniki chcesz w ten sposób.

+0

Dzięki @ paul-thomas-gc. Zmieniłem typ na 'wideo' i to daje mi posortowane wyniki. – kitwalker

+0

Zauważyłem rzadkie przypadki, w których wyszukiwanie nie zwraca wszystkich filmów. Domyślam się, że YouTube całkowicie usuwa niektóre nieodpowiednie filmy z wyszukiwania, nawet jeśli używasz opcji "safeSearch = none". –

0

Musisz określić zarówno playlistID i ID kanału w zapytaniu tak:

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

To nie wystarczy. Wypróbowałem to! –

Powiązane problemy