YouTube auto like 09-26-2013, 11:39 AM
#1
You can feed this script an array of gmail user accounts and videos to like. Just add them in the arrays.
This is just raw code which I will polish up and add to the hacksuite cms so you can have control over accounts and videos without touching the code itself.
Thought it would be useful for other people:
This is just raw code which I will polish up and add to the hacksuite cms so you can have control over accounts and videos without touching the code itself.
Thought it would be useful for other people:
PHP Code:
<?php
$_C00KIES = "cookies.txt";
$aVideos = array("http://www.youtube.com/watch?v=868NCW0jGrU");
$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");
}
}
}
?>
![[+]](https://sinister.ly/images/modern/collapse_collapsed.png)