How can I retrieve YouTube video details from video URL using PHP?

前端 未结 9 703
南方客
南方客 2020-12-02 13:46

Using PHP, how can I get video information like title, description, thumbnail from a youtube video URL e.g.

http://www.youtube.com/watch?v=B4CRkpBGQzU
         


        
9条回答
  •  醉梦人生
    2020-12-02 14:12

    I wrote this class to display a Youtube video on our website:

        Video not found, sorry" ;
    
        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 ='';
                }
    
                if($youtube_list==true){
                    // Display a video play list.
    
                    $youtube_video = true;
    
                    $play = '';
    
                }
    
                    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;
              }
    
          }
    

    And this is how you can use the class:

       video = "http://www.youtube.com/playlist?list=PL6F5E9FD99326F98C";
    
        $youtube = $video->playVideo();
        echo $youtube . "
    "; // 1 video $video->video="http://www.youtube.com/watch?v=uTA5bLxfvwo"; $youtube = $video->playVideo(); echo $youtube; // shared link echo "
    "; $video = new YouTube(420,315); $video->video="http://youtu.be/VRl2XFJ_tg4"; $youtube = $video->playVideo(); echo $youtube; // invalid request $video->video = "http://wrongvideo.com?nothere"; // Your own error message $video->error ="
    Video not found :-(
    " ; $youtube = $video->playVideo(); echo $youtube; ?>

    demo page: http://www.heathernova.us/youtube.php

    TTFN Cynthia Fridsma

提交回复
热议问题