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

使用YouTubeAPI获取持续时间

慕祯
2023-03-14

我需要使用API V3获取YouTube内容长度。我的应用程序在API V3上运行良好,但现在不起作用了。

我发现了一个可行的例子,它确实有效:

$dur = file_get_contents("https://www.googleapis.com/youtube/v3/videos?part=contentDetails&id=[VIDOID]&key=[API KEY]");


$duration =json_decode($dur, true);

foreach ($duration['items'] as $vidTime) {
    $vTime= $vidTime['contentDetails']['duration'];
}

学分: Youtube API v3 ,如何获取视频时长?

这将返回类似如下的时间格式。

PT24M30S 

我怎样才能把这个时间缩短到一个可读的时间呢。比如24:30?

共有3个答案

翁和颂
2023-03-14
 $time_format = "PT24M30S ";

preg_match_all('/(\d+)/',$time_format,$parts);

$hours = floor($parts[0][0]/60);
$minutes = $parts[0][0]%60;
$seconds = $parts[0][1];

echo $hours . ": ". $minutes .":". $seconds; 
纪正德
2023-03-14

一种可能的方法是使用函数str_replace();

$stamp = "PT24M30S";
$formated_stamp = str_replace(array("PT","M","S"), array("",":",""),$stamp);

echo $formated_stamp; //should give "24:30"

奖励内容 - 前导零

为了添加前导零,必须首先使用爆炸()将字符串拆分,然后使用spintf()单独格式化数字;最后再次将其相加。

$exploded_string = explode(":",$formated_stamp);
$new_formated_stamp = sprintf("%02d", $exploded_string[0]).":".sprintf("%02d", $exploded_string[1]);
仰成天
2023-03-14

我不敢相信,有人用过DateInterval,为什么?就像这样:

$duration = new DateInterval('PT24M30S');

print $duration->format('%H:%i:%s'); // outputs: 00:24:30

有用的链接:

  • DateInterval 类
  • 日期间隔::格式
 类似资料:
  • 我们有一个网站,显示我们的YouTube视频频道和我们频道中最喜欢的视频等。我们使用YouTube数据API v2.0来获取数据。 例如: https://gdata.youtube.com/feeds/api/users/“ 用户标识 ”/播放列表?v=2 但现在这些链接返回“NetworkError: 410 Gone”。我们检查了新的YouTube Javascript API,但我们不知道

  • 问题内容: 如何在不创建MediaPlayer实例的情况下获得mp3曲目的持续时间?我只需要在mp3文件列表中显示mp3歌曲的长度,所以我认为我不应该为列表中的每个音轨创建MediaPlayer对象 还有一个: 有时MediaPlayer会返回错误的歌曲持续时间(我认为是错误的,因为这些文件的比特率是动态的)。如何获得正确的歌曲时长? 问题答案: 您可以使用MediaMetadataRetriev

  • 问题内容: 是否有任何PHP函数可以给我MP3持续时间。我看过ID 3的功能,但是在持续时间内我看不到任何东西,除此之外,id3是某种标签,在所有MP3中都不会出现,因此使用它没有任何意义。 问题答案: 这应该为您工作,请注意getduration函数:http ://www.zedwood.com/article/127/php-calculate- duration-of-mp3

  • 对于我的项目,我必须读取在CSV文件中提供给我们的数据并以某种格式将其写出。我几乎完成了,但我遇到的问题是我的程序没有完全读取给定的时间。从这里开始,我的程序只是读取所有给定的时间。 我试图将<code>字符串时间。 这应该会回来 [芝麻街|埃尔莫之最1240:28:11] 但它返回 [Elmo的最佳|芝麻街124;2:29,1:30,2:09,1:46,1:55,2:02,1:42,2:40,1

  • 问题内容: 我正在寻找一种方法来找出python中音频文件(.wav)的持续时间。到目前为止,我看了一下蟒蛇库,,我没能得到wav文件的时间。给了我持续时间,但不一致。 提前致谢。 问题答案: 持续时间等于帧数除以帧率(每秒帧数): 关于@edwards的评论,下面是一些产生2通道wave文件的代码: 如果您在音频播放器中播放结果文件,则会发现持续时间为40秒。如果运行上面的代码,它还会计算持续时

  • 我们有一个应用程序,我们在其中对REST API进行一些内部超文本传输协议调用来获取数据。但是有些请求花费的时间比预期的要长,所以我尝试增加超时持续时间。我尝试了以下操作: RequestConfig RequestConfig=RequestConfig.custom()。setConnectTimeout(30*1000)。build();HttpClient HttpClient=HttpC