当前位置: 首页 > 知识库问答 >
问题:

有没有可能通过Youtube数据API v3.0获取时长(时间)视频

孙思源
2023-03-14

是否可以通过Youtube data API v3.0获取时长(时间)视频,如果可以,如何获取?

共有3个答案

裴劲
2023-03-14

使用javascript

js prettyprint-override">function converTime(d) {
  //ignore the "PT" part
  d = d.search(/PT/i) > -1? d.slice(2) : d;
  let h, m, s;
  //indexes of the letters h, m, s in the duration
  let hIndex = d.search(/h/i),
      mIndex = d.search(/m/i),
      sIndex = d.search(/s/i);
  //is h, m, s inside the duration
  let dContainsH = hIndex > -1,
      dContainsM = mIndex > -1,
      dContainsS = sIndex > -1;
  //setting h, m, s
  h = dContainsH? d.slice(0, hIndex) + ":" : "";
  m = dContainsM? d.slice(dContainsH ? hIndex + 1 : 0, mIndex) : dContainsH? "0" : "0";
  s = dContainsS? d.slice(dContainsM ? mIndex + 1 : hIndex + 1, sIndex) : "0";
  //adding 0 before m or s
  s = (dContainsM || dContainsS) && s < 10? "0" + s: s;
  m = (dContainsH || dContainsM) && m < 10? "0" + m + ":" : m + ":";
  return d !== "0S" ? h + m + s : "LIVE"
}
console.log(converTime("PT6M7S"));
严嘉良
2023-03-14

下面是我如何从.NET和C#中实现的
首先包括“contentDetails”部分

var searchListRequest = youtubeService.Videos.List("snippet,contentDetails");

其次,将持续时间转换为更易于编程管理的时间,如下所示:

TimeSpan YouTubeDuration = System.Xml.XmlConvert.ToTimeSpan(searchResult.ContentDetails.Duration);

我希望这是有帮助的

东方宜
2023-03-14

进行搜索调用后,您必须调用Youtube数据API的视频资源。您最多可以在搜索中放置50个视频ID,因此您不必为每个元素调用它。

https://developers.google.com/youtube/v3/docs/videos/list

您需要设置part=content细节,因为持续时间是存在的。

例如下面的调用:

https://www.googleapis.com/youtube/v3/videos?id=9bZkp7q19f0&part=contentDetails&key={YOUR_API_KEY}

给出这个结果:

{
 "kind": "youtube#videoListResponse",
 "etag": "\"XlbeM5oNbUofJuiuGi6IkumnZR8/ny1S4th-ku477VARrY_U4tIqcTw\"",
 "items": [
  {

   "id": "9bZkp7q19f0",
   "kind": "youtube#video",
   "etag": "\"XlbeM5oNbUofJuiuGi6IkumnZR8/HN8ILnw-DBXyCcTsc7JG0z51BGg\"",
   "contentDetails": {
    "duration": "PT4M13S",
    "dimension": "2d",
    "definition": "hd",
    "caption": "false",
    "licensedContent": true,
    "regionRestriction": {
     "blocked": [
      "DE"
     ]
    }
   }
  }
 ]
}

时间被格式化为ISO 8601字符串。PT代表持续时间,4M代表4分钟,13S代表13秒。

请参考这个问题了解更多详情

 类似资料:
  • 我目前正在尝试使用 Youtube V3 API 生成频道中最近上传的视频的源。目前,我大部分时间都在工作,但是我无法在我的一生中获得两个重要的数据 - 视频观看量和视频持续时间。我知道这些数据位属于“视频”endpoint,但我不确定如何将其集成到Google的Youtube API网站上提供的Javascript API示例中。这是我下面的代码 - 任何帮助将不胜感激:

  • 本文向大家介绍Java通过调用FFMPEG获取视频时长,包括了Java通过调用FFMPEG获取视频时长的使用技巧和注意事项,需要的朋友参考一下 FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,li

  • 我正在尝试通过Youtube数据API上传视频,但我总是收到错误。 我发现了https://developers.google.com/youtube/v3/docs/errors?hl=en,可能意味着用户拥有谷歌账户,但没有YouTube频道。 这就是我的情况,我的谷歌账户没有Youtube频道,但我是另一个YouTube频道(橙色图标)的管理员,当我登录youtube.com时,我甚至可以看

  • 如何使用part:snippet和contentDetails??我想获得持续时间,只有音乐视频,标题和观看次数。请帮助我。

  • 我想知道Youtube视频的持续时间。以下是我尝试的代码: 请检查XML文件。我得到了这个视频的标题。我想从<code>中获取持续时间 如何获取秒此

  • 我正在努力做到没有方法,以便更好地把握概念。 我真的很接近了。我的时间数学似乎错了。我有什么不明白的? 输出: