Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Youtube api v3 Get list of user's videos

With Youtube api v2, there's easy way to get videos. Just send a query like this:

http://gdata.youtube.com/feeds/mobile/videos?max-results=5&alt=rss&orderby=published&author=OneDirectionVEVO

The Youtube api v2 also has an interactive demo page for building query: http://gdata.youtube.com/demo/index.html

With Youtube api v3, I don't know the corresponding way. Please point me the way with api v3.

Thank you!

like image 769
vietstone Avatar asked Mar 24 '14 15:03

vietstone


People also ask

Is YouTube data API v3 free?

Yes, using the YouTube API does not incur any monetary cost for the entity calling the API. If you go over your quota an 403 Error will be returned by the API.


2 Answers

The channels#list method will return a JSON with some information about the channel, including the playlist ID for the "uploads" playlist:

https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=OneDirectionVEVO&key={YOUR_API_KEY} 

With the playlist ID you can get the videos with the playlistItems#list method:

https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=UUbW18JZRgko_mOGm5er8Yzg&key={YOUR_API_KEY} 

You can test those at the end of the documentation pages.

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

Vinicius Pinto


This should do it. This code just gets and outputs the title but you can get any details you want

// Get Uploads Playlist $.get(    "https://www.googleapis.com/youtube/v3/channels",{    part : 'contentDetails',     forUsername : 'USER_CHANNEL_NAME',    key: 'YOUR_API_KEY'},    function(data) {       $.each( data.items, function( i, item ) {           pid = item.contentDetails.relatedPlaylists.uploads;           getVids(pid);       });   } );  //Get Videos function getVids(pid){     $.get(         "https://www.googleapis.com/youtube/v3/playlistItems",{         part : 'snippet',          maxResults : 20,         playlistId : pid,         key: 'YOUR_API_KEY'},         function(data) {             var results;             $.each( data.items, function( i, item ) {                 results = '<li>'+ item.snippet.title +'</li>';                 $('#results').append(results);             });         }     ); }   <!--In your HTML --> <ul id="results"></ul> 
like image 29
Brad Avatar answered Sep 17 '22 19:09

Brad