>  기사  >  백엔드 개발  >  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 URL에서 동영상 ID 추출

코드에서 YouTube 동영상 URL로 작업할 때 식별을 위해 동영상 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 서비스도 제공합니다. 유튜브 URL. 다만, 본 서비스를 통해서는 동영상 ID에 직접 접근할 수 없습니다.

Oembed 서비스를 이용하면 제목, 작가, 썸네일 등의 정보를 얻을 수 있습니다. 이는 YouTube URL을 확인하거나 기타 관련 세부정보를 추출하는 데 유용할 수 있습니다.

<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으로 문의하세요.