2014-04-06 10 views
6

Ho avuto difficoltà con l'API v3 di Youtube ora e non riesco a farlo funzionare nel modo che voglio. Il mio obiettivo è caricare sul mio sito web gli ultimi video di una playlist selezionata. Il problema è che ho solo i video più vecchi nella mia risposta.Ordinamento del risultato API di YouTube dalla playlist

Per caricare la playlist chiedo API seguente URI: https://www.googleapis.com/youtube/v3/playlistItems

Ecco un esempio di una richiesta (basta fare clic su Esegui): http://developers.google.com/apis-explorer/#p/youtube/v3/youtube.playlistItems.list?part=id%252Csnippet%252CcontentDetails%252Cstatus&playlistId=PLOU2XLYxmsIKGo-dgliIJQNZ6L3G8UV4b&_h=1&

Come può una specie il risultato e ottenere gli ultimi video primo? Non riesco a trovare nulla nei documenti e ho cercato su Google senza alcuna fortuna. Non ha senso con questa API se non è possibile ordinare il risultato. L'unico modo è quello di caricare tutti i video continuando a caricare la pagina successiva da token ma questo è semplicemente folle.

Qualche idea? Sembra un problema di base ma non riesco a trovare una soluzione ...

risposta

10

L'API corrente non ha un'opzione di ordinamento per elencare gli elementi della playlist, ma se si inseriscono gli elementi a livello di programmazione, è possibile specificare il valore position quando si inserisce per far apparire nuovi video all'inizio dell'elenco.

Se è qualcun altro a aggiungere i video, è necessario recuperare tutte le pagine. Poiché le playlist sono limitate a 200 voci, questo richiede al massimo 4 richieste. Non ideale, ma è l'unica opzione ora.

+12

Ok, questo è quello che temevo. Abbastanza inutile API se me lo stai chiedendo. – LetsGoRangers

+0

Hai appena notato che i risultati sono ordinati in base all'impostazione della playlist? (che devi possedere per cambiare ovviamente). –

5

Questo sembra essere un limite attualmente dell'API di YouTube e sembra piuttosto miope dai suoi creatori.

Questo non risolve il tuo problema esatto, ma per gli altri che hanno un problema simile, ho trovato che utilizzando la query di 'ricerca' è possibile ordinare in una certa misura.

Questo mi ha aiutato a ordinare una query di playlist (non playlistItems) cercando le playlist anziché richiedere un elenco di playlist. Così la mia domanda:

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

divennero:

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

È anche possibile cercare i video e termini di ricerca e diversi altri parametri, quindi forse è possibile ottenere i risultati desiderati in questo modo.

+0

Grazie @ paul-thomas-gc. Ho cambiato il tipo in 'video' e questo mi dà i risultati ordinati – kitwalker

+0

Ho osservato casi rari in cui la ricerca non restituisce tutti i video. La mia ipotesi è che YouTube rimuova completamente determinati video inappropriati dalla ricerca anche se si utilizza 'safeSearch = none'. –

0

È necessario specificare sia il playlistID e channelId nella vostra domanda come questa:

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

Non è abbastanza. Ci ho provato! –