A
Andrew Cowan
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
failing.
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 = Net::HTTP.new( 'www.youtube.com', 80 )
path = '/login'
agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.1)
Gecko/20060111 Firefox/1.5.0.1'
data =
'nexturl=/¤t_form=loginForm&action_login=Log+In&username=MY_USER&password=MY_PWD'
headers = {
'Referer' => 'http://www.youtube.com/',
'Content-Type' => 'application/x-www-form-urlencoded',
'User-Agent' => agent
}
resp, data = http.post( path, data, headers )
cookie = resp.response['set-cookie']
if ( resp.code =~ /^3/ )
puts "Got Redirect: " + resp['location']
end
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
suggestions!
Thanks,
Andy
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
failing.
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 = Net::HTTP.new( 'www.youtube.com', 80 )
path = '/login'
agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.1)
Gecko/20060111 Firefox/1.5.0.1'
data =
'nexturl=/¤t_form=loginForm&action_login=Log+In&username=MY_USER&password=MY_PWD'
headers = {
'Referer' => 'http://www.youtube.com/',
'Content-Type' => 'application/x-www-form-urlencoded',
'User-Agent' => agent
}
resp, data = http.post( path, data, headers )
cookie = resp.response['set-cookie']
if ( resp.code =~ /^3/ )
puts "Got Redirect: " + resp['location']
end
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
suggestions!
Thanks,
Andy