Active Youtube


ActiveYoutube is a gem to access YouTube API using ActiveResource. This gem wraps code from our previous post on extending ActiveResource to access YouTube. There have been minor changes, which are :
  1. Namespace in class names: Video, User, StandardFeed and Playlist classes have been moved to "Youtube" module, to prevent any conflicts with your ActiveRecord models.
  2. CustomMethods related change: In last version, only response from "find" was converting "entry" object to array of "entry" object. Now, the same behavior is implemented for custom http calls like Video.find().get(:comments)
  3. Small patch for better namespacing: Its basically some code from the rails trunk on ActiveResource, for better handling of namespaces while creating ActiveResource objects.

Gem Installation:

1
2

sudo gem install active_youtube

Example Usage:

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
30
31
32

#### Video
  ## search for videos on 'ruby'
  search = Youtube::Video.find(:first, :params => {:vq => 'ruby', :"max-results" => '5'})
  puts search.entry.length

  ## video information of id = ZTUVgYoeN_o
  vid = Youtube::Video.find("ZTUVgYoeN_o")
  puts vid.group.content[0].url

  ## video comments
  comments = Youtube::Video.find_custom("ZTUVgYoeN_o").get(:comments)
  puts comments.entry[0].link[2].href

  ## searching with category/tags
  results = Youtube::Video.search_by_tags("Comedy")
  puts results[0].entry[0].title

#### STANDARDFEED
  ## retrieving standard feeds
  most_viewed = Youtube::Standardfeed.find(:most_viewed, :params => {:time => 'today'})
  puts most_viewed.entry[0].group.content[0].url

#### USER
  ## user's profile - guthrie
  user_profile = Youtube::User.find("guthrie")
  puts user_profile.link[1].href

#### PLAYLIST
  ## get playlist - multiple elements in playlist
  playlist = Youtube::Playlist.find("EBF5D6DC4589D7B7")
  puts playlist.entry[0].group.content[0].url
Filed in our tools ruby
Tagged as    
Posted on 12 February
156 comment Bookmark   AddThis Social Bookmark Button Updated on 25 June
Comments

Leave a response

  1. Edgar J. SuárezFebruary 12, 2008 @ 07:53 PM

    Thank you for doing it simple. :)

  2. enrico jenkoApril 17, 2008 @ 07:24 PM

    NameError in Rap starsController#search

    uninitialized constant RapStarsController::Youtube

    RAILS_ROOT: C:/rails_apps/hardestout Application Trace | Framework Trace | Full Trace

    C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:478:in `const_missing’ app/controllers/rap_stars_controller.rb:24:in `search’

    C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:478:in `const_missing’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/base.rb:1158:in `send’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/base.rb:1158:in `perform_action_without_filters’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/filters.rb:697:in `call_filters’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/filters.rb:689:in `perform_action_without_benchmark’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue’ C:/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/rescue.rb:199:in `perform_action_without_caching’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/caching.rb:678:in `perform_action’ C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache’ C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/query_cache.rb:8:in `cache’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/caching.rb:677:in `perform_action’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/base.rb:524:in `send’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/base.rb:524:in `process_without_filters’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/filters.rb:685:in `process_without_session_management_support’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/session_management.rb:123:in `process’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/base.rb:388:in `process’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:171:in `handle_request’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:115:in `dispatch’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:126:in `dispatch_cgi’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:9:in `dispatch’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel/rails.rb:76:in `process’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel/rails.rb:74:in `synchronize’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel/rails.rb:74:in `process’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:159:in `process_client’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:158:in `each’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:158:in `process_client’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:285:in `run’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:285:in `initialize’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:285:in `new’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:285:in `run’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:268:in `initialize’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:268:in `new’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:268:in `run’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel/configurator.rb:282:in `run’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel/configurator.rb:281:in `each’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel/configurator.rb:281:in `run’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/mongrel_rails:128:in `run’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel/command.rb:212:in `run’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/mongrel_rails:281 C:/ruby/bin/mongrel_rails:19:in `load’ C:/ruby/bin/mongrel_rails:19

    C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:478:in `const_missing’ app/controllers/rap_stars_controller.rb:24:in `search’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/base.rb:1158:in `send’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/base.rb:1158:in `perform_action_without_filters’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/filters.rb:697:in `call_filters’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/filters.rb:689:in `perform_action_without_benchmark’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue’ C:/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/rescue.rb:199:in `perform_action_without_caching’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/caching.rb:678:in `perform_action’ C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache’ C:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.0.2/lib/active_record/query_cache.rb:8:in `cache’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/caching.rb:677:in `perform_action’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/base.rb:524:in `send’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/base.rb:524:in `process_without_filters’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/filters.rb:685:in `process_without_session_management_support’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/session_management.rb:123:in `process’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/base.rb:388:in `process’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:171:in `handle_request’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:115:in `dispatch’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:126:in `dispatch_cgi’ C:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/dispatcher.rb:9:in `dispatch’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel/rails.rb:76:in `process’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel/rails.rb:74:in `synchronize’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel/rails.rb:74:in `process’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:159:in `process_client’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:158:in `each’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:158:in `process_client’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:285:in `run’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:285:in `initialize’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:285:in `new’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:285:in `run’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:268:in `initialize’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:268:in `new’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel.rb:268:in `run’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel/configurator.rb:282:in `run’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel/configurator.rb:281:in `each’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel/configurator.rb:281:in `run’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/mongrel_rails:128:in `run’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/lib/mongrel/command.rb:212:in `run’ C:/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/mongrel_rails:281 C:/ruby/bin/mongrel_rails:19:in `load’ C:/ruby/bin/mongrel_rails:19

    Request

    Parameters:

    None

  3. forumApril 25, 2008 @ 05:45 AM

    very good informative. thanks so much.

  4. BAApril 29, 2008 @ 04:40 PM

    Nice gem, Though i’m 100% new to rails so i not quite sure how to use it yet.

  5. YoutubeMay 07, 2008 @ 07:56 PM

    Simple and clear defitinion and sample codes thank you
    komik videolar

  6. yutakaMay 17, 2008 @ 01:59 PM

    Active-Youtube is useful and nice.

    But it output warning message that is “Gems/1.8/gems/active_youtube-1.0.0/lib/patch.rb:30: warning: already initialized constant Rating”.

    I guess that patch.rb:30 should replace to the following code.

    namespaces = module_names[0, module_names.size].map do |module_name|

    Is it correct?

  7. itsalljustarideMay 26, 2008 @ 01:32 PM

    In the words of Ted Nugent, “this is just what the doctor ordered”.

    Thanks much.

  8. itsalljustarideMay 26, 2008 @ 07:40 PM

    Also, I too am getting the warning that yutaka is along with a few other similar ones about “Group”, “Link”, “Entry”, etc. It doesn’t seem to be breaking anything, just throwing a warning.

  9. itsalljustarideMay 28, 2008 @ 04:07 AM

    After applying utaka’s code change I no longer get the “initialized constant” errors. I think I read somewhere in the usage examples that GCode (or at least YouTube’s) API reports back arrays that start the index at 1 instead of 0, so the “-1” in the code was borking things.

    So that fixed it for me at least.

    However, I have another problem, that may not be with Active YouTube, but rather with my limited understanding of the way the YT API works. I’m trying to get the video type (as the YT API docs recommend), but calling “vidtype = entry.group.content.first.type” seems to conflict with some in-built ruby method for objects, because it throws me a message that says, “warning: Object#type is deprecated; use Object#class” in the console. Am i misunderstanding how this whole thing works?

    For instance, in a line like this:

    <media:content />

    I can get everything but the “type” and “yt:format” properties. I’m not sure how to go about dealing with the “yt:format” one, but I think the “type” property is just conflicting with a standard ruby method.

    Sorry if I’m being a pain. The gem is great, I’m just stuck on a couple little tidbits :)

  10. yutakaMay 28, 2008 @ 03:27 PM

    Hi, itsalljustaride

    You can get the type by the following code.

    entry.group.content.attributes["type"]
  11. hepimiz birimiz içinJuly 01, 2008 @ 11:24 PM

    Also, I too am getting the warning that yutaka is along with a few other similar ones about “Group”, “Link”, “Entry”, etc. It doesn’t seem to be breaking anything, just throwing a warning.

  12. Ozel DedektifJuly 19, 2008 @ 07:18 AM

    I understand and very good code

  13. ana gomezJuly 20, 2008 @ 10:39 PM

    Great code

  14. AnarşistJuly 26, 2008 @ 08:24 AM

    Looks very interesting, thanks for article.

  15. AnarşistJuly 26, 2008 @ 08:29 AM

    Looks very interesting, thanks for article.

  16. isoAugust 20, 2008 @ 01:31 PM

    thank you

  17. Iso Kalite BelgesiAugust 20, 2008 @ 01:50 PM

    thank you very much..

  18. mersin sohbetAugust 25, 2008 @ 05:39 PM

    thank you. l’m love you tech :)

  19. DNewAugust 28, 2008 @ 10:10 PM

    For newbies to rails it would be nice to see a simple tutorial for this gem. After installing the gem successfully, i am not sure what in addition to say putting <% results = Video.search_by_tags(“Comedy”) puts results0.entry0.title %>

    in my application layout file (as a simple test) i need to do.

    i know this is prob rails 101 …trying to learn as i go … thanks for the effort creating this.

  20. DNewAugust 29, 2008 @ 05:19 PM

    Ahh solved my issue .. make sure and restart server after adding gem…. basic ror knowledge …but easy trip up if you’re new.

  21. dnewSeptember 17, 2008 @ 07:02 AM

    Is there a way to make this work with the will_paginate gem? i tried but seemed to run into road block … undefined method `paginate’ for Youtube::Video:Class

    would love to find easy way to paginate results….

  22. DedektifSeptember 19, 2008 @ 09:09 AM

    thank you very much

  23. KaliteSeptember 19, 2008 @ 09:48 AM

    thank you very much

  24. Driver downloadSeptember 20, 2008 @ 07:16 AM
  25. Kevin ReaganSeptember 30, 2008 @ 04:34 PM

    This is fantastic…if you’re running Rails 2.0.2. Unfortunately, 2.1.1 breaks this gem.

    See here: http://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/1053-removed-http-header-accept-by-default

    Hopefully the author (anybody else?) can monkey patch the gem so we 2.1.1 users can use it!? Any advice?

    Great work, and thank you.

  26. Kevin ReaganSeptember 30, 2008 @ 04:55 PM

    How to make it work with Rails 2.1.1

    create connection.rb file in your lib directory with this code:

    module ActiveResource # overrides the default ActiveResource Connection Class build_request_headers method because of this error: # http://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/1053-removed-http-header-accept-by-default class Connection def build_request_headers(headers, http_method=nil) # authorization_header.update(default_header).update(headers).update(http_format_header(http_method)) authorization_header.update(default_header).update(headers) end end end

    require that file in your envrionment.rb file rock-and-roll!

  27. danielOctober 02, 2008 @ 05:55 AM

    thanks kevin.

    make sure to do the require for the connection.rb at the end of the environment.rb file.

  28. dnewOctober 15, 2008 @ 12:52 AM

    how would one use will_paginate with this plug? i tried unsuccessfully to just use Youtube::Video.paginate(...) i get undefined method error.

    is it simple/possible?

  29. AdamJanuary 14, 2009 @ 05:31 AM

    hi there,

    where would you put this code in?under the app/controllers folder? or..?

    i’m really new to Ruby but i also really really need to use this API for my project.. will appreciate any help that can be rendered…

  30. AndyFebruary 22, 2009 @ 10:26 PM

    Adam,

    Yes, put it in a controller.. Refer to the code contained within the controller from a view.

    —Andy

  31. PaxaMarch 14, 2009 @ 02:12 PM

    I’ve got “Failed with 406 Not Acceptable” on Youtube::Video.find(:first, :params => {:vq => ‘ruby’}) How to fix ?

  32. AllwasybeginnerMarch 16, 2009 @ 10:54 AM

    Hi all great stuff even for a Beginner , I run also in Failed with 406 as well as send! issue ruby 1.8.6 doesn’t seem to have send! . I got it running . I created a small tutorial what I did allwaysbeginner.wordpress.com .

  33. Personal finance blogMarch 23, 2009 @ 12:14 AM

    Nice gem, Though i’m 100% new to rails so i not quite sure how to use it yet.

  34. AllwasybeginnerApril 06, 2009 @ 07:27 PM

    Tons of thanks Allwasybeginner!

    As well as Kevin and the authors. Open source is a beautiful thing.

  35. OnlineapothekeApril 16, 2009 @ 04:40 PM

    Got it running! Thank you for this interesting article.

  36. WendyMay 01, 2009 @ 03:06 PM

    I’m not an expert but this gem is a really brilliant (that’s the right word here ;)) piece of coding work, both clean and efficient! Thanks for displaying this work as an example of how a properly coded gem should look like! Wendy Buchanan, Real Estate Auctions

  37. photos amateursMay 10, 2009 @ 07:46 PM

    Got it ! Thx for sharing

  38. ShirtsJune 28, 2009 @ 09:58 AM

    Thanks for the detailed code explanations. Ist’s very useful in this manner.

  39. TurizmJuly 15, 2009 @ 08:14 AM

    Thanks, Active-Youtube is useful and nice.

  40. KimAugust 14, 2009 @ 03:57 AM

    I am trying to search and get back a list of results based on a query. I tried: search = Youtube::Video.find(:first, :params => {:vq => ‘query’, :”max-results” => ‘5’}) serach.each_with_index do |result, i| result.entry[i].title end

    and various others but always only get back one result.

    Any Suggestions?

    Thanks

  41. KimAugust 14, 2009 @ 04:14 AM

    Sorry that was a typo above. I tried find :all too!

  42. HospedagemSeptember 11, 2009 @ 09:06 PM

    Very good informative. thanks so much for sharing.

  43. SrikanthSeptember 15, 2009 @ 10:46 AM

    How it will work with rails 2.3.2 ?? Im still getting this error:

    ActiveResource::ClientError in YoutubeController#index

    Failed with 406 Not Acceptable

    I have added the file connection.rb in lib, & called it from environment.rb

    Please Help

  44. Gift BoxesOctober 08, 2009 @ 02:30 AM

    I’m not an expert but this gem is a really brilliant (that’s the right word here ;)) piece of coding work, both clean and efficient! Thanks for displaying this work as an example of how a properly coded gem should look like! Wendy Buchanan, Real Estate Auctions

    I agree with this idea!

  45. antique engagement ringsDecember 03, 2009 @ 11:53 PM

    I am just new to your blog and just spent about 1 hour and 30 minutes lurking and reading. I think I will frequent your blog from now on after going through some of your posts. I will definitely learn a lot from them. Regards – Gerry

  46. clasamenteJanuary 16, 2010 @ 09:41 AM

    Echoing the previous comments, this is by far the best quickstart I’ve been able to find about accessing YouTube API using ActiveResource. Thank you very much.

  47. dirty t shirtsMay 29, 2010 @ 04:34 AM

    This is what makes the web so great. We can find so much info on things we like.

  48. nadeem jeeJune 02, 2010 @ 07:44 PM

    But it happened that just then Lorenzo wished to send a present to Ludovico Sforza, the Duke of Milan, and the gift he chose was a marvellousCat Supplies musical instrument which Leonardo had just finished.

  49. cheap prada sneakersJune 08, 2010 @ 11:34 AM

    Good article. Thank you so much to share!

  50. Pinetop Cabin RentalsJune 08, 2010 @ 10:13 PM

    Interesting article on active youtube ..Thanks Pinetop Cabin Rentals

  51. video streaming June 10, 2010 @ 05:10 AM

    Is active youtube going to make any difference in the real time communication of the ones who are really enjoy networking with social media and video publishing websites.

  52. tampa custom home builderJune 17, 2010 @ 11:33 PM

    This is a great blog. I have bookmarked it and hope for more. I enjoyed it!

  53. shirtsJune 17, 2010 @ 11:33 PM

    This is what makes the web so great. We can find so much info on things we like.

  54. Reasons of divorceJune 27, 2010 @ 06:09 AM

    Let us all spread this word around the world that internet is itself more powerful than a 5min TV coverage program. It will of course help everyone out ;)

  55. Pariuri SportiveJune 27, 2010 @ 08:02 AM

    I’d just like to say thank you for writing this straight forward tutorial, help codes. This is the first tutorial that I have came across that makes perfect sense and allowed me to get started!

  56. Pandora CharmsJuly 02, 2010 @ 01:07 AM

    Thanks for the tutorial. I have added this website to my list of favorite programming tutorial website. Love to read more, keep writing more great articles.

  57. Acronym ListJuly 07, 2010 @ 01:49 AM

    The Acronym List is a searchable database of over 8 million acronyms, abbreviations and meanings. Covers: business, international, chat, organizations, common acronyms, computers, science, technology, government, telecommunications, and military acronyms.

  58. vehicle transportJuly 10, 2010 @ 02:50 AM

    Namespace in class names: Video, User, StandardFeed and Playlist classes have been moved to “Youtube” module, to prevent any conflicts with your ActiveRecord models.

  59. spray foam insulationJuly 11, 2010 @ 05:05 PM

    thanx for the explanation

  60. car loan modificationJuly 27, 2010 @ 09:28 PM

    it happened that just then Lorenzo wished to send a present to Ludovico Sforza, the Duke of Milan, and the gift he chose was a marvellousCat Supplies musical instrument which Leonardo had just finished.

  61. Juicy CoutureAugust 03, 2010 @ 07:39 AM

    Shop the latest styles juicy couture handbags, juicy couture tracksuit. Juicy Couture

  62. Internet Marketing CompaniesAugust 04, 2010 @ 07:53 AM

    Good posting on “Active Youtube”

  63. error fixAugust 04, 2010 @ 02:25 PM

    CustomMethods related change: In last version, only response from “find” was converting “entry” object to array of “entry” object. Now, the same behavior is implemented for custom http calls like Video.find().get(:comments)

  64. shower door brooklynAugust 06, 2010 @ 08:58 PM

    Very good coding.

  65. Feiertag 2012August 07, 2010 @ 10:27 PM

    Wow, thanks for this hints – havn’t heard of that before, really!

  66. dressAugust 10, 2010 @ 03:50 AM

    autoradio navigation, car dvd gps navigation, sat navigation stereo, OEM Factory headunit for all car makes Higher quality car electronics from Qualir Car DVD Player

  67. juicy coutureAugust 11, 2010 @ 06:42 AM

    Shop the latest styles juicy couture handbags, juicy couture tracksuit. Juicy Couture

  68. Pole barn pricesAugust 11, 2010 @ 01:05 PM

    Thanks for displaying this work as an example of how a properly coded gem should look like!

  69. Frank WangAugust 17, 2010 @ 08:05 AM

    Very good Code, Thanks very much.

  70. Info PoolAugust 20, 2010 @ 07:25 AM

    Very informative post! Thanks for sharing.

  71. bubblesAugust 21, 2010 @ 02:19 PM

    This is a great blog. I have bookmarked it and hope for more. I enjoyed it!

  72. yeni oyunlarAugust 21, 2010 @ 02:22 PM

    thanks for this hints

  73. komik videoAugust 24, 2010 @ 04:47 PM

    Very informative post! Thanks for sharing.

  74. Homes for sale in new bern ncAugust 27, 2010 @ 04:03 PM

    Thanks! This has helped me out a lot! I love your tutorials

  75. tiffanyAugust 28, 2010 @ 08:49 AM

    it’s very useful,thanks so much for sharing

  76. gucciSeptember 15, 2010 @ 07:58 AM

    Your blog content is specifically what I necessary, I like your blogging site, I sincerely hope your blog site might be a rapid enhance in customers, I will help you market your blog page and start looking forward for your webpage constantly updated and turn out to be alot more to the even more rich and colorful

  77. gucciSeptember 15, 2010 @ 08:03 AM

    I would like to thank you for the efforts you have made in writing this post. I am hoping the same best work from you in the future as well.

  78. NewgizzSeptember 17, 2010 @ 10:13 PM

    Very informative post! Thanks

  79. nikeSeptember 27, 2010 @ 03:34 PM

    mason0507

  80. i wanted you lyricsSeptember 27, 2010 @ 04:45 PM

    nice information thanks from i wanted you lyrics and lyrics group.

  81. Dessert au chocolatOctober 04, 2010 @ 01:37 PM

    Nice work !

  82. teeheeOctober 05, 2010 @ 08:27 AM

    How to get the video description?

  83. nikeOctober 09, 2010 @ 03:08 AM

    maosm0507

  84. Harley Motors ReviewsOctober 10, 2010 @ 01:40 PM

    They all have an all time low. Slightly bruised and broken, from the head on collision.

  85. how to grow taller 4 idiotsOctober 11, 2010 @ 05:39 AM

    Ahh solved my issue .. make sure and restart server after adding gem…. basic ror knowledge …but easy trip up if you’re new.

  86. Odzyskiwanie danych WrocławOctober 12, 2010 @ 02:13 PM

    I didn`t know that it can be so simple.

  87. HenningOctober 27, 2010 @ 03:56 PM

    thanks for the entry. very informative thanks!

  88. luckygirlNovember 01, 2010 @ 05:21 PM

    Pretty good post. I just found your site and wanted to say that I have really enjoyed browsing your posts. In any case I’ll be subscribing to your blog and I hope you post again soon! Fast Cash | Line of Credit

  89. CazareNovember 02, 2010 @ 11:25 AM

    Pretty good tutorial, really helpful, I didn`t know that it can be so simple. Thanks a lot,

  90. wolanlwNovember 03, 2010 @ 07:29 AM

    Caring for long hair extensions is a continuing dress up gamesdress up games. If you have dress up games for girls wefts dress up games for girlschances are that they will be reused many times and bridesmaid dresses.bridesmaid dresses Consider this prior to Flower Girl Dresses asFlower Girl Dresses you might wish to go a little longer so they won’prom dresst be too short after trimming and prom dress.

  91. dwNovember 03, 2010 @ 08:10 AM

    very informative post . thnx الجياش

  92. dwNovember 03, 2010 @ 08:21 AM

    Beautiful and attractive site. الجياش

  93. replicawatch4uNovember 05, 2010 @ 01:08 PM

    I absolutely agree with you and thank you for pointing out several relevant and important examples. Several blog contributors have written extensively on this topic. Thanks for these sharing.

  94. alomdaNovember 07, 2010 @ 08:44 AM

    good informative article. ty! برامج الجياش

  95. ugg bootsDecember 14, 2010 @ 10:03 AM

    They are a great deal lighter in weight than the Keens, but the sole feels very sturdy (unlike Rocket Dogs). There is not much arch support, just a little more than totally flat, & the insoles seem to be glued in. If the arches don’t give me enough support, I will end up having to rip out the insoles to put my orthotics in there, which I have done before with other shoes that have glued insoles. Overall, I think they are great so far & gave them 4 stars instead of 5 because of the lack of arch support & the glued insole. All shoes should have removable insoles!I was a bit afraid of those, that they might really not be my style. I just received them, and no way are they going back. The fuzzy soft inside is just unequaled, comfort and dynamite look…together? Unheard of. It’s a gorgeous and quality boot, well worth the price. All this on top of Zappos outstanding and fast service makes every purchase pure pleasure. Fit on the boot is right on with excellent arch support.

  96. Regim HotelierDecember 15, 2010 @ 11:18 AM

    Thanks for the detailed code, I’m new to rails. I will try it.

  97. egfDecember 28, 2010 @ 09:18 AM

    How long has this blog been around?

  98. John Jensen December 30, 2010 @ 08:31 PM

    Has Youtube modified access to their api somehow? I’ve been having problems using ActiveYoutube lately. Thanks J.J. @ repossessed cars for sale insider tips – repossessed cars basics

  99. I find that the wool in the heel &UGG Australia is a brand that is all about luxury and comfort for everyday life.

  100. Auston321January 11, 2011 @ 07:50 AM

    This is an informative site. I would like to surf it all for taking into consideration 70-542 and its associated statements. Because 70-541 is very illustrious and in command now a days. So I am incisive for high-quality information about 70-543 and 70-544 at every site. And I should get fine resource soon.

  101. MicrogreffeJanuary 11, 2011 @ 09:14 AM

    Works on first try for me, really thanks for it !

  102. BurnerJanuary 13, 2011 @ 02:46 PM

    I appreciate this awful post. Very innovative and interesting. Keep sharing. Best regards, Katya, CEO of cdburner

  103. Juicy JewelryJanuary 20, 2011 @ 06:13 AM

    Nice post.Thank you for taking the time to publish this information very useful!I’m still waiting for some interesting thoughts from your side in your next post thanks

  104. Nes GatorFebruary 03, 2011 @ 06:59 AM

    Very informative post. Thanks for sharing this.

  105. cornerFebruary 04, 2011 @ 08:13 PM

    tanks for the code. it’s make me fix with it cancer info

  106. postersFebruary 08, 2011 @ 09:24 PM

    Video, User, StandardFeed and Playlist classes have been moved to “Youtube” module, to prevent any conflicts with your ActiveRecord models.

  107. Child Behavior ProblemsFebruary 16, 2011 @ 06:09 AM

    Hi,This one is great and is really a good post . I think it will help me a lot in the related stuff and is very much useful for me.Very well written I appreciate & must say good job..

  108. CampionateFebruary 18, 2011 @ 08:48 AM

    I`m very glad to be here on your site, it`s my fisrt time here but i have to say that your information posted on this site is very helpfull to me, the more you learn more about the smarter you become.What you`ve wrote here is very true and can be very usefull for the readers of this site.

  109. Jimmy Choo and lovely!

  110. lvMarch 01, 2011 @ 02:28 AM

    xiaoru

  111. hospedagemMarch 01, 2011 @ 07:51 PM

    I was impressed with the quality of this post. thank you

  112. RuggyMarch 04, 2011 @ 01:44 PM
  113. EHRMarch 17, 2011 @ 07:06 AM

    Thanks for that important information, its really helpful.

  114. Yonans reisorganisatiesMarch 17, 2011 @ 02:06 PM

    I tried to run the gem command at a CentOs server; but it doesn’t exist. Does anybody know how to install it?

    regards

  115. essay papersMarch 22, 2011 @ 11:36 AM

    This was a fantastic article. I really appreciate everything.

  116. abs trainerMarch 26, 2011 @ 02:31 PM

    I admit, I have not been on this blog in a long time, however it was joy to find it again. It is such an important topic and ignored by so many, even professionals! I thank you for helping to make people more aware of these issues. Just great stuff as per usual!

  117. pariuri sportiveMarch 30, 2011 @ 07:49 AM

    Youtube is the best. i love it

  118. free international datingApril 18, 2011 @ 01:42 PM

    sdvcsd

  119. صبايا العربApril 19, 2011 @ 01:51 AM

    Thank you for your excellent article and wonderful thank you for the valuable information منتديات بنات ملتقى صبايا العرب

  120. Menser LornApril 24, 2011 @ 03:31 PM

    I think it will help me a lot in the related stuff and is very much useful for me.Very well written I appreciate & must say good job.. premium wordpress themes

  121. Мне на кризис наплевать, вылез в топе гоу бухать

  122. solo hdApril 29, 2011 @ 01:04 AM

    This solo hd of headset timbre and its appearance style are very alike—again, very thin. beats solo hd voice very open seem a bit too thin, Fabulous Monster Limited Edition GOLD low frequency partial hard, descend not beautiful but speed feeling good. discount solo hd hf performance is good, accurate and not mellow, intermediate frequency performance is regular. Overall Classic Monster Powered Isolatio black voice more features, more suitable for listening to electronic music or part of the pop.

  123. SirtoApril 29, 2011 @ 04:00 PM

    I think it will help me a lot in the related stuff and is very much useful for me.Very well written I appreciate & must say good job.. download water for elephants download fast five

  124. implants capillairesMay 02, 2011 @ 07:51 PM

    implants capillaires

  125. dioMay 12, 2011 @ 06:13 PM

    Your blog provided us with valuable information to work with. Each & every tips of your post are awesome. Thanks a lot for sharing. Keep blogging. hvac los angeles

  126. iballMay 12, 2011 @ 06:14 PM

    I found your website perfect for my needs. It contains wonderful and helpful posts. I have read most of them and got a lot from them. To me, you are doing the greReally i am impressed from this post..Steiner Ranch

  127. AmandaMay 16, 2011 @ 07:19 AM

    There are some very great sources here and thank you for being so kind to post them here.

    mediahuset nova as klage

  128. rimaMay 18, 2011 @ 11:21 AM

    Recently I came across your site & reading through all your posts I find really very new & valuable information here. I was looking or this like information only & today i found here. I will like to follow you to read some new info here. Thanks for sharing. natural pcos

  129. coach pursesMay 20, 2011 @ 06:29 AM

    Mr Coates coach purses is the longest U.S. market popular with one of the most successful leather brand. Mr Coates coach purses store represents the most admirable American fashion innovative style and traditional skills . Mr Coates coach bags have durable quality and exquisite technology, Conspicuous Coach Heels in the female consumers have good reputation. Welcome to our shop Elegant Coach Purses

  130. Charity Jobs ScotlandMay 20, 2011 @ 09:33 AM

    Thanks for updating my information about the subject, I was not aware of it that ActiveYoutube is a gem to access YouTube API using ActiveResource and this gem wraps code from our previous post on extending ActiveResource to access YouTube.

  131. packers and movers hyderabadFebruary 17, 2012 @ 05:04 AM

    Thanks for sharing your info. I truly appreciate your efforts and I am waiting for your next post thank you once again.

  132. Soccer JerseysMarch 01, 2012 @ 02:22 PM

    Here Rails wins again, because of the say it only once philosophy and because of Ruby’s duck typing.

  133. Metropolitan - LadysMarch 02, 2012 @ 03:44 PM

    This information is worth everyone’s attention. When can I find out more?

  134. Computer Tech Support & repairMarch 06, 2012 @ 08:03 AM

    I’ve learn a few excellent stuff here. Definitely worth bookmarking for revisiting. I surprise how much effort you place to create one of these wonderful informative web site.

  135. Johnny WalkMarch 13, 2012 @ 09:50 PM

    Howdy! This blog post could not be written much better! Looking through this article reminds me of my previous roommate! He always kept talking about this. I’ll forward this information to him. Pretty sure he’ll have a very good read. Thank you for sharing!

  136. llihMarch 16, 2012 @ 12:41 AM

    Thank you for another great post. The place else may anyone get that kind of information in such a perfect method of writing? I’ve a presentation next week, and I’m at the search for such information.

  137. Auto UsateMarch 20, 2012 @ 10:03 AM

    Hi I am so excited I found your weblog, I really found you by mistake, while I was looking on Digg for something else, Regardless I am here now and would just like to say thank you for a remarkable post and a all round thrilling blog (I also love the theme/design), I don’t have time to go through it all at the minute but I have saved it and also added in your RSS feeds, so when I have time I will be back to read more, Please do keep up the awesome job.

  138. emaar mgf palm hillsMarch 23, 2012 @ 10:11 AM

    Emaar is one of the world’s leading real estate companies

  139. emaar mgf palm gardens gurgaonMarch 23, 2012 @ 10:12 AM

    This is actually some really good information that I will be able to use thanks!

  140. plots in gurgaonMarch 23, 2012 @ 10:13 AM

    Your blog is perfect, and I like this article. I find the information I need.

  141. FurnitureMarch 26, 2012 @ 04:05 PM

    Spot on with this write-up, I really feel this web site needs a great deal more attention. I’ll probably be returning to read more, thanks for the advice!

  142. Real Estate to let South AfricaApril 15, 2012 @ 02:30 AM

    Great post. I was checking continuously this blog and I’m impressed! Very helpful information specially the last part :) I care for such information much. I was seeking this certain info for a very long time. Thank you and best of luck.

  143. five starsApril 17, 2012 @ 03:18 AM

    Excellent goods from you, man. I’ve understand your stuff previous to and you’re just extremely great. I really like what you have acquired here, certainly like what you are saying and the way in which you say it. You make it enjoyable and you still care for to keep it wise. I cant wait to read much more from you. This is actually a great site.

  144. mlm marketing companyApril 25, 2012 @ 10:38 PM

    These are actually wonderful ideas in concerning blogging. You have touched some fastidious points here. Any way keep up wrinting.

  145. click this link to go to their websiteApril 27, 2012 @ 04:03 AM

    Hey there! This is my first comment here so I just wanted to give a quick shout out and tell you I genuinely enjoy reading through your blog posts.

    Can you suggest any other blogs/websites/forums that go over the same topics? Thanks!

  146. blogs for kidsApril 27, 2012 @ 11:05 AM

    Hi there i am kavin, its my first occasion to commenting anyplace, when i read this paragraph i thought i could also make comment due to this brilliant paragraph.

  147. good websiteApril 27, 2012 @ 02:56 PM

    Hi, I do believe your blog may be having browser compatibility issues. Whenever I take a look at your site in Safari, it looks fine however, if opening in I. E., it’s got some overlapping issues. I simply wanted to give you a quick heads up! Apart from that, excellent website!

  148. dis estetigiMay 06, 2012 @ 08:18 PM

    it’s very useful,thanks so much for sharing.

  149. visit them nowMay 30, 2012 @ 11:13 PM

    I hardly leave a response, but I looked through a few responses here QuarkRuby: Active Youtube. I actually do have a couple of questions for you if it’s okay. Is it just me or does it look as if like some of these comments come across as if they are coming from brain dead individuals? :-P And, if you are posting on other sites, I would like to keep up with you. Would you list of every one of all your public sites like your twitter feed, Facebook page or linkedin profile?

  150. here's their website linkJune 08, 2012 @ 08:17 PM

    Next time I read a blog, Hopefully it does not fail me just as much as this particular one. I mean, Yes, it was my choice to read through, however I really believed you’d have something helpful to say. All I hear is a bunch of moaning about something you could possibly fix if you were not too busy looking for attention.

  151. dre headphonesJune 13, 2012 @ 09:55 PM

    I tend not to create a leave a response, however after reading a lot of comments here QuarkRuby: Active Youtube. I actually do have 2 questions for you if you don’t mind. Is it just me or does it look like some of these remarks come across like they are written by brain dead folks? :-P And, if you are writing at other online social sites, I’d like to keep up with you. Would you make a list of the complete urls of your social community sites like your twitter feed, Facebook page or linkedin profile?

  152. http://www.wholesaleitalianpurses.com/June 15, 2012 @ 01:09 AM

    I like the helpful info you provide in your articles. I’ll bookmark your blog and check again here frequently. I’m quite certain I will learn a lot of new stuff right here! Best of luck for the next!

  153. check them out by clicking hereJune 15, 2012 @ 01:36 AM

    When I originally commented I appear to have clicked the Notify me when new comments are added checkbox and from now on each time a comment is added I recieve 4 emails with the same comment. Perhaps there is an easy method you can remove me from that service? Cheers!

  154. lds dating adviceJune 16, 2012 @ 09:59 AM

    I comment when I like a post on a site or if I have something to valuable to contribute to the discussion. It is a result of the passion communicated in the article I looked at. And on this post QuarkRuby: Active Youtube. I was actually excited enough to post a leave a responsea response :-) I actually do have some questions for you if you usually do not mind. Could it be simply me or does it look as if like some of the remarks look like they are written by brain dead individuals? :-P And, if you are writing at additional places, I’d like to keep up with you. Would you list the complete urls of all your shared pages like your Facebook page, twitter feed, or linkedin profile?

  155. web design jobsJune 20, 2012 @ 04:33 AM

    Hello i am kavin, its my first time to commenting anywhere, when i read this article i thought i could also make comment due to this good article.

  156. my websiteJune 22, 2012 @ 03:28 PM

    bookmarked!!, I like your website!