Вот простая функция для входа в систему. Это сообщение об ошибке возврата или 0 в случае успеха. Я использовал собственную библиотеку curl, но не совсем понятно, что $ this-> curl-> SetHeader можно заменить на curl_setopt ($ ch, CURLOPT_HTTPHEADER, $ header)
public function login(Model_ServiceAccount $account){
$this->curl->SetHeader('Content-type', 'application/x-www-form-urlencoded');
$this->curl->post('https://www.google.com/youtube/accounts/ClientLogin',
'Email=' . $account->mail->login . '&Passwd=' . $account->mail->password . '&service=youtube&source=whatever');
if (preg_match('~Error=(.+)~', $this->curl->getResponse(), $match))
return $match[1];
if (!preg_match('~Auth=(.*)~', $this->curl->getResponse(), $match)) Toolkit::error('Unhandled error in Authentication request');
$authToken = $match[1];
$this->curl->SetHeader('Authorization: GoogleLogin auth', $this->developerKey);
$this->curl->SetHeader('X-GData-Key: key=', $authToken);
$this->curl->SetHeader('Content-Type', 'application/atom+xml');
return 0;
}