Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> PHP

PHP Regex से YouTube Video ID निकालना


YouTube URLs के विभिन्न formats से Video ID निकालने के विश्वसनीय तरीके।

विधि 1: parse_url() + parse_str() (सबसे विश्वसनीय, No Regex)

<?php
function getYouTubeId($url) {
    $parsed = parse_url($url);
    
    if (!$parsed) return null;
    
    // youtube.com/watch?v=VIDEO_ID
    if (isset($parsed['query'])) {
        parse_str($parsed['query'], $query);
        if (isset($query['v'])) return $query['v'];
    }
    
    // youtu.be/VIDEO_ID
    if (isset($parsed['path'])) {
        $path = trim($parsed['path'], '/');
        if ($path) return $path;
    }
    
    // youtube.com/embed/VIDEO_ID
    if (isset($parsed['path'])) {
        $parts = explode('/', trim($parsed['path'], '/'));
        if (isset($parts[1]) && $parts[0] === 'embed') {
            return $parts[1];
        }
    }
    
    return null;
}

// Test cases
$urls = [
    'https://www.youtube.com/watch?v=VX96I7PO8YU',
    'https://youtu.be/VX96I7PO8YU',
    'https://www.youtube.com/embed/VX96I7PO8YU',
    'https://www.youtube.com/v/VX96I7PO8YU',
    'https://www.youtube.com/watch?v=VX96I7PO8YU&t=30s',
    'https://m.youtube.com/watch?v=VX96I7PO8YU',
];

foreach ($urls as $url) {
    echo $url . " → " . getYouTubeId($url) . "\n";
}

विधि 2: Regex Pattern (Single Function)

<?php
function getYouTubeIdRegex($url) {
    $pattern = '/(?:youtube(?:-nocookie)?\.com\/(?:[^\/\n\s]+\/\S+\/|(?:v|e(?:mbed)?)\/|\S*?[?&]v=)|youtu\.be\/)([a-zA-Z0-9_-]{11})/';
    
    if (preg_match($pattern, $url, $matches)) {
        return $matches[1];
    }
    return null;
}

// Test
$testUrls = [
    'https://www.youtube.com/watch?v=dQw4w9WgXcQ',
    'https://youtu.be/dQw4w9WgXcQ',
    'https://www.youtube.com/embed/dQw4w9WgXcQ',
    'https://www.youtube.com/v/dQw4w9WgXcQ',
    'https://www.youtube.com/watch?v=dQw4w9WgXcQ&feature=share',
];

foreach ($testUrls as $url) {
    echo getYouTubeIdRegex($url) . "\n"; // All output: dQw4w9WgXcQ
}

Regex Breakdown

/
  (?:                                 # Non-capturing group for URL prefixes
    youtube(?:-nocookie)?\.com\/      # youtube.com/ or youtube-nocookie.com/
    (?:                               # Various path patterns
      [^\/\n\s]+\/\S+\/|              # /user/name/ or similar
      (?:v|e(?:mbed)?)\/|             # /v/ or /embed/ or /e/
      \S*?[?&]v=                      # ?v= or &v= anywhere
    )
  |                                   # OR
    youtu\.be\/                       # youtu.be/
  )
  ([a-zA-Z0-9_-]{11})                 # Capture group: 11-char video ID
/x

विधि 3: Multiple Formats Handle करने वाला Robust Function

<?php
function extractYouTubeId(string $url): ?string {
    // Clean URL
    $url = trim($url);
    
    // Pattern 1: Standard watch URLs
    if (preg_match('/[?&]v=([a-zA-Z0-9_-]{11})/', $url, $m)) return $m[1];
    
    // Pattern 2: youtu.be short URLs
    if (preg_match('/youtu\.be\/([a-zA-Z0-9_-]{11})/', $url, $m)) return $m[1];
    
    // Pattern 3: Embed URLs
    if (preg_match('/\/embed\/([a-zA-Z0-9_-]{11})/', $url, $m)) return $m[1];
    
    // Pattern 4: /v/ URLs (old format)
    if (preg_match('/\/v\/([a-zA-Z0-9_-]{11})/', $url, $m)) return $m[1];
    
    // Pattern 5: Shorts
    if (preg_match('/\/shorts\/([a-zA-Z0-9_-]{11})/', $url, $m)) return $m[1];
    
    return null;
}

// Validate video ID format
function isValidYouTubeId(string $id): bool {
    return preg_match('/^[a-zA-Z0-9_-]{11}$/', $id) === 1;
}

URL Formats Supported

FormatExampleSupported
Standard watchyoutube.com/watch?v=VIDEO_ID✅
Shortyoutu.be/VIDEO_ID✅
Embedyoutube.com/embed/VIDEO_ID✅
Legacy /v/youtube.com/v/VIDEO_ID✅
Shortsyoutube.com/shorts/VIDEO_ID✅
With parameters...?v=ID&t=30s&list=PL...✅
Mobilem.youtube.com/watch?v=ID✅
NoCookieyoutube-nocookie.com/embed/ID✅

चेतावनी

Regex-based solutions brittle हो सकते हैं जब YouTube URL format बदलता है। parse_url() + parse_str() approach अधिक robust है क्योंकि यह URL structure पर निर्भर करता है, specific patterns पर नहीं।

  1. Vimeo बनाम YouTube: कौन सा प्लेटफॉर्म आपके लिए बेहतर है? Vimeo बनाम YouTube: कौन सा प्लेटफॉर्म आपके लिए बेहतर है?

    ऑनलाइन वीडियो देखने, फिल्में स्ट्रीम करने और अपना कंटेंट अपलोड करने के लिए कई साइट्स और सेवाएं मौजूद हैं। लेकिन वेब पर दो प्रमुख प्लेटफॉर्म्स—YouTube और Vimeo—को सबसे ज्यादा ध्यान मिलता है। हमने दोनों की समीक्षा की है ताकि आप तय कर सकें कि आपकी जरूरतों के लिए कौन सा बेहतर है। कुल मिलाकर निष्कर्ष You

  1. PowerPoint में YouTube वीडियो कैसे एम्बेड करें PowerPoint में YouTube वीडियो कैसे एम्बेड करें

    एक नीरस PowerPoint प्रेजेंटेशन के माध्यम से बैठना काफी दयनीय हो सकता है। एक प्रस्तुतकर्ता के रूप में, आप चाहते हैं कि आपके दर्शक केंद्रित रहें और आपकी स्लाइड्स का आनंद लें बजाय उन्हें उबासी लेने के। अपने PowerPoint स्लाइडशो को अधिक आकर्षक बनाने का एक तरीका अपनी प्रेजेंटेशन में YouTube वीडियो जोड़ना

  1. WhatsApp पर YouTube वीडियो कैसे शेयर करें WhatsApp पर YouTube वीडियो कैसे शेयर करें

    यह लेख WhatsApp पर YouTube वीडियो शेयर करने, WhatsApp स्टेटस पर, और लिंक के बिना वीडियो शेयर करने का विस्तृत गाइड है। चर्चा की गई सबसे सीधी विधियां उपलब्ध हैं, और आपको इसे हासिल करने में मदद के लिए अतिरिक्त सॉफ्टवेयर डाउनलोड करने की भी आवश्यकता नहीं होगी। ये Android या iOS पर WhatsApp स्टेटस पर YouT