I am coding a functionality that allows users to enter a Youtube video URL. I would like to extract the video ID from these urls.
Does Youtube API support some kind of function where I pass the link and it gives the video ID in return. Or do I have to parse the string myself?
I am using PHP ... I would appreciate any pointers / code samples in this regard.
Thanks
Here is an example function that uses a regular expression to extract the youtube ID from a URL:
/** * get youtube video ID from URL * * @param string $url * @return string Youtube video id or FALSE if none found. */ 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; } echo youtube_id_from_url('http://youtu.be/NLqAF9hrVbY'); # NLqAF9hrVbY
It's an adoption of the answer from a similar question.
It's not directly the API you're looking for but probably helpful. Youtube has an oembed service:
$url = 'http://youtu.be/NLqAF9hrVbY'; var_dump(json_decode(file_get_contents(sprintf('http://www.youtube.com/oembed?url=%s&format=json', urlencode($url)))));
Which provides some more meta-information about the URL:
object(stdClass)#1 (13) { ["provider_url"]=> string(23) "http://www.youtube.com/" ["title"]=> string(63) "Hang Gliding: 3 Flights in 8 Days at Northside Point of the Mtn" ["html"]=> string(411) "<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/NLqAF9hrVbY?version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/NLqAF9hrVbY?version=3" type="application/x-shockwave-flash" width="425" height="344" allowscriptaccess="always" allowfullscreen="true"></embed></object>" ["author_name"]=> string(11) "widgewunner" ["height"]=> int(344) ["thumbnail_width"]=> int(480) ["width"]=> int(425) ["version"]=> string(3) "1.0" ["author_url"]=> string(39) "http://www.youtube.com/user/widgewunner" ["provider_name"]=> string(7) "YouTube" ["thumbnail_url"]=> string(48) "http://i3.ytimg.com/vi/NLqAF9hrVbY/hqdefault.jpg" ["type"]=> string(5) "video" ["thumbnail_height"]=> int(360) }
But the ID is not a direct part of the response. However it might contain the information you're looking for and it might be useful to validate the youtube URL.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With