Show only the last video of the php channel

0

I have this code, where when using the command /lastvideo it shows the last video of my youtube channel, however when trying to use it it only shows the youtube link, not the video

Php code

//CANAL
$canal = '1fHyqwbfORgIedvQ5fmWZQ';


//--------------------------------------------------------//


switch($mensagem){

    case "/lastvid":
        sendMessage($chatid, ($yt->lastVideo($canal)));
        break;

Call this function:

class YouTube {

    public $cid;


    public function lastVideo ($cid){

    $ulast = 'https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=' .$cid. '&maxResults=1&order=date&type=video&key=xxxxxxxxxxxxxxx';
    $glast = @file_get_contents($ulast);
    $dlast = json_decode($glast, true);

    $vid = @$dlast['items'][0]['id']['videoId'];
    $vname = @$dlast['items'][0]['snippet']['title'];

    //Condition

        $ret = "Assista meu ultimo video: " .$vname. "\n http://youtu.be" .$vid;

        return $ret;
    }

}
    
asked by anonymous 24.06.2017 / 22:53

1 answer

0

I do not know if it helps but I can give you the code in HTML and JavaScript.

HTML

<div class="videos"></div>

Javascript (with jQuery):

$(function() {
    // Baixar URLs do feed do canal
    $.get('http://gdata.youtube.com/feeds/api/users/**nome_do_utilizador**/uploads?max-results=10&alt=json', function(result) {

        var entries = result.feed.entry;

        for(var i=0; i<entries.length; i++) {
            var url = entries[i].link[0].href;   

            // Transformar URL de vídeo em URL de embed
            // ANTES: http://www.youtube.com/watch?v=aDqExWjK49Y&algumacoisaaqui
            // DEPOIS: http://www.youtube.com/embed/aDqExWjK49Y
            url = url.replace('/watch?v=', '/embed/');
            url = url.substring(0, url.indexOf('&'));

            // Fazer append dos vídeos
            $('.videos').append('<iframe width="480" height="270" src="' + url + '" frameborder="0" allowfullscreen></iframe>');
        }
    });
});

Explanation:

Basically get a video feed of a channel down (change where it says username). Then a loop is taken that takes the URL of each video, and applies a "fix" that turns it into the Youtube embed URL. Finally, embed the HTML code of the embed, which is added to the "videos" div.

The reason for URL "fix" is that YouTube did not provide a variable with only the video ID in the feed. It would have been very convenient in this case.

    
25.06.2017 / 00:54