Again Youtube does not working!!!
does it working for you?
Originally posted by firemax
View Post
<?php ////////////////////////////// Download stuff $action = $_GET["action"]; if ($action=="download") { // File: phpyoutube.php // Version: 2.2 // Date: 06/04/2009 // Web: http://blog.unijimpe.net function getContent($url) { $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_HEADER, 0); ob_start(); curl_exec ($ch); curl_close ($ch); $string = ob_get_contents(); ob_end_clean(); return $string; } function fetch_headers($url) { $headers = array(); $url = trim($url); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_NOBODY ,1); $data = curl_exec($ch); $errormsg = curl_error($ch); curl_close($ch); $headers = explode("\n", $data); return $headers; } function getYoutubeToken($id) { $path = "http://www.youtube.com/get_video_info?"; $cont = getContent($path."&video_id=".$id); parse_str($cont, $opts); return $opts['token']; } $videoItem = trim($_GET['item']); $videoType = ""; $videoPath = "http://www.youtube.com/get_video"; if ($_GET['type'] != "0") { $videoType = "&fmt=".$_GET['type']; } if ($videoItem != "") { $videoTokn = getYoutubeToken($videoItem); $videoURL = $videoPath."?video_id=".$videoItem."&t=".$videoTokn.$videoType."&asv="; $headers = fetch_headers($videoURL); for ($i=0; $i<count($headers); $i++) { if (strstr($headers[$i], "ocation:")) { $str1 = explode("ocation:", $headers[$i]); $link = trim($str1[1]); break; } } $vn=rand(0,9999); if($_GET['type']==17){ $fu = "$vn-(Chat4u.mobi).3gp"; $fsize = filesize($fu); header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: public"); header("Content-Description: File Transfer"); header("Content-Type: video/3gp"); header("Content-Disposition: attachment; filename=\"$vn-(Chat4u.mobi).3gp\""); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . $fsize); echo file_get_contents("$fu"); } else if($_GET['type']==18){ header("Content-Type: video/mp4"); header("Content-Disposition: attachment; filename=\"$vn-(Chat4u.mobi).mp4\""); } else{ header("Content-Type: video/x-flv"); header("Content-Disposition: attachment; filename=\"$vn-(Chat4u.mobi).flv\""); } readfile($link); flush(); exit(); } } /////////////End of download stuff include("page_head.php"); ?> <?php // function to parse a video <entry> function parseVideoEntry($entry) { $obj= new stdClass; // get author name and feed URL $obj->author = $entry->author->name; $obj->authorURL = $entry->author->uri; // get nodes in media: namespace for media information $media = $entry->children('http://search.yahoo.com/mrss/'); $obj->title = $media->group->title; $obj->description = $media->group->description; // get video player URL $attrs = $media->group->player->attributes(); $obj->watchURL = $attrs['url']; // get video thumbnail $attrs = $media->group->thumbnail[0]->attributes(); $obj->thumbnailURL = $attrs['url']; // get <yt:duration> node for video length $yt = $media->children('http://gdata.youtube.com/schemas/2007'); $attrs = $yt->duration->attributes(); $obj->length = $attrs['seconds']; // get <yt:stats> node for viewer statistics $yt = $entry->children('http://gdata.youtube.com/schemas/2007'); if ($yt->statistics) { $attrs = $yt->statistics->attributes(); $obj->viewCount = $attrs['viewCount']; } else { $obj->viewCount = 0; } // return object to caller return $obj; } // get video ID from $_GET if (!isset($_GET['id'])) { die ('ERROR: Missing video ID'); } else { $vid = $_GET['id']; } // set video data feed URL $feedURL = 'http://gdata.youtube.com/feeds/mobile/videos/' . $vid; // read feed into SimpleXML object $entry = simplexml_load_file($feedURL); // parse video entry $video = parseVideoEntry($entry); // display main video title echo "<div class=\"header\">"; echo "{$video->title}"; echo "</div>"; // get mobile stream url $mobstream = $_GET["mobstream"]; // display video thumbnail/stream/download ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get"> <?php echo "<div class=\"shoutmenu\">\n"; echo "<img class=\"avatar\" src=\"$video->thumbnailURL\" alt=\"\" /><br/>\n"; echo "<a href=\"$mobstream\">Stream Video</a><br/>\n"; ?> <input name="item" id="item" type="hidden" value="<?php echo "$vid";?>" /> <input name="action" type="hidden" value="download" /> <select id="type" name="type"> <option value="17">3GP </option> <option value="18">MP4 </option> <option value="0">FLV </option> </select> <input name="btget" id="btget" type="submit" value="Download" /> <?php echo "</div></form>"; // display Full description if(isset($_GET["fulldscr"])) { echo "<div class=\"shout\">VIDEO DETAILS</div>\n"; echo "<div class=\"menu3\">\n"; echo "<b>Duration:</b> "; echo sprintf("%0.2f", $video->length/60) . " min<br/> <b>Rating:</b> {$video->rating}<br/> <b>Views:</b> {$video->viewCount}<br/>\n"; echo "</div>"; ?> </body> </html> <?php exit(); } echo "<div class=\"shout\">VIDEO DETAILS</div>\n"; echo "<div class=\"menu3\">\n"; echo "<b>Duration:</b> "; echo sprintf("%0.2f", $video->length/60) . " min<br/> <b>Rating:</b> {$video->rating}<br/> <b>Views:</b> {$video->viewCount}<br/>\n"; echo "</div>"; ?> <?php // if form submitted $vq = $video->title; $vq = ereg_replace('[[:space:]]+', ' ', trim($vq)); $vq = urlencode($vq); // set max results per page if (!isset($_GET['i']) || empty($_GET['i'])) { $i = 5; } else { $i = htmlentities($_GET['i']); } // set sort critera if (!isset($_GET['s']) || empty($_GET['s'])) { $s = 'viewCount'; } else { $s = htmlentities($_GET['s']); } // set start index if (!isset($_GET['pageID']) || $_GET['pageID'] <= 0) { $o = 1; } else { $pageID = htmlentities($_GET['pageID']); $o = (($pageID-1) * $i)+1; } // generate feed URL $feedURL = "http://gdata.youtube.com/feeds/mobile/videos?vq={$vq}&orderby={$s}&max-results=5&start-index={$o}&format=1"; // read feed into SimpleXML object $sxml = simplexml_load_file($feedURL); // get summary counts from opensearch: namespace $counts = $sxml->children('http://a9.com/-/spec/opensearchrss/1.0/'); $total = $counts->totalResults; $startOffset = $counts->startIndex; $endOffset = ($startOffset-1) + $counts->itemsPerPage; // include Pager class require_once 'Pager/Pager.php'; $params = array( 'mode' => 'Jumping', 'perPage' => $i, 'delta' => 5, 'totalItems' => $total, ); $pager = & Pager::factory($params); $links = $pager->getLinks(); ?> <div class="header"><?php echo $_GET['vq']; ?>Related Videos</div> <?php // iterate over entries in resultset // print each entry's details foreach ($sxml->entry as $entry) { // get nodes in media: namespace for media information $media = $entry->children('http://search.yahoo.com/mrss/'); // get video player URL $attrs = $media->group->player->attributes(); $watch = $attrs['url']; // get 3GP STREAM URL 2 $attrs = $media->group->content[0]->attributes(); $mobilestream = $attrs['url']; // get video thumbnail $attrs = $media->group->thumbnail[0]->attributes(); $thumbnail = $attrs['url']; // get <yt:duration> node for video length $yt = $media->children('http://gdata.youtube.com/schemas/2007'); $attrs = $yt->duration->attributes(); $length = $attrs['seconds']; ////////// get <yt:stats> node for viewer statistics ///$yt = $entry->children('http://gdata.youtube.com/schemas/2007'); ///if ($yt->statistics) { ///$attrs = $yt->statistics->attributes(); ///$viewCount = $attrs['viewCount']; ///} else { /// $viewCount = 0; ///} // get <gd:rating> node for video ratings $gd = $entry->children('http://schemas.google.com/g/2005'); if ($gd->rating) { $attrs = $gd->rating->attributes(); $rating = $attrs['average']; } else { $rating = 0; } // get video ID $arr = explode('/',$entry->id); $id = $arr[count($arr)-1]; // print record ?> <div class="menu3"> <table> <tr valign="middle"> <td> <?php ///////// PREVIEW IMAGE AS A LINK TO MOBILE STREAM echo "<a href=\"{$mobilestream}\">"; echo "<img class=\"avatar\" src=\"$thumbnail\" width=\"60\" height=\"45\" alt=\"\" />"; echo "</a>\n"; ?> </td> <td style="padding-left:2px;"> <div style="padding-bottom:1px;"> <?php ///////// VIDEO TITLE AS A LINK TO DETAILS PAGE echo "<a href=\"details.php?id=$id&mobstream={$mobilestream}\">{$media->group->title}</a>\n"; ?> </div> <?php ///////// VIDEO LENGHT AS MM:SS // VIDEO RATING OUT OF 5 if (($rating=="0") || (($rating>0.0) && ($rating<0.5))) { $rating = "<img src=\"stars/0.0.gif\" alt=\"\"/>"; }else if (($rating=="0.5") || (($rating>0.5) && ($rating<1.0))) { $rating = "<img src=\"stars/0.5.gif\" alt=\"\"/>"; }else if (($rating=="1.0") || (($rating>1.0) && ($rating<1.5))) { $rating = "<img src=\"stars/1.0.gif\" alt=\"\"/>"; }else if (($rating=="1.5") || (($rating>1.5) && ($rating<2.0))) { $rating = "<img src=\"stars/1.5.gif\" alt=\"\"/>"; }else if (($rating=="2.0") || (($rating>2.0) && ($rating<2.5))) { $rating = "<img src=\"stars/2.0.gif\" alt=\"\"/>"; }else if (($rating=="2.5") || (($rating>2.5) && ($rating<3.0))) { $rating = "<img src=\"stars/2.5.gif\" alt=\"\"/>"; }else if (($rating=="3.0") || (($rating>3.0) && ($rating<3.5))) { $rating = "<img src=\"stars/3.0.gif\" alt=\"\"/>"; }else if (($rating=="3.5") || (($rating>3.5) && ($rating<4.0))) { $rating = "<img src=\"stars/3.5.gif\" alt=\"\"/>"; }else if (($rating=="4.0") || (($rating>4.0) && ($rating<4.5))) { $rating = "<img src=\"stars/4.0.gif\" alt=\"\"/>"; }else if (($rating=="4.5") || (($rating>4.5) && ($rating<5.0))) { $rating = "<img src=\"stars/4.5.gif\" alt=\"\"/>"; }else if (($rating=="5.0") || ($rating>5.0)) { $rating = "<img src=\"stars/5.0.gif\" alt=\"\"/>"; } echo sprintf("%0.2f", $length/60) . " {$rating} <br/>"; echo "</td></tr></table></div>"; } include("footer.php"); ?>
<?php ////////////////////////////// Download stuff $action = $_GET["action"]; if ($action=="download") { // File: phpyoutube.php // Version: 2.2 // Date: 06/04/2009 // Web: http://blog.unijimpe.net function getContent($url) { $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_HEADER, 0); ob_start(); curl_exec ($ch); curl_close ($ch); $string = ob_get_contents(); ob_end_clean(); return $string; } function fetch_headers($url) { $headers = array(); $url = trim($url); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_NOBODY ,1); $data = curl_exec($ch); $errormsg = curl_error($ch); curl_close($ch); $headers = explode("\n", $data); return $headers; } function getYoutubeToken($id) { $path = "http://www.youtube.com/get_video_info?"; $cont = getContent($path."&video_id=".$id); parse_str($cont, $opts); return $opts['token']; } $videoItem = trim($_GET['item']); $videoType = ""; $videoPath = "http://www.youtube.com/get_video"; if ($_GET['type'] != "0") { $videoType = "&fmt=".$_GET['type']; } if ($videoItem != "") { $videoTokn = getYoutubeToken($videoItem); $videoURL = $videoPath."?video_id=".$videoItem."&t=".$videoTokn.$videoType."&asv="; $headers = fetch_headers($videoURL); for ($i=0; $i<count($headers); $i++) { if (strstr($headers[$i], "ocation:")) { $str1 = explode("ocation:", $headers[$i]); $link = trim($str1[1]); break; } } $vn=rand(0,9999); if($_GET['type']==17){ $fu = "$vn-(Chat4u.mobi).3gp"; $fsize = filesize($fu); header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: public"); header("Content-Description: File Transfer"); header("Content-Type: video/3gp"); header("Content-Disposition: attachment; filename=\"$vn-(Chat4u.mobi).3gp\""); header("Content-Transfer-Encoding: binary"); header("Content-Length: " . $fsize); echo file_get_contents("$fu"); } else if($_GET['type']==18){ header("Content-Type: video/mp4"); header("Content-Disposition: attachment; filename=\"$vn-(Chat4u.mobi).mp4\""); } else{ header("Content-Type: video/x-flv"); header("Content-Disposition: attachment; filename=\"$vn-(Chat4u.mobi).flv\""); } readfile($link); flush(); exit(); } } /////////////End of download stuff include("page_head.php"); ?> <?php // function to parse a video <entry> function parseVideoEntry($entry) { $obj= new stdClass; // get author name and feed URL $obj->author = $entry->author->name; $obj->authorURL = $entry->author->uri; // get nodes in media: namespace for media information $media = $entry->children('http://search.yahoo.com/mrss/'); $obj->title = $media->group->title; $obj->description = $media->group->description; // get video player URL $attrs = $media->group->player->attributes(); $obj->watchURL = $attrs['url']; // get video thumbnail $attrs = $media->group->thumbnail[0]->attributes(); $obj->thumbnailURL = $attrs['url']; // get <yt:duration> node for video length $yt = $media->children('http://gdata.youtube.com/schemas/2007'); $attrs = $yt->duration->attributes(); $obj->length = $attrs['seconds']; // get <yt:stats> node for viewer statistics $yt = $entry->children('http://gdata.youtube.com/schemas/2007'); if ($yt->statistics) { $attrs = $yt->statistics->attributes(); $obj->viewCount = $attrs['viewCount']; } else { $obj->viewCount = 0; } // return object to caller return $obj; } // get video ID from $_GET if (!isset($_GET['id'])) { die ('ERROR: Missing video ID'); } else { $vid = $_GET['id']; } // set video data feed URL $feedURL = 'http://gdata.youtube.com/feeds/mobile/videos/' . $vid; // read feed into SimpleXML object $entry = simplexml_load_file($feedURL); // parse video entry $video = parseVideoEntry($entry); // display main video title echo "<div class=\"header\">"; echo "{$video->title}"; echo "</div>"; // get mobile stream url $mobstream = $_GET["mobstream"]; // display video thumbnail/stream/download ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get"> <?php echo "<div class=\"shoutmenu\">\n"; echo "<img class=\"avatar\" src=\"$video->thumbnailURL\" alt=\"\" /><br/>\n"; echo "<a href=\"$mobstream\">Stream Video</a><br/>\n"; ?> <input name="item" id="item" type="hidden" value="<?php echo "$vid";?>" /> <input name="action" type="hidden" value="download" /> <select id="type" name="type"> <option value="17">3GP </option> <option value="18">MP4 </option> <option value="0">FLV </option> </select> <input name="btget" id="btget" type="submit" value="Download" /> <?php echo "</div></form>"; // display Full description if(isset($_GET["fulldscr"])) { echo "<div class=\"shout\">VIDEO DETAILS</div>\n"; echo "<div class=\"menu3\">\n"; echo "<b>Duration:</b> "; echo sprintf("%0.2f", $video->length/60) . " min<br/> <b>Rating:</b> {$video->rating}<br/> <b>Views:</b> {$video->viewCount}<br/>\n"; echo "</div>"; ?> </body> </html> <?php exit(); } echo "<div class=\"shout\">VIDEO DETAILS</div>\n"; echo "<div class=\"menu3\">\n"; echo "<b>Duration:</b> "; echo sprintf("%0.2f", $video->length/60) . " min<br/> <b>Rating:</b> {$video->rating}<br/> <b>Views:</b> {$video->viewCount}<br/>\n"; echo "</div>"; ?> <?php // if form submitted $vq = $video->title; $vq = ereg_replace('[[:space:]]+', ' ', trim($vq)); $vq = urlencode($vq); // set max results per page if (!isset($_GET['i']) || empty($_GET['i'])) { $i = 5; } else { $i = htmlentities($_GET['i']); } // set sort critera if (!isset($_GET['s']) || empty($_GET['s'])) { $s = 'viewCount'; } else { $s = htmlentities($_GET['s']); } // set start index if (!isset($_GET['pageID']) || $_GET['pageID'] <= 0) { $o = 1; } else { $pageID = htmlentities($_GET['pageID']); $o = (($pageID-1) * $i)+1; } // generate feed URL $feedURL = "http://gdata.youtube.com/feeds/mobile/videos?vq={$vq}&orderby={$s}&max-results=5&start-index={$o}&format=1"; // read feed into SimpleXML object $sxml = simplexml_load_file($feedURL); // get summary counts from opensearch: namespace $counts = $sxml->children('http://a9.com/-/spec/opensearchrss/1.0/'); $total = $counts->totalResults; $startOffset = $counts->startIndex; $endOffset = ($startOffset-1) + $counts->itemsPerPage; // include Pager class require_once 'Pager/Pager.php'; $params = array( 'mode' => 'Jumping', 'perPage' => $i, 'delta' => 5, 'totalItems' => $total, ); $pager = & Pager::factory($params); $links = $pager->getLinks(); ?> <div class="header"><?php echo $_GET['vq']; ?>Related Videos</div> <?php // iterate over entries in resultset // print each entry's details foreach ($sxml->entry as $entry) { // get nodes in media: namespace for media information $media = $entry->children('http://search.yahoo.com/mrss/'); // get video player URL $attrs = $media->group->player->attributes(); $watch = $attrs['url']; // get 3GP STREAM URL 2 $attrs = $media->group->content[0]->attributes(); $mobilestream = $attrs['url']; // get video thumbnail $attrs = $media->group->thumbnail[0]->attributes(); $thumbnail = $attrs['url']; // get <yt:duration> node for video length $yt = $media->children('http://gdata.youtube.com/schemas/2007'); $attrs = $yt->duration->attributes(); $length = $attrs['seconds']; ////////// get <yt:stats> node for viewer statistics ///$yt = $entry->children('http://gdata.youtube.com/schemas/2007'); ///if ($yt->statistics) { ///$attrs = $yt->statistics->attributes(); ///$viewCount = $attrs['viewCount']; ///} else { /// $viewCount = 0; ///} // get <gd:rating> node for video ratings $gd = $entry->children('http://schemas.google.com/g/2005'); if ($gd->rating) { $attrs = $gd->rating->attributes(); $rating = $attrs['average']; } else { $rating = 0; } // get video ID $arr = explode('/',$entry->id); $id = $arr[count($arr)-1]; // print record ?> <div class="menu3"> <table> <tr valign="middle"> <td> <?php ///////// PREVIEW IMAGE AS A LINK TO MOBILE STREAM echo "<a href=\"{$mobilestream}\">"; echo "<img class=\"avatar\" src=\"$thumbnail\" width=\"60\" height=\"45\" alt=\"\" />"; echo "</a>\n"; ?> </td> <td style="padding-left:2px;"> <div style="padding-bottom:1px;"> <?php ///////// VIDEO TITLE AS A LINK TO DETAILS PAGE echo "<a href=\"details.php?id=$id&mobstream={$mobilestream}\">{$media->group->title}</a>\n"; ?> </div> <?php ///////// VIDEO LENGHT AS MM:SS // VIDEO RATING OUT OF 5 if (($rating=="0") || (($rating>0.0) && ($rating<0.5))) { $rating = "<img src=\"stars/0.0.gif\" alt=\"\"/>"; }else if (($rating=="0.5") || (($rating>0.5) && ($rating<1.0))) { $rating = "<img src=\"stars/0.5.gif\" alt=\"\"/>"; }else if (($rating=="1.0") || (($rating>1.0) && ($rating<1.5))) { $rating = "<img src=\"stars/1.0.gif\" alt=\"\"/>"; }else if (($rating=="1.5") || (($rating>1.5) && ($rating<2.0))) { $rating = "<img src=\"stars/1.5.gif\" alt=\"\"/>"; }else if (($rating=="2.0") || (($rating>2.0) && ($rating<2.5))) { $rating = "<img src=\"stars/2.0.gif\" alt=\"\"/>"; }else if (($rating=="2.5") || (($rating>2.5) && ($rating<3.0))) { $rating = "<img src=\"stars/2.5.gif\" alt=\"\"/>"; }else if (($rating=="3.0") || (($rating>3.0) && ($rating<3.5))) { $rating = "<img src=\"stars/3.0.gif\" alt=\"\"/>"; }else if (($rating=="3.5") || (($rating>3.5) && ($rating<4.0))) { $rating = "<img src=\"stars/3.5.gif\" alt=\"\"/>"; }else if (($rating=="4.0") || (($rating>4.0) && ($rating<4.5))) { $rating = "<img src=\"stars/4.0.gif\" alt=\"\"/>"; }else if (($rating=="4.5") || (($rating>4.5) && ($rating<5.0))) { $rating = "<img src=\"stars/4.5.gif\" alt=\"\"/>"; }else if (($rating=="5.0") || ($rating>5.0)) { $rating = "<img src=\"stars/5.0.gif\" alt=\"\"/>"; } echo sprintf("%0.2f", $length/60) . " {$rating} <br/>"; echo "</td></tr></table></div>"; } include("footer.php"); ?>
Leave a comment: