Quantcast
Channel: Active questions tagged youtube-api - Stack Overflow
Viewing all articles
Browse latest Browse all 3831

Retrieve YouTube channel name, avatar and subscribers

$
0
0

I have code to connect to YouTube, then fill in form then submit to database. I'm struggling to retrieve YouTube channel name, avatar and subscribers. I already can retrieve the channel ID, and views last 30 days: just need help with avatar, name and subscribers.

This is my code to get ID and views of the last 30:

function get_access_token($authentication_code,$client_id,$client_secret,$redirect_uris){  $url = "https://accounts.google.com/o/oauth2/token";  $post="code={$authentication_code}&client_id={$client_id}&client_secret={$client_secret}&redirect_uri={$redirect_uris}&grant_type=authorization_code";     $ch = curl_init();     curl_setopt($ch, CURLOPT_URL, $url);     curl_setopt($ch, CURLOPT_POST, true);     curl_setopt($ch, CURLOPT_POSTFIELDS, $post);   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);       curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);       curl_setopt($ch, CURLOPT_COOKIEJAR,'cookie.txt');       curl_setopt($ch, CURLOPT_COOKIEFILE,'cookie.txt');       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);       curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3");     $st=curl_exec($ch);     return $result=json_decode($st,TRUE);      }   function get_curl($url){      $ch = curl_init();      $headers = array("Content-type: application/json");     curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);       curl_setopt($ch, CURLOPT_URL, $url);     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);         curl_setopt($ch, CURLOPT_COOKIEJAR,'cookie.txt');         curl_setopt($ch, CURLOPT_COOKIEFILE,'cookie.txt');         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);         curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3");        $st=curl_exec($ch);      return $result=json_decode($st,TRUE);   }   function get_id($url){      $ch = curl_init();      $headers = array("Content-type: application/json");     curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);       curl_setopt($ch, CURLOPT_URL, $url);     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);         curl_setopt($ch, CURLOPT_COOKIEJAR,'cookie.txt');         curl_setopt($ch, CURLOPT_COOKIEFILE,'cookie.txt');         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);         curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3");        $st=curl_exec($ch);      return $st;   }if(isset($_GET['code'])){  $authentication_code=$_GET['code'];}if ($access_token==''&& $authentication_code!=''){  /******Get The authorization Code/Access Token******/  $result=get_access_token($authentication_code,$client_id,$client_secret,$redirect_uris);  /***Take access token, also there is the expiration duration*****/  $access_token=$result['access_token'];  $refresh_token=$result['refresh_token'];}if(!$access_token){  $auth_url="https://accounts.google.com/o/oauth2/auth";  $message = "<form id=form-login action='{$auth_url}' method=get><input type=hidden name=client_id value=$client_id><input type=hidden name=redirect_uri value=$redirect_uris><input type=hidden name=scope value=\"https://www.googleapis.com/auth/yt-analytics.readonly https://www.googleapis.com/auth/youtube.readonly\"><input type=hidden name=response_type value=code><input type=hidden name=access_type value=offline><div style=\"float: right;\" data-sr=\"enter bottom\" ><button class=\"button\" type=submit>Apply Now</button></div></form>";} else {  $end_date=date('Y-m-d');  $start_date=date('Y-m-d',strtotime("-1 months"));   $gcid="https://www.googleapis.com/youtube/v3/channels?part=id&mine=true&access_token={$access_token}";   $channelfind=get_id($gcid);   $s="https://www.googleapis.com/youtube/analytics/v1/reports?ids=channel%3D%3DMINE&start-date={$start_date}&end-date={$end_date}&metrics=views,comments,likes&dimensions=day&sort=day&access_token={$access_token}";   $view_data=get_curl($s);   $total_view=0;   foreach($view_data['rows'] as $v){    $total_view+=$v[1];   }  //MONTHLY VIEWS NUMBER   $channelid = explode('id": "', $channelfind);   $channelid = explode('"  } ]}', $channelid[1]);   $channelid = $channelid[0]; //CHANNELID   $_SESSION['Channelid'] = $channelid;   $_SESSION['access_token'] = $access_token;   $_SESSION['Views'] = $total_view;   header("location: index.php");  }  echo $message;?>

Any suggestions?


Viewing all articles
Browse latest Browse all 3831

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>