Más allá de utilizar una biblioteca para analizar toda la URL en el protocolo, el nombre de host, la ruta y los parámetros, se puede usar una expresión regular sencilla para extraer la información. Tenga en cuenta que la expresión regular es una solución rápida y sucia, y fallará si hay algo diferente en la URL, como si tuviera otro parámetro después del parámetro v.
url = 'http://www.youtube.com/watch?v=xxxxxxxxxxxxxxxxxxx'
video_id = url.match(/\?v=(.+)$/)[1]
Puede ir más allá con lo que hizo mediante el uso de URI :: Analizar para obtener la información solicitada.
url = 'http://www.youtube.com/watch?v=xxxxxxxxxxxxxxxxxxx'
video_id = CGI::parse(URI::parse(url).query)['v']
No necesita cargar 'net/http' para obtener acceso al análisis de URI. Simplemente 'requiere' uri'' en su lugar. –
Gracias @theTinMan - He actualizado la respuesta. – mikej