kylejginavan / youtube_it

An object-oriented Ruby wrapper for the YouTube GData API
http://groups.google.com/group/ruby-youtube-library
595 stars 223 forks source link

OpenURI::HTTPError: 400 Bad Request #224

Closed masterkain closed 4 years ago

masterkain commented 10 years ago

Not sure what's going on, that appears to be a valid video source. Maybe rate limiting kicking in, although I just did few requests. Works for other videos.

2.1.2 :001 > source = "https://www.youtube.com/watch?v=Gye8ukFO-9s"
 => "https://www.youtube.com/watch?v=Gye8ukFO-9s" 
2.1.2 :002 > client = YouTubeIt::Client.new
 => #<YouTubeIt::Client:0x00000104f9fe20> 
2.1.2 :003 > client.video_by(source)
OpenURI::HTTPError: 400
    from /Users/kain/.rvm/gems/ruby-2.1.2/gems/youtube_it-2.1.1/lib/youtube_it/parser.rb:8:in `rescue in initialize'
    from /Users/kain/.rvm/gems/ruby-2.1.2/gems/youtube_it-2.1.1/lib/youtube_it/parser.rb:5:in `initialize'
    from /Users/kain/.rvm/gems/ruby-2.1.2/gems/youtube_it-2.1.1/lib/youtube_it/client.rb:95:in `new'
    from /Users/kain/.rvm/gems/ruby-2.1.2/gems/youtube_it-2.1.1/lib/youtube_it/client.rb:95:in `video_by'

Asking via browser at the same time appears fine: http://gdata.youtube.com/feeds/api/videos/Gye8ukFO-9s http://gdata.youtube.com/feeds/api/videos/Gye8ukFO-9s?v=2

masterkain commented 10 years ago

The problem is that the gem erases -9s from the url. The final youtube_it request is: http://gdata.youtube.com/feeds/api/videos/Gye8ukFO?v=2

tmnsun commented 10 years ago

This bug already fixed by this commit but version of youtube_it gem don't bumped since november 2013, so you need to use latest github version:

gem 'youtube_it', github: 'kylejginavan/youtube_it'