Remote Login to YouTube

By JoeSimmons Last update Apr 30, 2009 — Installed 274 times.

There are 1 previous version of this script.

// ==UserScript==
// @name           Remote Login to YouTube
// @namespace      http://userscripts.org/users/23652
// @description    Logs into YouTube via xml request
// @include        http://*
// @include        https://*
// @include        file:*
// @exclude        http://*.youtube.com/*
// @copyright      JoeSimmons
// @version        1.0.0
// @license        Creative Commons Attribution-Noncommercial 3.0 United States License
// ==/UserScript==

// Check if already logged in
GM_xmlhttpRequest({
    method: 'GET',
    url: 'http://www.youtube.com/',
    headers: {
        'User-agent': navigator.userAgent,
        'Accept': 'application/atom+xml,application/xml,text/xml,text/html',
    },
    onload: function(r) {
	if(r.responseText.indexOf('Sign Up')!=-1) {
	var user = prompt('Username:');
		if(user!=null && user!='') user = user.replace(/[^A-Za-z0-9-_]+/, ''); else {return;}
		pass = prompt('Password:');
		if(pass!=null && pass!='') pass = pass.replace(/[^A-Za-z0-9-_]+/, ''); else {return;}
		
		// Make sure usernames and passwords were entered
		// and are not blank
		if(!user || !pass || user=='' || pass=='') return;
		login(user, pass);
		}
	else alert('You are already logged into YouTube');
    }
});


// Login via xml request
function login(u, p) {
GM_xmlhttpRequest({
    method: 'POST',
    url: 'https://www.google.com/accounts/ServiceLoginAuth?service=youtube',
    headers: {
		'Content-type' : 'application/x-www-form-urlencoded',
        'User-agent': navigator.userAgent,
        'Accept': 'application/atom+xml,application/xml,text/xml,text/html',
    },
	data: encodeURI('service=youtube&uilel=3&ltmpl=sso&hl=en_US&Email='+u+'&Passwd='+p),
    onload: function(r) {
	if(r.responseText.indexOf('The username or password you entered is incorrect')!=-1) {
	alert('Invalid username or password.');
	var user = prompt('Username:').replace(/[^A-Za-z0-9-_]+/, ''),
	pass = prompt('Password:').replace(/[^A-Za-z0-9-_]+/, '');
	if(user && pass && user!='' && pass!='') login(user, pass);
	}
	else if(r.responseText.indexOf('Sign Out')!=-1) alert('You are now logged into YouTube');
    }
});
}