Kamis, 19 Februari 2015

youtube

<?php 
$_C00KIES = "cookies.txt" ; 
$aVideos = array(" http://youtu.be/s--tMejlb_U?list=PLKpuH40Zgi4iSN26rouLAUCRZEUi8wSqa " ); 
$aUsers = array(); 
$aUsers [ 0 ] = array( "somemail@gmail.com" , "password_here" ); 
//$aUsers[1] = array("somemail@gmail.com","password_here"); 
for( $x = 0 ; $x < count ( $aVideos ); $x ++){ 
for( $y = 0 ; $y < count ( $aUsers ); $y ++){ 
if( file_exists ( $_C00KIES )){ 
@ unlink ( $_C00KIES ); 
} 
$sYTLink = $aVideos [ $x ]; 
$sUser = $aUsers [ $y ][ 0 ]; 
$sPass = $aUsers [ $y ][ 1 ]; 
if( false !==( $iPos = strpos ( $sYTLink , "&" ))){ 
$sYTLink = substr ( $sYTLink , 0 , $iPos ); 
} 
$aVID = explode ( "=" , $sYTLink ); 
if(!isset( $aVID [ 1 ])){ 
die( "Invalid video" ); 
} 
$sVID = $aVID [ 1 ]; 
// open gmail and get dynamic field values everytime we start a login attempt 
$ch = curl_init ( "https://accounts.google.com/ServiceLogin?continue=http%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26feature%3Dsign_in_button%26hl%3Dnl_NL%26next%3D%252F%26nomobiletemp%3D1&passive=true&service=youtube&uilel=3&hl=nl_NL" ); 
curl_setopt ( $ch , CURLOPT_FOLLOWLOCATION , true ); 
curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , true ); 
curl_setopt ( $ch , CURLOPT_SSL_VERIFYPEER , false ); 
curl_setopt ( $ch , CURLOPT_USERAGENT , $_SERVER [ 'HTTP_USER_AGENT' ]); 
curl_setopt ( $ch , CURLOPT_SSL_VERIFYHOST , false ); 
curl_setopt ( $ch , CURLOPT_COOKIEFILE , $_C00KIES ); 
$sData = curl_exec ( $ch ); 
// get login form 
$sPattern = "/<form(?=[^>]*novalidate id=\"gaia_loginform\")[^>].+<\/form>/Uis" ; 
preg_match ( $sPattern , $sData , $aData ); 
if(isset( $aData [ 0 ])){ 
// get action 
$sPattern = "/action=\"([^\"]+)/is" ; 
preg_match ( $sPattern , $aData [ 0 ], $aTarget ); 
$sTarget = $aTarget [ 1 ]; 
// get all inputs 
$sPattern = "/<input[^>]+/is" ; 
preg_match_all ( $sPattern , $aData [ 0 ], $aInput ); 
// go through the inputs and extract the vars and their values 
$sPost = "" ; 
for( $y = 0 ; $y < count ( $aInput [ 0 ]); $y ++){ 
if( $y > 0 ){ 
$sPost .= "&" ; 
} 
// get var names 
$sPattern = "/name=\"([^\"]+)/is" ; 
preg_match ( $sPattern , $aInput [ 0 ][ $y ], $aVar ); 
if(!isset( $aVar [ 1 ])){ 
// no name 
continue; 
} 
$sPost .= $aVar [ 1 ]. "=" ; 
// add pass 
if( $aVar [ 1 ]== "Passwd" ){ 
$sPost .= $sPass ; 
continue; 
} 
// add email/user 
if( $aVar [ 1 ]== "Email" ){ 
$sPost .= $sUser ; 
continue; 
} 
// get values 
$sPattern = "/value=\"([^\"]+)/is" ; 
preg_match ( $sPattern , $aInput [ 0 ][ $y ], $aVal ); 
if(!isset( $aVal [ 1 ]) || empty( $aVal [ 1 ])){ 
// no value 
continue; 
} 
$sPost .= $aVal [ 1 ]; 
} 
// in case we are skipping an input with no name 
$sPost = str_replace ( "&&" , "&" , $sPost ); 
curl_setopt ( $ch , CURLOPT_URL , $sTarget ); 
curl_setopt ( $ch , CURLOPT_POST , true ); 
curl_setopt ( $ch , CURLOPT_POSTFIELDS , $sPost ); 
curl_setopt ( $ch , CURLOPT_FOLLOWLOCATION , true ); 
curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , true ); 
curl_setopt ( $ch , CURLOPT_HTTPHEADER , array( "Content-type: application/x-www-form-urlencoded" )); 
$sResponse = curl_exec ( $ch ); 
// find the user style string if it is there, login was successful 
$iPos = strpos ( $sResponse , "refresh" ); 
if( $iPos ){ 
// ok we have logged in, go to youtube and get the video 
curl_setopt ( $ch , CURLOPT_URL , $sYTLink ); 
curl_setopt ( $ch , CURLOPT_POST , false ); 
curl_setopt ( $ch , CURLOPT_FOLLOWLOCATION , true ); 
curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , true ); 
$sResponse = curl_exec ( $ch ); 
preg_match ( '/\'PLAYBACK_ID\':\s+\"(.*)\"/' , $sResponse , $aPID ); 
preg_match ( '/yt\.setAjaxToken\(\'watch_actions_ajax\',\s+\"(.*)\"/' , $sResponse , $aSessionToken ); 
if(!isset( $aPID [ 1 ])){ 
echo "No playback id found" ; 
} 
elseif(!isset( $aSessionToken [ 1 ])){ 
echo "No session id found" ; 
} 
else{ 
// like this video 
curl_setopt ( $ch , CURLOPT_URL , "http://www.youtube.com/watch_actions_ajax?action_like_video=1&video_id=" . $sVID . "&plid=" . $aPID [ 1 ]); 
curl_setopt ( $ch , CURLOPT_POST , true ); 
curl_setopt ( $ch , CURLOPT_POSTFIELDS , "session_token=" . $aSessionToken [ 1 ]. "&screen=" . rawurlencode ( "h=800&w=1280&d=24" )); 
curl_setopt ( $ch , CURLOPT_FOLLOWLOCATION , true ); 
curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , true ); 
curl_setopt ( $ch , CURLOPT_HTTPHEADER , array( "Content-type: application/x-www-form-urlencoded" )); 
$sResponse = curl_exec ( $ch ); 
curl_close ( $ch ); 
//echo $sResponse; 
} 
} 
else{ 
echo "Login failed" ; 
} 
} 
else{ 
die( "Unable to find login form, terminating script\n" ); 
} 
} 
} 
?>