Вопрос очень простой. Как получить количество просмотров видео с помощью YouTube API?
Задача простая, но я хотел бы очень часто использовать этот запрос на большом количестве видео. Есть ли способ вызвать их Youtube API и получить его? (что-то вроде facebook http://api.facebook.com/restserver.php?method=links.getStats&urls=developers.facebook.com )
restserver.php
вы явно упускаете суть.Ответы:
Думаю, самый простой способ - получить информацию о видео в формате JSON. Если вы хотите использовать JavaScript, попробуйте jQuery.getJSON () ... Но я предпочитаю PHP:
<?php $video_ID = 'your-video-ID'; $JSON = file_get_contents("https://gdata.youtube.com/feeds/api/videos/{$video_ID}?v=2&alt=json"); $JSON_Data = json_decode($JSON); $views = $JSON_Data->{'entry'}->{'yt$statistics'}->{'viewCount'}; echo $views; ?>
Ссылка: Youtube API - получение информации об отдельном видео
источник
Вы можете использовать новый API данных YouTube v3
если вы извлекаете видео, часть статистики содержит viewCount :
из документа:
https://developers.google.com/youtube/v3/docs/videos#resource
statistics.viewCount / Количество просмотров видео.
Вы можете получить эту информацию на стороне клиента или на стороне сервера, используя некоторые клиентские библиотеки:
https://developers.google.com/youtube/v3/libraries
И вы можете протестировать вызов API из документа:
https://developers.google.com/youtube/v3/docs/videos/list
Образец:
Запрос:
GET https://www.googleapis.com/youtube/v3/videos?part=statistics&id=Q5mHPo2yDG8&key={YOUR_API_KEY} Authorization: Bearer ya29.AHES6ZSCT9BmIXJmjHlRlKMmVCU22UQzBPRuxzD7Zg_09hsG X-JavaScript-User-Agent: Google APIs Explorer
Отклик:
200 OK - Show headers - { "kind": "youtube#videoListResponse", "etag": "\"g-RLCMLrfPIk8n3AxYYPPliWWoo/dZ8K81pnD1mOCFyHQkjZNynHpYo\"", "pageInfo": { "totalResults": 1, "resultsPerPage": 1 }, "items": [ { "id": "Q5mHPo2yDG8", "kind": "youtube#video", "etag": "\"g-RLCMLrfPIk8n3AxYYPPliWWoo/4NA7C24hM5mprqQ3sBwI5Lo9vZE\"", "statistics": { "viewCount": "36575966", "likeCount": "127569", "dislikeCount": "5715", "favoriteCount": "0", "commentCount": "20317" } } ] }
источник
part=statistics,contentDetails
. Более того, даже API V2, кажется, работает в большинстве случаев, но не на некоторых видео.Версия 2 API устарела с марта 2014 года, и некоторые из этих ответов используются.
Вот очень простой фрагмент кода для получения количества просмотров видео с помощью JQuery в YouTube API v3.
Сначала вам нужно будет создать ключ API через консоль разработчика Google .
<script> $.getJSON('https://www.googleapis.com/youtube/v3/videos?part=statistics&id=Qq7mpb-hCBY&key={{YOUR-KEY}}', function(data) { alert("viewCount: " + data.items[0].statistics.viewCount); }); </script>
источник
Вот небольшой фрагмент кода для получения просмотров видео Youtube с URL-адреса с помощью Javascript.
Демо нижеприведенного кода
function videoViews() { var rex = /[a-zA-Z0-9\-\_]{11}/, videoUrl = $('input').val() === '' ? alert('Enter a valid Url'):$('input').val(), videoId = videoUrl.match(rex), jsonUrl = 'http://gdata.youtube.com/feeds/api/videos/' + videoId + '?v=2&alt=json', embedUrl = '//www.youtube.com/embed/' + videoId, embedCode = '<iframe width="350" height="197" src="' + embedUrl + '" frameborder="0" allowfullscreen></iframe>' //Get Views from JSON $.getJSON(jsonUrl, function (videoData) { var videoJson = JSON.stringify(videoData), vidJson = JSON.parse(videoJson), views = vidJson.entry.yt$statistics.viewCount; $('.views').text(views); }); //Embed Video $('.videoembed').html(embedCode);}
источник
Зачем использовать какой-либо ключ api для извлечения части общедоступного HTML!
Простейший демонстрационный пример командной строки unix с использованием curl , grep и cut .
curl https://www.youtube.com/watch?v=r-y7jzGxKNo | grep watch7-views-info | cut -d">" -f8 | cut -d"<" -f1
Да, он получает полную страницу html, эта потеря не имеет никакого значения на фоне бесчисленных преимуществ.
источник
Вы тоже можете использовать это:
<?php $youtube_view_count = json_decode(file_get_contents('http://gdata.youtube.com/feeds/api/videos/wGG543FeHOE?v=2&alt=json'))->entry->{'yt$statistics'}->viewCount; echo $youtube_view_count; ?>
источник
Использование
youtube-dl
иjq
:views() { id=$1 youtube-dl -j https://www.youtube.com/watch?v=$id | jq -r '.["view_count"]' } views fOX1EyHkQwc
источник
Используйте клиент API Google PHP: https://github.com/google/google-api-php-client
Вот небольшой мини-класс, чтобы получить статистику YouTube для одного идентификатора видео. Очевидно, что его можно расширить на тонну, используя оставшуюся часть api: https://api.kdyby.org/class-Google_Service_YouTube_Video.html
class YouTubeVideo { // video id public $id; // generate at https://console.developers.google.com/apis private $apiKey = 'REPLACE_ME'; // google youtube service private $youtube; public function __construct($id) { $client = new Google_Client(); $client->setDeveloperKey($this->apiKey); $this->youtube = new Google_Service_YouTube($client); $this->id = $id; } /* * @return Google_Service_YouTube_VideoStatistics * Google_Service_YouTube_VideoStatistics Object ( [commentCount] => 0 [dislikeCount] => 0 [favoriteCount] => 0 [likeCount] => 0 [viewCount] => 5 ) */ public function getStatistics() { try{ // Call the API's videos.list method to retrieve the video resource. $response = $this->youtube->videos->listVideos("statistics", array('id' => $this->id)); $googleService = current($response->items); if($googleService instanceof Google_Service_YouTube_Video) { return $googleService->getStatistics(); } } catch (Google_Service_Exception $e) { return sprintf('<p>A service error occurred: <code>%s</code></p>', htmlspecialchars($e->getMessage())); } catch (Google_Exception $e) { return sprintf('<p>An client error occurred: <code>%s</code></p>', htmlspecialchars($e->getMessage())); } } }
источник
посмотрите на
yt:statistics
тег. Это обеспечиваетviewCount
,videoWatchCount
, иfavoriteCount
т.д.источник
Вот пример, который я использовал в своем приложении TubeCount .
Я также использую параметр fields для фильтрации результата JSON, поэтому возвращаются только те поля, которые мне нужны.
var fields = "fields=openSearch:totalResults,entry(title,media:group(yt:videoid),media:group(yt:duration),media:group(media:description),media:group(media:thumbnail[@yt:name='default'](@url)),yt:statistics,yt:rating,published,gd:comments(gd:feedLink(@countHint)))"; var channel = "wiibart"; $.ajax({ url: "http://gdata.youtube.com/feeds/api/users/"+channel+"/uploads?"+fields+"&v=2&alt=json", success: function(data){ var len = data.feed.entry.length; for(var k =0; k<len; k++){ var yt = data.feed.entry[k]; v.count = Number(yt.yt$statistics != undefined && yt.yt$statistics.viewCount != undefined ? yt.yt$statistics.viewCount : 0); } } });
источник
Вот простая функция в PHP, которая возвращает количество просмотров видео на YouTube. Для этого вам понадобится ключ API данных YouTube (v3). Если у вас нет ключа, получите его бесплатно по адресу: YouTube Data API.
//Define a constant so that the API KEY can be used globally across the application define("YOUTUBE_DATA_API_KEY", 'YOUR_YOUTUBE_DATA_API_KEY'); function youtube_video_statistics($video_id) { $json = file_get_contents("https://www.googleapis.com/youtube/v3/videos?part=statistics&id=" . $video_id . "&key=". YOUTUBE_DATA_API_KEY ); $jsonData = json_decode($json); $views = $jsonData->items[0]->statistics->viewCount; return $views; } //Replace YOUTUBE_VIDEO_ID with your actual YouTube video Id echo youtube_video_statistics('YOUTUBE_VIDEO_ID');
Я использую это решение в своем приложении, и оно работает на сегодняшний день. Так что получите ключ API и идентификатор видео YouTube и замените их в приведенном выше коде (вторая строка и последняя строка), и все будет в порядке.
источник
PHP JSON
$jsonURL = file_get_contents("https://www.googleapis.com/youtube/v3/videos?id=$Videoid&key={YOUR-API-KEY}&part=statistics"); $json = json_decode($jsonURL);
Сначала пройдите через это, раскомментировав
//var_dump(json);
и получите количество просмотров как:
$vcounts = $json->{'items'}[0]->{'statistics'}->{'viewCount'};
источник
Пример URL YouTube Data API v3
Ссылка на источник
источник
Вы можете использовать JQuery, не забудьте заменить
Your-Api-Key
строку из приведенного ниже кода, перейдите по ссылке, чтобы найти свой собственный ключ Api консоли разработчиков Google<script> $.getJSON('https://www.googleapis.com/youtube/v3/videospart=statistics&id=Qq7mpb-hCBY&key=Your-Api-Key', function(data) { console.log("viewCount: ", data.items[ 0 ].statistics.viewCount); }); </script>
источник
Вероятно, это не то, что вы хотите, но вы можете удалить страницу для информации, используя следующее:
document.getElementsByClassName('watch-view-count')[0].innerHTML
источник