【问题标题】:How to determine the mean duration of YouTube videos for specific search term?如何确定特定搜索词的 YouTube 视频的平均时长?
【发布时间】:2016-02-17 14:04:31
【问题描述】:

我知道 YouTube 非常封闭,不发布任何详细的统计数据,但我对找出任意 How-To 视频的长度有特别的研究兴趣。

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

除了使用 API 之外,我还可以使用强大的抓取工具。

【问题讨论】:

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


    【解决方案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选择器

    所以要在你刚刚点击的浏览器控制台中调用它:

    domCounter('span.video-time')
    

    免责声明

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

    【讨论】:

    • 请谨慎链接到您自己在不同网站上的内容,您不想成为spammer。您应该在此处包含大部分内容,并且仅将链接用作参考。
    • @NathanOliver,好的,我会的。
    【解决方案2】:

    如果不查看每个视频的时长,您将无法获取从搜索端点返回的时长视频。

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

    videoDuration 参数根据以下条件过滤视频搜索结果 他们的持续时间。如果为此参数指定值,则必须 还将 type 参数的值设置为 video。

    可接受的值为:

    • any – 不要根据视频搜索结果的时长过滤视频搜索结果。这是默认值。
    • long – 仅包含超过 20 分钟的视频。中 - 仅包括时长在 4 到 20 分钟(含)之间的视频。
    • short – 仅包含时长少于四分钟的视频。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-16
      • 2014-11-04
      • 2020-10-04
      • 2015-04-30
      • 1970-01-01
      • 1970-01-01
      • 2018-01-04
      相关资源
      最近更新 更多