从 YouTube 网址获取持续时间

2023-11-26

我正在寻找一个函数,可以从 url 中提取视频的 YouTube 持续时间。我读了一些教程但不明白。我使用网址在我的网站上嵌入视频,并且我有一个提取缩略图的功能,我只想要类似的东西来获取持续时间。这是我如何获得拇指...

function get_youtube_screen_link( $url = '', $type = 'default', $echo = true ) {
if( empty( $url ) )
    return false;

if( !isset( $type ) )
    $type = '';

$url = esc_url( $url );

preg_match("|[\\?&]v=([^&#]*)|",$url,$vid_id);

if( !isset( $vid_id[1] ) )
    return false;

$img_server_num =  'i'. rand(1,4);

switch( $type ) {
    case 'large':
        $img_link = "http://{$img_server_num}.ytimg.com/vi/{$vid_id[1]}/0.jpg";
        break;
    case 'first':
        // Thumbnail of the first frame
        $img_link = "http://{$img_server_num}.ytimg.com/vi/{$vid_id[1]}/1.jpg";
        break;
    case 'small':
        // Thumbnail of a later frame(i'm not sure how they determine this)
        $img_link = "http://{$img_server_num}.ytimg.com/vi/{$vid_id[1]}/2.jpg";
        break;
    case 'default':
    case '':
    default:
        $img_link = "http://{$img_server_num}.ytimg.com/vi/{$vid_id[1]}/default.jpg";
        break;
}
if( $echo )
    echo $img_link;
else
    return $img_link;

}


你可以使用这样的东西:

<?php

    function getDuration($url){

        parse_str(parse_url($url,PHP_URL_QUERY),$arr);
        $video_id=$arr['v']; 


        $data=@file_get_contents('http://gdata.youtube.com/feeds/api/videos/'.$video_id.'?v=2&alt=jsonc');
        if (false===$data) return false;

        $obj=json_decode($data);

        return $obj->data->duration;
    }

    echo getDuration('http://www.youtube.com/watch?v=rFQc7VRJowk');

?>

返回视频的持续时间(以秒为单位)。

参考:http://code.google.com/apis/youtube/2.0/developers_guide_protocol.html

您可以使用类似的函数this one将秒更改为小时、分钟和秒。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 YouTube 网址获取持续时间 的相关文章

随机推荐

  • LDAP:错误代码 49 - 80090308:LdapErr:DSID-0C0903A9,注释:AcceptSecurityContext 错误,数据 52e,v1db1

    LDAP 错误代码 49 80090308 LdapErr DSID 0C0903A9 注释 AcceptSecurityContext 错误 数据 52e v1db1 我知道 52e 代码是用户名有效但密码无效的情况 我在 apache
  • Rails 3.2.8 Application.js 和 Application.css 未按预期工作

    当我尝试包括 application css 文件的内容是 This is a manifest file that ll be compiled into application css which will include all th
  • 为什么弹性物品不包裹?

    我正在尝试制作多行具有相同高度的正方形 每行 3 个 我为此编写了一些 HTML 和 CSS 但这些框都位于同一行 这是我到目前为止所拥有的 list wrapper display flex width 100 list wrapper
  • 自动 XSD 验证

    根据 lxml 文档 DTD 是根据解析文档的 DOCTYPE 自动检索的 您所要做的就是使用启用了 DTD 验证的解析器 http lxml de validation html validation at parse time 但是 如
  • 简单的日志文件格式

    我不确定是否有人问过 但我找不到这样的东西 我的程序使用一个简单的 txt 文件用于日志目的 它只是创建 打开一个文件并附加行 一段时间后 我开始记录相当多的活动 因此文件变得太大并且难以读取 我知道 这不是写的方式来做到这一点 但我只需要
  • 在网页中嵌入视频 (HTML)

    我想在网页中嵌入视频 我不想使用 Flash 因为它不适用于大量平台 我不愿意使用 HTML5 因为它还不太标准 它是标准 但大多数人没有支持它的浏览器 还有其他办法吗 或者我应该坚持使用 HTML5 和一个巨大的横幅告诉人们升级他们的浏览
  • ASP.NET ConnectionString AttachDbFilename=|数据目录|

    这是关于 ConnectionStrings ASP NET MVC 与 Visual Studio 2012 Ultimate 和 SQL Server Express 2012 的内容 在此继续本教程 http www asp net
  • 与伞式框架的链接

    我有 ios 应用程序 我想在其中实现 Flurry analytics 导入 Flurry 并 ling libsystem network dylib 后 我遇到了这个无法解决的问题 ld cannot link directly wi
  • Django/mod_wsgi OSError: [Errno 13] 权限被拒绝: 当 DEBUG = OFF 时为“静态”

    我在 Centos 6 2 服务器 运行 apache mysql php 上有一个 Django 1 4 应用程序 使用 mod wsgi 并将我的项目部署在虚拟环境中 该应用程序本身是我在托管服务上使用多年的应用程序 现在我正在自己的机
  • next.js getStaticPaths 列出每个路径还是仅列出附近的路径?

    使用 Next js 导出静态页面 我在动态路由中得到了这样的结果pages id js我放入的任何路径getStaticPaths将创建部分 凉爽的 列出每一页是否更好 getStaticPaths return some functio
  • 将 Powerpoint 演示嵌入到 C# 应用程序中

    我希望能够将 powerpoint 演示文稿嵌入到 C 表单 WinForms 中 基本上我们有一台 52 英寸的显示器 其想法是在一个角落循环播放 PPT 然后其他 3 个角落将显示程序本身的信息 我原以为这会很简单 但看来我错了 有人建
  • Windows 文件路径路径中的空格

    我正在使用 python 进行文件操作 我的文件路径为 filepath E ABC SEM 2 testfiles all txt 当我使用 python 打开文件时 它说 IOError No such file 但是 该文件存在于驱动
  • 如何在重定向到外部页面之前在 jquery 中预加载(缓存)该页面?

    我正在做一个phonegap应用程序 我有一个 index html 页面 其中有一个重定向到网站应用程序的登录按钮 当点击登录按钮时 我想要一个加载 gif 来显示页面 正在被缓存 预加载并在完成后重定向到页面 我希望有一个示例脚本代码
  • 改变material-ui按钮的字体大小,并让按钮缩放?

    我似乎在更改 Material UI 用于 React RaishedButton 上的字体大小以及让按钮本身与其正确缩放时遇到问题
  • Visual Studio 中的静态和动态链接

    我理解静态和动态链接的概念 据了解 在Windows平台上 dll是动态库和 lib是静态库 我的困惑 我做了一个必须使用 OpenCV 库的项目 基本上 我必须使用以下 5 个 OpenCV 库 lopencv core lopencv
  • jQuery $.post 和 json_encode 返回一个带有引号的字符串

    我正在使用 jQuery 的 post 调用 它返回一个带有引号的字符串 引号是由 json encode 行添加的 如何阻止添加引号 我在 post 通话中遗漏了什么吗 post getSale php function data con
  • 检查表是否存在[重复]

    这个问题在这里已经有答案了 我有一个桌面应用程序 其中嵌入了数据库 当我执行程序时 我需要检查特定的表是否存在 如果不存在则创建它 给定我的数据库的名为 conn 的 Connection 对象 我如何检查它 DatabaseMetaDat
  • JavaScript 执行连接到 mongoHQ shell 失败

    尝试直接访问 MongoHQ gt mongo mongodb heroku email protected 10046 myapp MongoDB shell version 2 4 3 connecting to mongodb her
  • 是否可以通过编程方式清除控制台历史记录?

    使用控制台应用程序时 在某个位置输入的所有内容的历史记录Console ReadLine 被储存了 当控制台提示输入某些内容时 按向上 向下光标将滚动浏览此历史记录 并且可以通过按 F7 查看整个历史记录 使用 C 是否有办法禁用此行为或清
  • 从 YouTube 网址获取持续时间

    我正在寻找一个函数 可以从 url 中提取视频的 YouTube 持续时间 我读了一些教程但不明白 我使用网址在我的网站上嵌入视频 并且我有一个提取缩略图的功能 我只想要类似的东西来获取持续时间 这是我如何获得拇指 function get