Answer the question
In order to leave comments, you need to log in
How to decrypt encrypted scripts?
I found a small engine https://github.com/alsemany/phpmyvideo that parses YouTube videos for the specified tags and outputs them as a feed. The problem is that everything is base64 encoded, example https://github.com/alsemany/phpmyvideo/blob/master...
It would be possible to manually decrypt everything, but this is a lot of trouble due to the large number of encrypted files.
How can you speed up the process?
Answer the question
In order to leave comments, you need to log in
phpmyvideo/application/libraries/getvids.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class getvids
{
public function get($url)
{
// make sure curl is installed
if (function_exists('curl_init')) {
// initialize a new curl resource
$ch = curl_init();
// set the url to fetch
curl_setopt($ch, CURLOPT_URL,$url);
// don't give me the headers just the content
curl_setopt($ch, CURLOPT_HEADER, 0);
// return the value instead of printing the response to browser
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// use a user agent to mimic a browser
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7');
$resultdata = curl_exec($ch);
// remember to always close the session and free all resources
curl_close($ch);
} else {
// curl library is not installed so we better use something else
}
$rssstring = $resultdata;
preg_match_all("#<openSearch:totalResults>(.*?)</openSearch:totalResults>#s",$rssstring,$resultcount);
$resultcount = $resultcount[1][0];
preg_match_all("#<item(.*?)</item>#s",$rssstring,$items);
$n=count($items[0]);
for($i=0;$i<$n;$i++){
$rsstemp= $items[0][$i];
preg_match_all("#<media:title(.*?)>(.*?)</media:title>#s",$rsstemp,$titles);
if (isset($titles))
{
$title = $titles[2][0];
}
else
{
$title = 'No title for this video';
}
preg_match_all("#<yt:videoid>(.*?)</yt:videoid>#s",$rsstemp,$vidid);
$vidid = $vidid[1][0];
preg_match_all("#<author>(.*?)</author>#s",$rsstemp,$author);
$author = $author[1][0];
preg_match_all("#<yt:uploaded>(.*?)</yt:uploaded>#s",$rsstemp,$published);
$published= $published[1][0];
preg_match_all("#<yt:rating numDislikes='(.*?)' numLikes='(.*?)'/>#s",$rsstemp,$likesrat);
if (isset($likesrat[2][0]))
{
$likes = $likesrat[2][0];
$dislikes = $likesrat[1][0];
}
else
{
$likes = 0;
$dislikes =0;
}
preg_match_all("#<yt:statistics favoriteCount='(.*?)' viewCount='(.*?)'/>#s",$rsstemp,$fave);
if (isset($fave[1][0]))
{
$views = $fave[2][0];
$favecount = $fave[1][0];
}
else
{
$views = '0';
$favecount = '0';
}
preg_match_all("#<media:keywords>(.*?)</media:keywords>#s",$rsstemp,$keys);
if (empty($keys [1][0])) $keys [1][0] = "no, key, words, found, for, this , video";
$keys = $keys [1][0];
$keys = explode (', ',$keys);
foreach ($keys as $num => $key)
{
$keys[$num] = array('keyword'=>$key);
}
$thumb = "http://i2.ytimg.com/vi/".$vidid."/default.jpg";
$data[$i] = array(
'vidid' => $vidid ,
'author' => $author ,
'vidtitle' => $title ,
'vidthumb' => $thumb ,
'vidpublished' => $published ,
'views' => $views ,
'favecount' => $favecount ,
'uploadscount' => $resultcount,
'keys'=>$keys ,
'likes' => $likes ,
'dislikes' => $dislikes,
'videofetched' => $n
) ;
}
if (empty($data)) { $data[] =
array(
'vidid' => '' ,
'vidtitle' => '' ,
'vidthumb' => '' ,
'vidpublished' => '' ,
'views' => '',
'favecount' => '' ,
'uploadscount' => '',
'keys'=>'' ,
'likes' => '' ,
'dislikes' => '' ,
) ;
; }
return $data;
}
public function getinfo($id)
{
// make sure curl is installed
if (function_exists('curl_init')) {
// initialize a new curl resource
$ch = curl_init();
// set the url to fetch
curl_setopt($ch, CURLOPT_URL,'http://gdata.youtube.com/feeds/api/users/'.$id.'?v=2&alt=rss');
// don't give me the headers just the content
curl_setopt($ch, CURLOPT_HEADER, 0);
// return the value instead of printing the response to browser
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// use a user agent to mimic a browser
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7');
$resultdata = curl_exec($ch);
// remember to always close the session and free all resources
curl_close($ch);
} else {
// curl library is not installed so we better use something else
}
$rssstring = $resultdata;
preg_match_all("#<author>(.*?)</author>#s",$rssstring,$author);
$data['title'] = $author[0][0];
preg_match_all("#<yt:aboutMe>(.*?)</yt:aboutMe>#s",$rssstring,$aboutme);
if (isset($aboutme[0][0]))
{
$data['aboutme'] = $aboutme[0][0];
}
else
{
$data['aboutme'] = 'nothing';
}
preg_match_all("#<yt:firstName>(.*?)</yt:firstName>#s",$rssstring,$firstname);
if (isset($firstname[1][0]))
{
$data['firstname'] = $firstname[1][0];
}
else
{
$data['firstname'] = $data['title'];
}
preg_match_all("#<yt:statistics lastWebAccess='(.*?)' subscriberCount='(.*?)' videoWatchCount='(.*?)' viewCount='(.*?)' totalUploadViews='(.*?)'/>#s",$rssstring,$info);
$data['lastaccess'] = $info[1][0];
$data['subscriberCount'] = $info[2][0];
$data['videoWatchCount'] = $info[3][0];
$data['viewCount'] = $info[4][0];
$data['totalUploadViews'] = $info[5][0];
preg_match_all("#<media:thumbnail url='(.*?)'/>#s",$rssstring,$thumb);
$data['thumb'] = $thumb[1][0];
preg_match_all("#<yt:location>(.*?)</yt:location>#s",$rssstring,$location);
$data['location'] = $location[1][0];
return $data;
}
}
?>
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question