Seeking some guidance with net/http

Heya, I am attempting to write a script that lets me login to my Youtube
account to gather frequent data for the videos I have uploaded, I am
stumbling over the Youtube login procedure which seems to involve both
cookies and session info. I am able to get this login procedure to work
with Perl and LWP::UserAgent but so far using net/http and Ruby I am

Here is the code I have been playing with which involves first a POST
form submission to youtube’s /login script, then the code to follow the
redirection back to the /index page – but looking at the contents
returned from /index it appears youtube doesn’t recognize me as being
logged in:

Note: I have added a bunch of puts statements to help debug, leaving

them here for this post
require ‘net/http’

http = ‘’, 80 )
path = ‘/login’
agent = ‘Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:
Gecko/20060111 Firefox/’

data =

headers = {
‘Referer’ => ‘’,
‘Content-Type’ => ‘application/x-www-form-urlencoded’,
‘User-Agent’ => agent

resp, data = path, data, headers )
cookie = resp.response[‘set-cookie’]

if ( resp.code =~ /^3/ )
puts "Got Redirect: " + resp[‘location’]

next_loc = resp[‘location’]

puts ‘Logging In to Set Cookies:’
puts ‘Code=’ + resp.code
puts ‘Mesg=’ + resp.message
puts ‘Cookie=’ + cookie
puts ‘Next Location=’ + next_loc
puts ‘Data=’ + data

headers = {
‘Cookie’ => cookie,
‘User-Agent’ => agent

resp, data = http.get( next_loc, headers )

puts ‘(should be) Logged In:’
puts ‘Code=’ + resp.code
puts ‘Mesg=’ + resp.message
puts ‘Data=’ + data

I am unsure what part I am missing which youtube apparently needs to
complete its login procedure, I would greatly appreciate any helpful


You may want to check out:

at least see how they manage the authentication aspect.


Try this:

Hiya Shawn, I did have a look at youtube-g, have the README file open as
I type this in fact but I don’t see anything related to authenticating
an actual Youtube account, the lib is more for accessing the functions
that Youtube makes available with just guest access as far as I can
tell… :frowning:


Dan D. wrote:

Try this:

Dan, like the youtube-g lib this one also provides no means for
authenticating a Youtube account. Though this does provide some
interesting options that can help me in some respects, it doesn’t
provide me with the same functionality that I can have as if I were
actually logged into the website, which I am trying to emulate.


This worked for me:

require ‘rubygems’
require ‘mechanize’

user = “user_here”
pw = “password_here”
agent =
page = ‘’,
page = agent.get ‘

this returns true, showing you are logged in

p page.body.to_s.include?("/user/#{user}")

Shawn, I had not heard of the mechanize lib, but sure enough it works
great. Thank you for posting that, much appreciated!


Andrew C. wrote:

Shawn, I had not heard of the mechanize lib, but sure enough it works
great. Thank you for posting that, much appreciated!


perl has mechanize too.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs