首页  >  文章  >  后端开发  >  如何从 YouTube URL 中提取视频 ID?

如何从 YouTube URL 中提取视频 ID?

Barbara Streisand
Barbara Streisand原创
2024-10-31 23:04:28121浏览

How to Extract a Video ID from a YouTube URL?

Youtube API:从 URL 中提取视频 ID

简介

处理 Youtube 视频时在 Web 应用程序中,有必要从 URL 中提取视频 ID 来访问其元数据并将其嵌入。 Youtube API 没有为此任务提供直接函数,因此必须采用替代方法。

使用正则表达式

一种方法是使用正则表达式来解析URL 并识别视频 ID。这是用 PHP 编写的函数:

<code class="php">function youtube_id_from_url($url) {
    $pattern = '%^# Match any youtube URL
        (?:https?://)?  # Optional scheme. Either http or https
        (?:www\.)?      # Optional www subdomain
        (?:             # Group host alternatives
          youtu\.be/    # Either youtu.be,
        | youtube\.com  # or youtube.com
          (?:           # Group path alternatives
            /embed/     # Either /embed/
          | /v/         # or /v/
          | /watch\?v=  # or /watch\?v=
          )             # End path alternatives.
        )               # End host alternatives.
        ([\w-]{10,12})  # Allow 10-12 for 11 char youtube id.
        $%x';
    $result = preg_match($pattern, $url, $matches);
    if ($result) {
        return $matches[1];
    }
    return false;
}</code>

Youtube OEMBED 服务

另一个选择是利用 Youtube 的 OEMBED 服务,它提供有关视频的附加信息,包括其ID。使用方法如下:

<code class="php">$url = 'http://youtu.be/NLqAF9hrVbY';
var_dump(json_decode(file_get_contents(sprintf('http://www.youtube.com/oembed?url=%s&amp;format=json', urlencode($url)))));</code>

其他注意事项

  • 示例正则表达式支持视频、播放列表和频道的 URL。
  • 它可以处理各种 URL 格式,包括带有查询参数的 URL 格式。
  • 使用 OEMBED 是一种有效的替代方案,但必须从返回的 JSON 响应中提取 ID。
  • 其他编码语言将有自己的解析 URL 和提取视频 ID 的方法。

以上是如何从 YouTube URL 中提取视频 ID?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn