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

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

DDD
DDD原创
2024-11-01 20:35:30649浏览

How Can I Extract a YouTube Video ID from a URL?

从 YouTube 网址中提取视频 ID

在代码中使用 YouTube 视频网址时,通常需要提取视频 ID 进行识别或加工。虽然 YouTube API 没有直接提供执行此操作的函数,但您可以使用简单的技术来解析 URL 并检索 ID。

使用正则表达式解析 URL

一种常见的方法是使用正则表达式从 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 URL 作为输入,并将其与捕获视频 ID 的正则表达式进行匹配。该模式确保它与不同格式的有效 YouTube URL 匹配。

示例用法

要使用此功能,您可以提供 YouTube URL 并检索提取的视频 ID :

<code class="php">echo youtube_id_from_url('http://youtu.be/NLqAF9hrVbY'); # NLqAF9hrVbY</code>

替代方法:YouTube Oembed 服务

虽然与 API 没有直接关系,但 YouTube 还提供了一个 oembed 服务,该服务提供有关某个内容的更多元信息YouTube 网址。但是,无法通过此服务直接获取视频 ID。

通过使用 oembed 服务,您可以获得标题、作者、缩略图等信息。这对于验证 YouTube 网址或提取其他相关详细信息非常有用。

<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 中提取 YouTube 视频 ID?的详细内容。更多信息请关注PHP中文网其他相关文章!

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