Scripts

Youtube class

Dit is een PHP class om youtube filmpjes op je site te kunnen tonen, door alleen de URL van de youtube video te gebruiken.

youtube.php
<?php
# Copyright (c) 2013 ReFri Software / Internet Publication
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following
# conditions are met:
#
#    * Redistributions of source code must retain the above copyright notice,
#      this list of conditions and the following disclaimer.
#    * Redistributions in binary form must reproduce the above copyright notice, this
#      list of conditions and the following disclaimer in the documentation and/or
#      other materials provided with the distribution.
#    * Neither the name of ReFri Software / Internet Publicion nor the names of its contributors
#      may be used to endorse or promote products derived from this software without
#     specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
# THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#
# youtube.php
# Author : Cynthia Fridsma <[email protected]>
# http://www.refrisoftware.com

# Date  : February 2, 2013


class youtube {

	public $video;
	public $width;
	public $height;
	
	
	function __construct ($width="640", $height="360"){
		
		$this->width=$width;
		$this->height=$height;	  
				
		if($this->width<220){
			// minimum width
			$this->width=220;
		}
		if($this->height<220){
			// minimum height
			$this->height=220;
		}
		
	}	
	
	function play_video(){
		
		// Default video settings: 
		#
		# youtube_list = false
		# youtube_video = false
		
		$youtube_list = false;	
		$youtube_video = false;	
		
		// always check contains youtube.com or youtube.be as a reference....
		
		if(stristr($this->video, "youtube.com")==true ||(stristr($this->video, "youtube.be") || (stristr($this->video, "youtu.be")))){
			
			if(stristr($this->video, "v")==true){
				
				// the link contains a v in the url....	
										
				$youtube_video = true;	
				
				if(stristr($this->video, "list")==true){
					
				// the video is part of a playlist
				
					$youtube_list = true;

				} 
				if($youtube_list==false){
					
					// Display a single video
					
					$test = stristr($this->video, "v=");
					$test = substr($test,2);
					
					$play ='<iframe width="'.$this->width.'" height="'.$this->height.'" src="http://www.youtube.com/embed/'.$test.'?rel=0" frameborder="0" allowfullscreen></iframe>';
				}
			}
			
			if(stristr($this->video, "list")==true || ($youtube_list==true)){
				
				// Display a video play list 
				$youtube_list = true;
				$youtube_video = true;			
				$test = stristr($this->video, "list=");		
				
				$play = '<iframe width="'.$this->width.'" height="'.$this->height.'" src="http://www.youtube.com/embed/videoseries?'.$test.'" frameborder="0" allowfullscreen></iframe>';

			} 
			
			if(stristr($this->video,".be")){
				
				// Display a single video based on the "shared link" URL.				
				
				
				$youtube_video = true;
				$test = stristr($this->video, "be/");
				$test = substr($test, 3);
				
				$play ='<iframe width="'.$this->width.'" height="'.$this->height.'" src="http://www.youtube.com/embed/'.$test.'?rel=0" frameborder="0" allowfullscreen></iframe>';

			} if($youtube_video == false){
				
				// We are unable to determine the video.
				
				$play = "<b>Video : ". $this->video . " not found, sorry</b>";
			}
		} else {
			
		// This is not a valid youtube requeust
			
			$play = "<b>Video : ". $this->video . " not found, sorry</b>";
		}
		
		// Return the results		
		
		return $this->play_video=$play;		
	}
}
youtube_adjusted.php
<?php
# Copyright (c) 2013 ReFri Software / Internet Publication
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following
# conditions are met:
#
#    * Redistributions of source code must retain the above copyright notice,
#      this list of conditions and the following disclaimer.
#    * Redistributions in binary form must reproduce the above copyright notice, this
#      list of conditions and the following disclaimer in the documentation and/or
#      other materials provided with the distribution.
#    * Neither the name of ReFri Software / Internet Publicion nor the names of its contributors
#      may be used to endorse or promote products derived from this software without
#     specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
# THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#
# youtube.php
# Author : Cynthia Fridsma <[email protected]>
# http://www.refrisoftware.com

# Date  : February 4, 2013

# Version: 1.1 
# Property's width and height are now private
# Added:  variable error message 


class YouTube {

	public $video;
	private $width;
	private $height;
	public $error = "<b>Video not found, sorry</b>" ;
	
	function __construct ($width=640, $height=360){
		
		$this->width=$width;
		$this->height=$height;      
		
		if($this->width<220){
			// minimum width
			$this->width=220;
		}
		if($this->height<220){
			// minimum height
			$this->height=220;
		}
		
	}    
	
	function playVideo(){
		
		// Default video settings: 
		#
		# youtube_list = false
		# youtube_video = false
		
		$youtube_list = false;    
		$youtube_video = false;    
		
		// always check contains youtube.com or youtube.be as a reference....
		
		if(stristr($this->video, "youtube.com")==true ||(stristr($this->video, "youtube.be") || (stristr($this->video, "youtu.be")))){
		
			// Test if the video contains a query..
			
			$test = (parse_url($this->video));

			if(isset($test['query'])){
				
				$testing = $test['query'];
				parse_str($testing);
				if(isset($v)&&(isset($list))){					
					
					// we're dealing with a play list and  a selected video.					
					$test = $list;
					$youtube_list = true;  					
				}
				if(isset($list) &&(empty($v))){
					// we're only dealing wih a play list.
					$test = $list;
			
					$youtube_list = true;  	
					$test = $list;
									
				}
				if(isset($v) &&(empty($list))){
					// we're only dealing with a single video.
			
					$test = $v;
					$youtube_video = true;    
				}
				if(empty($v) &&(empty($list))){
					// we're not dealing with a valid request.
					$youtube_video = false;    					
				}
				
			} else {
				
				// Apperently we're dealing with a shared link.
			
				$testing =parse_url($this->video, PHP_URL_PATH);
				
				$test = stristr($testing, "/");
				$test = substr($test,1);
				$youtube_video = true;    
			}
			
			if($youtube_video==true){
					// Display a single video										
					
					$play ='<iframe width="'.$this->width.'" height="'.$this->height.'" src="http://www.youtube.com/embed/'.$test.'?rel=0" frameborder="0" allowfullscreen></iframe>';
			}
			
			if($youtube_list==true){
				// Display a video play list.
				
				$youtube_video = true;
				
				$play = '<iframe width="'.$this->width.'" height="'.$this->height.'" src="http://www.youtube.com/embed/videoseries?list='.$test.'" frameborder="0" allowfullscreen></iframe>';

			} 
			
				if($youtube_video == false){
				
				// We are unable to determine the video.
				
				$play = $this->error;
			}
		} else {
			
			// This is not a valid youtube requeust
			
			$play = $this->error;
		}
		
		// Return the results        
		
		return $this->playVideo=$play;        
	}	
	
}
youtube_channel.php
<?php
# Copyright (c) 2013 ReFri Software / Internet Publication
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following
# conditions are met:
#
#    * Redistributions of source code must retain the above copyright notice,
#      this list of conditions and the following disclaimer.
#    * Redistributions in binary form must reproduce the above copyright notice, this
#      list of conditions and the following disclaimer in the documentation and/or
#      other materials provided with the distribution.
#    * Neither the name of ReFri Software / Internet Publicion nor the names of its contributors
#      may be used to endorse or promote products derived from this software without
#     specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
# THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#
# youtube_channel.php
# Author : Cynthia Fridsma <[email protected]>
# http://www.refrisoftware.com

# Date  : February 4, 2013

# Version: 1.0
# Property's width and height are now private



include_once("youtube_adjusted.php");

class YouTubeChannel extends YouTube {
	
	public $channel ="http://www.youtube.com";
	
	private $PHPscript;
	private $width;
	private $height;
	
	
	function __construct ($PHPscript, $width=640, $height=360){
		
		parent::__construct($width, $height);
		$this->PHPscript=$PHPscript;
		if(empty($this->PHPscript)){
			
			die('<strong>Fatal: PHPscript cannot be empty.</strong>');
			
		}
		
	}

	
	function myChannel(){
		
		// Open the youtube channel using the CURL library	
		
		$ch = curl_init();
		
		curl_setopt($ch, CURLOPT_URL, $this->channel);
		curl_setopt($ch, CURLOPT_HEADER, 0);
		curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0);
		curl_setopt ($ch, CURLOPT_AUTOREFERER, 0);

		// Send the output to a string variable.
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

		$play = curl_exec($ch);
		
		$play = str_replace('/watch?v=', $this->PHPscript .'?video=',$play);
		$play = str_replace('/playlist?', $this->PHPscript .'?',$play);
		$play = str_replace('action="/user/', ' action="http://www.youtube.com/user/',$play);
		$play = str_replace('href="/user/', ' href="http://www.youtube.com/user/',$play);
		$play = str_replace(' action="/results"', 'action="http://www.youtube.com/results"',$play);
		$play = str_replace('href="/results?', 'target="_blank" href="http://www.youtube.com/results?', $play);
		
		curl_close($ch);

		return $this->myChannel=$play;
		
		
		
		
	}
}

Reacties

0
Nog geen reacties.