So I'm trying to get the channel profile picture for a YouTube channel by using the channelId.
I would like to do it simply by adding the channelId to a URL and get the image that way.
Facebook has something similar where you use this URL:
http://graph.facebook.com/user_id/picture?type=square
Google+ has it too, found this question here. Sadly it didn't work for YouTube (I couldn't get it to work)
Hope someone has a solution!
Thanks in advance :)
You can use channels->list request for that.
In response you will get snippet.thumbnails."default".url for that
For authenticated user's channel:
GET https://www.googleapis.com/youtube/v3/channels?part=snippet&mine=true&fields=items%2Fsnippet%2Fthumbnails&key={YOUR_API_KEY}
Or for any channel ID:
GET https://www.googleapis.com/youtube/v3/channels?part=snippet&id+CHANNEL_ID&fields=items%2Fsnippet%2Fthumbnails&key={YOUR_API_KEY}
In PHP, I got it with:
$url = "https://www.googleapis.com/youtube/v3/channels?part=snippet&fields=items%2Fsnippet%2Fthumbnails%2Fdefault&id={$channelId}&key={$API}";
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
$channelOBJ = json_decode( curl_exec( $ch ) );
$thumbnail_url = $channelOBJ->items[0]->snippet->thumbnails->default->url;
a little bit late, but maybe interesting for others:
just create a comma separated list for the different channelIds and then call
https://www.googleapis.com/youtube/v3/channels?part=snippet&id='+commaSeperatedList+'&fields=items(id%2Csnippet%2Fthumbnails)
therefore you don't have to send a request for each item