答案 0 :(得分:73)
答案 1 :(得分:58)
您可以使用新的YouTube Data API v3
如果您检索视频,统计信息部分包含 viewCount :
来自doc:
https://developers.google.com/youtube/v3/docs/videos#resource
statistics.viewCount /观看视频的次数。
您可以使用某些客户端库在客户端或服务器端检索此信息:
https://developers.google.com/youtube/v3/libraries
您可以从doc:
测试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"
}
}
]
}
答案 2 :(得分:8)
以下是使用Javascript
从URL获取Youtube视频观看的小代码段<强> Demo of below code 强>
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);}
答案 3 :(得分:8)
自2014年3月以来,该API的第2版已被弃用,其中一些其他答案正在使用。
这是一个非常简单的代码段,用于在YouTube API v3中使用JQuery从视频中获取视图数量。
您需要先通过Google Developer Console创建一个API密钥。
<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>
答案 4 :(得分:3)
您也可以使用它:
<?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;
?>
答案 5 :(得分:2)
使用Google PHP API客户端:https://github.com/google/google-api-php-client
这是一个小小的课程,只是为了获取单个视频ID的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()));
}
}
}
答案 6 :(得分:1)
查看yt:statistics
标记。
它提供viewCount
,videoWatchCount
,favoriteCount
等。
答案 7 :(得分:1)
这是我在TubeCount app中使用的一个示例。
我还使用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);
}
}
});
答案 8 :(得分:1)
您可以使用JQuery,不要忘记从下面的代码中替换Do While ActiveCell <> ""
Selection.Copy
Set myActiveCell = ActiveCell
ActiveCell.Offset(0, -4).Select
With Worksheets(1).Range("a:a")
Dim value As String
value = ActiveCell.value
Dim c As Range
Set c = .Find(value, LookIn:=xlValues)
If Not c Is Nothing Then
c.Activate
ActiveCell.Offset(0, 4).Select
ActiveSheet.Paste
myActiveCell.Activate
Rows(ActiveCell.Row).Delete
End If
End With
Loop
字符串,请点击链接查找您自己的Api密钥google developers console
Your-Api-Key
答案 9 :(得分:1)
以下是 PHP 中的一个简单功能,可返回YouTube视频的观看次数。您需要使用YouTube数据API密钥(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视频ID,并在上面的代码(第二行和最后一行)中替换它们,您应该很高兴。
答案 10 :(得分:1)
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'};
答案 11 :(得分:1)
YouTube Data API v3 URL示例
答案 12 :(得分:0)
为什么要使用任何 api键来检索公共html的一部分!
使用 curl , grep 和 cut 的最简单的UNIX命令行示例。
curl https://www.youtube.com/watch?v=r-y7jzGxKNo | grep watch7-views-info | cut -d">" -f8 | cut -d"<" -f1
是的,它获得了完整的html页面,这种损失与无数优势无关。
答案 13 :(得分:0)
使用youtube-dl
和jq
:
views() {
id=$1
youtube-dl -j https://www.youtube.com/watch?v=$id |
jq -r '.["view_count"]'
}
views fOX1EyHkQwc
答案 14 :(得分:-6)