Patrick Talmadge
Regex YouTube Parser
Over the next several days I’m going to post a series of Regex strings. These Regex strings can be used to parse input for different links. I’m using PHP in my examples (you may need to tweak the Regex to work in another language).
Today’s Regex is used to parse a string for YouTube links and extract the Video_ID. Once I have the Video_ID I’m able to create a standard embed code from nearly any YouTube URL.
Supported Links:
The following Regex supports these YouTube links and embed code snippets.
Short URL : http://youtu.be/OxWMsxa5uVk
Normal URL: http://www.youtube.com/watch?v=OxWMsxa5uVk&t=28s
HTTPS URL : https://www.youtube.com/watch?v=OxWMsxa5uVk&feature=g-logo
New Embed : <iframe width="560" height="315" src="http://www.youtube.com/
embed/OxWMsxa5uVk" frameborder="0"
allowfullscreen></iframe>
Old Embed : <object width="1280" height="720"><param name="movie"
value="http://www.youtube.com/v/OxWMsxa5uVk?
version=3&hl=en_US&rel=0"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess"
value="always"></param><embed
src="http://www.youtube.com/v/OxWMsxa5uVk?version=3&
hl=en_US&rel=0" type="application/x-shockwave-flash"
width="1280" height="720" allowscriptaccess="always"
allowfullscreen="true"> </embed></object>
I won’t spend a lot of time explaining the Regex because I’ve broken it up Regex and commented each line.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | $regexstr = '~ # Match Youtube link and embed code (?: # Group to match embed codes (?:<iframe [^>]*src=")? # If iframe match up to first quote of src |(?: # Group to match if older embed (?:<object .*>)? # Match opening Object tag (?:<param .*</param>)* # Match all param tags (?:<embed [^>]*src=")? # Match embed tag to the first quote of src )? # End older embed code group )? # End embed code groups (?: # Group youtube url https?:\/\/ # Either http or https (?:[\w]+\.)* # Optional subdomains (?: # Group host alternatives. youtu\.be/ # Either youtu.be, | youtube\.com # or youtube.com | youtube-nocookie\.com # or youtube-nocookie.com ) # End Host Group (?:\S*[^\w\-\s])? # Extra stuff up to VIDEO_ID ([\w\-]{11}) # $1: VIDEO_ID is numeric [^\s]* # Not a space ) # End group "? # Match end quote if part of src (?:[^>]*>)? # Match any extra stuff up to close brace (?: # Group to match last embed code </iframe> # Match the end of the iframe |</embed></object> # or Match the end of the older embed )? # End Group of last bit of embed code ~ix'; |
Usage Example:
This example function takes an input string and uses the above Regex to parse off the Video_ID ($1) and add it to $iframestr to create a standard embed code.
1 2 3 4 5 6 | function ParsePostYouTube($string){ $regexstr = <<REGEX FROM ABOVE>>; $iframestr = ' <p><iframe width="500" height="284" src="http://www.youtube.com/embed/$1?wmode=transparent" frameborder="0" allowfullscreen></iframe></p> '; return preg_replace($regexstr, $iframestr, $string); } |
One Response to Regex YouTube Parser
Leave a Reply Cancel reply
My Twitter
- Hanging out at a lake cabin with friends for the day. 21 hours ago
- P.S.A just because your riding a bike doesn't mean you need skin tight short and shirt. Your not racing right now. 2012/05/19
- @smarkowitz Thanks for following. 2012/05/19
- RT @phpfog: Because you asked for it.... PHP Fog now has cron support. http://t.co/sEZMDkAv Nice... Keep up the good work! 2012/05/18
- Does anyone else find it #ironic that Facebook is buy a company called Karma? http://t.co/Gjdi8Zds 2012/05/18
- Any glimmer of hope you had about your Facebook information being private died today. Facebook is now legal obligated maximize profits. 2012/05/18
- RT @CoffeeScript: Kicksend rewrote their entire web app in one month with a faster, leaner code base featuring CoffeeScript and Backbone ... 2012/05/18
- Glad to see normal investors not getting screwed by driving up $FB prices. It's already overvalued let it stabilize. 2012/05/18
- Spec changes mid sprint are always fun. 2012/05/17
- RT @newsycombinator: CSS-Only Clickjacking http://t.co/HI1Clhlo 2012/05/16
Archives
- December 2011
- October 2011
- August 2011
- June 2011
- April 2011
- March 2011
- February 2011
- December 2010
- November 2010
- October 2010
- August 2010
- June 2010
- May 2010
- April 2010
- March 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- February 2009
- January 2009
- December 2008
- November 2008
- September 2007
- July 2007
- June 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006







[...] more Regex see Regex YouTube Parser or Regex Vimeo Parser Tagged with: Flickr Embed • PHP • Regex If you [...]