Skip to content

Instantly share code, notes, and snippets.

@vinnycrazzy
Forked from eduardinni/youtubeID.rb
Created April 14, 2022 20:56
Show Gist options
  • Save vinnycrazzy/436143c1de1c651891e67cc3b871ebec to your computer and use it in GitHub Desktop.
Save vinnycrazzy/436143c1de1c651891e67cc3b871ebec to your computer and use it in GitHub Desktop.
Get YouTube ID from various YouTube URL using Ruby
# Get YouTube ID from various YouTube URL
# Ruby port from JavaScript version: https://gist.github.com/takien/4077195/
def get_youtube_id(url)
id = ''
url = url.gsub(/(>|<)/i,'').split(/(vi\/|v=|\/v\/|youtu\.be\/|\/embed\/)/)
if url[2] != nil
id = url[2].split(/[^0-9a-z_\-]/i)
id = id[0];
else
id = url;
end
id
end
# Tested URLs:
# url = 'http://youtube.googleapis.com/v/4e_kz79tjb8?version=3'
# url = 'https://www.youtube.com/watch?feature=g-vrec&v=Y1xs_xPb46M'
# url = 'http://www.youtube.com/watch?feature=player_embedded&v=Ab25nviakcw#'
# url = 'http://youtu.be/Ab25nviakcw'
# url = 'http://www.youtube.com/watch?v=Ab25nviakcw'
# url = '<iframe width="420" height="315" src="http://www.youtube.com/embed/Ab25nviakcw" frameborder="0" allowfullscreen></iframe>'
# url = '<object width="420" height="315"><param name="movie" value="http://www.youtube-nocookie.com/v/Ab25nviakcw?version=3&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/Ab25nviakcw?version=3&amp;hl=en_US" type="application/x-shockwave-flash" width="420" height="315" allowscriptaccess="always" allowfullscreen="true"></embed></object>'
# url = 'http://i1.ytimg.com/vi/Ab25nviakcw/default.jpg'
# url = 'https://www.youtube.com/watch?v=BGL22PTIOAM&feature=g-all-xit'
# url = 'BGL22PTIOAM'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment