Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sorting Youtube API result from playlist

I have been struggling with Youtube's API v3 now and I can't get it work in the way I want. My goal is to load the latest videos from a selected playlist into my website. The problem is that I only the the oldest videos in my response.

To load the playlist I request following API URI: https://www.googleapis.com/youtube/v3/playlistItems

Here is an example of a request (just click execute): http://developers.google.com/apis-explorer/#p/youtube/v3/youtube.playlistItems.list?part=id%252Csnippet%252CcontentDetails%252Cstatus&playlistId=PLOU2XLYxmsIKGo-dgliIJQNZ6L3G8UV4b&_h=1&

How can a sort the result and get the latest videos first? I can't find anything in the docs and I have been googling without any luck. There is no point with this API if you can't sort the result. The only way is to load all videos by keep loading the next page by token but that is just insane.

Any idea? Sounds like a basic problem but I can't find a solution...

like image 806
LetsGoRangers Avatar asked Apr 06 '14 11:04

LetsGoRangers


People also ask

What data can you get from YouTube API?

The API provides the ability to retrieve feeds related to videos, users, and playlists. It also provides the ability to manipulate these feeds, such as creating new playlists, adding videos as favorites, and sending messsages.

Does YouTube provide API based integration?

With the YouTube Data API, you can add a variety of YouTube features to your application. Use the API to upload videos, manage playlists and subscriptions, update channel settings, and more.


2 Answers

The current API doesn't have a sorting option for listing playlist items, but if you are inserting the items programmatically, you can specify the position value when inserting to make new videos appear at the top of the list.

If it's someone else that is adding the videos, than you'll have to get all pages. Since the playlists are limited to 200 items, this requires 4 requests at most. Not ideal, but it's the only option now.

like image 198
Vinicius Pinto Avatar answered Sep 20 '22 20:09

Vinicius Pinto


This does seem to be a limitation currently of the YouTube API and seems quite short-sighted by its creators.

This doesn't solve your exact problem, but for others having a similar problem, I found that using the 'search' query you can order to a certain extent.

This helped me order a playlist (not playlistItems) query by searching for playlists rather than requesting a list of playlists. Thus my query:

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

became:

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

You can also search for videos and query terms and several other parameters, so maybe you can get the results you want this way.

like image 26
Paul Thomas Avatar answered Sep 17 '22 20:09

Paul Thomas