如何确定特定搜索字词的YouTube视频的平均持续时间?

时间:2016-02-17 14:04:31

标签: youtube web-scraping youtube-api youtube-data-api

我知道YouTube非常封闭,并且没有发布任何详细的统计数据,但我有一个特定的研究兴趣来查找任意操作方法视频的长度。

当我搜索那个词时,我会得到几百万个结果。是否可以确定部分搜索结果的播放持续时间?由于YouTube API的使用受到限制,因此每天可以掌握一些视频,并且可能有多个API密钥。

除了使用API​​之外,我可以使用强大的刮刀。

2 个答案:

答案 0 :(得分:1)

JS浏览器实用程序

我建议你在浏览器开发工具中使用一个简单的JS实用程序。阅读here如何使用它进行计数。我已将其修改为计算视频时长。

JavaScript代码

打开youtube搜索页面并打开浏览器的开发工具(在PC上为F12,首选项 - >高级 - >在Mac上显示开发菜单)。打开后,转到控制台(控制台选项卡)并输入以下代码:

function domCounter(selector){
var a = document.querySelectorAll(selector); 
var hour = 0, min = 0;
for(var i=0; i<a.length;i++){ 
    var time = a[i].innerHTML.split(':');        
    // console.log(time); 
    hour += parseInt(time[0]);  
    min += parseInt(time[1]);    
    }
return hour + Math.round(min/60);
}

如何找到 css 选择器

enter image description here

所以要在浏览器控制台中调用它,你只需点击:

domCounter('span.video-time')

声明

此实用程序适用于一个搜索页面结果。你可能会改进它来遍历分页。

答案 1 :(得分:0)

如果没有查看每个视频的视频时长,您将无法获得从搜索终端返回的持续时间视频。

但是,搜索端点会提供videoDuration参数,您可以将其传递给您的请求,以便仅返回特定持续时间范围内的视频:

  

videoDuration参数基于过滤视频搜索结果   持续时间。如果为此参数指定值,则必须   还将type参数的值设置为video。

     

可接受的值是:

     
      
  • any - 请勿根据视频搜索结果的持续时间过滤视频搜索结果。这是默认值。
  •   
  • long - 仅包含超过20分钟的视频。 medium - 仅包含4到20分钟(含)之间的视频。
  •   
  • short - 仅包含不到四分钟的视频。
  •