Skip to content

Instantly share code, notes, and snippets.

@totoprayogo1916
Forked from ghalusa/youtube_id_regex.php
Last active December 1, 2021 04:34
Show Gist options
  • Save totoprayogo1916/7e0706d6932b832fdc79c6a9d6d84cfd to your computer and use it in GitHub Desktop.
Save totoprayogo1916/7e0706d6932b832fdc79c6a9d6d84cfd to your computer and use it in GitHub Desktop.
Extract the YouTube Video ID from a URL in PHP
<?php
// Here is a sample of the URLs this regex matches: (there can be more content after the given URL that will be ignored)
// http://youtu.be/dQw4w9WgXcQ
// http://www.youtube.com/embed/dQw4w9WgXcQ
// http://www.youtube.com/watch?v=dQw4w9WgXcQ
// http://www.youtube.com/?v=dQw4w9WgXcQ
// http://www.youtube.com/v/dQw4w9WgXcQ
// http://www.youtube.com/e/dQw4w9WgXcQ
// http://www.youtube.com/user/username#p/u/11/dQw4w9WgXcQ
// http://www.youtube.com/sandalsResorts#p/c/54B8C800269D7C1B/0/dQw4w9WgXcQ
// http://www.youtube.com/watch?feature=player_embedded&v=dQw4w9WgXcQ
// http://www.youtube.com/?feature=player_embedded&v=dQw4w9WgXcQ
// It also works on the youtube-nocookie.com URL with the same above options.
// It will also pull the ID from the URL in an embed code (both iframe and object tags)
preg_match("#(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=v\/)[^&\n]+(?=\?)|(?<=v=)[^&\n]+|(?<=youtu.be/)[^&\n]+#", $url, $match);
$youtube_id = $match[0];
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment