Я пытаюсь подсчитать количество просмотров youtube видео с помощью YouTube Analytics API v3. Я использую клиентскую библиотеку google php для загрузки видео. Я могу найти количество симпатий, антипатий и т. Д., Используя этот URL:
https://www.googleapis.com/youtube/v3/videos?part=statistics&id=Nyk_ltlr6pc&key={APP_KEY}
Но не удалось найти такой ресурс для подсчета количества акций.
Я видел этот пост: Как получить счетчик количества видео с YouTube, используя youtube api?
Но я ничего не могу получить от этого поста, поскольку этот пост устарел, и он использует API YouTube Analytics v1 в сравнении с текущим API YouTube Analytics v3.
Пожалуйста, направляйте меня. Спасибо.
Я знаю, что уже поздно, но все же я думаю, что я должен поделиться этим кодом, поэтому, если кто-то нуждается в такой функциональности, подобной этому, это поможет ему.
set_include_path($_SERVER['DOCUMENT_ROOT'] . '/library/Youtube/src/'); require_once 'Google/autoload.php'; require_once 'Google/Client.php'; require_once 'Google/Service/YouTube.php'; session_start(); $startdate = <DATE_WHEN_YOUR_GET_UPLOADED>; $video_id = <YOUR_VIDEO_ID>; $video_id = "video==" .$video_id; $key = file_get_contents('the_key.txt'); //YOUR_ACCESS_TOKEN $OAUTH2_CLIENT_ID = <YOUR_OAUTH2_CLIENT_ID>; $OAUTH2_CLIENT_SECRET = <YOUR_OAUTH2_CLIENT_SECRET>; $scope = array("https://www.googleapis.com/auth/youtube.force-ssl", "https://www.googleapis.com/auth/youtubepartner-channel-audit", "https://www.googleapis.com/auth/youtube", "https://www.googleapis.com/auth/youtube.readonly", "https://www.googleapis.com/auth/yt-analytics.readonly", "https://www.googleapis.com/auth/yt-analytics-monetary.readonly","https://www.googleapis.com/auth/youtubepartner"); try{ // Client init $client = new Google_Client(); $client->setClientId($OAUTH2_CLIENT_ID); $client->setClientSecret($OAUTH2_CLIENT_SECRET); $client->setAccessType('offline'); $client->setAccessToken($key); $client->setScopes($scope); if ($client->getAccessToken()) { //Check to see if our access token has expired. If so, get a new one and save it to file for future use. if($client->isAccessTokenExpired()) { //refresh your access token if it's expired $newToken = json_decode($client->getAccessToken()); $client->refreshToken($newToken->refresh_token); file_put_contents('the_key.txt', $client->getAccessToken()); } $analytics = new Google_Service_YouTubeAnalytics($client); $channel_id = <YOUR_CHANNEL_ID>; $ids = 'channel=='.$channel_id; $end_date = date("Ymd"); //current date $start_date = startdate; //date when you uploaded your video $optparams = array( 'filters' => $video_id, ); $metric = 'likes,shares'; //what you want to fetch $api = $analytics->reports->query($ids, $start_date, $end_date, $metric, $optparams); print_r(json_encode($api->rows[0])); } else{ // @TODO Log error echo 'Problems creating the client'; } }catch (Google_Service_Exception $e) { echo sprintf('<p>A service error occurred: <code>%s</code></p>',htmlspecialchars($e->getMessage())); }
Пожалуйста, не стесняйтесь просматривать мой код и предлагать любые подходящие изменения.