über eine Bibliothek die gesamte URL in Protokoll, Host-Namen, Pfad und Parameter zu analysieren, können Sie eine einfache Regexp verwenden, um die Informationen zu extrahieren. Beachten Sie, dass es sich bei regexp um eine schnelle und unreine Lösung handelt, die fehlschlägt, wenn die URL anders aussieht, als ob sie nach dem v-Parameter einen anderen Parameter hätte.
url = 'http://www.youtube.com/watch?v=xxxxxxxxxxxxxxxxxxx'
video_id = url.match(/\?v=(.+)$/)[1]
Sie können weiter mit dem, was Sie getan haben, indem Sie URI :: Parse verwenden, um die Abfrage Informationen zu erhalten.
url = 'http://www.youtube.com/watch?v=xxxxxxxxxxxxxxxxxxx'
video_id = CGI::parse(URI::parse(url).query)['v']
Sie müssen 'net/http' nicht laden, um auf das URI-Parsing zugreifen zu können. Nur 'verlangen 'uri'' stattdessen. –
Danke @theTinMan - Ich habe die Antwort aktualisiert. – mikej