如何才能让我的YouTube播放列表随机播放并播放随机视频,直到播放完整播放列表而不重复播放任何视频?

时间:2018-04-19 23:47:38

标签: javascript random youtube shuffle playlist

好的......已经工作了几个月而且还没有工作结果......所以,现在请求帮助!我有一个YouTube播放列表,ID:PLl_KM23gznEAZW-INW8ty4QNaHH8JCnNW。此播放列表上有近1500个视频。我需要一个能够调用列表的代码,并从列表中播放随机视频。我需要它以随机顺序播放所有1500个视频而不重复任何视频。然后在播放列表完成后,它需要重新开始,继续以完全不同的随机顺序播放视频。

我已经尝试了几个代码片段,似乎无法将所有内容整合在一起。我要么重复播放,要么我只得到一个不播放任何内容的列表,或者它将随机选择第一个视频,然后可能是第二个视频,但它将从第一个或第二个开始按顺序播放视频。当前运行的youtube播放器只会调用200首歌曲列表中的视频。 IE:如果付款人按顺序开始,只会播放1到200,然后停止。或者,我可以将其设置为从播放列表中的任何歌曲开始,例如,#999,它将转到该视频,但仅播放从999到1198的视频。

我必须随机选择这首歌并将其放入我的代码中以使其完成。

我需要它以随机播放模式启动,从1500个视频列表中选择任何一首歌,然后继续随机选择并播放列表中的任何其他视频,除了那些已播放的视频,直到它播放了所有视频,然后循环播放列表并继续播放播放列表中的随机视频,不包括其播放的顺序。我要避免的主要事情是......必须手动创建列表数组。我需要能够调用播放列表的网址,并通过编号,视频ID,歌曲名称等检索视频列表。使用最简单,最干净的代码。

PS:有了评论对我的学习过程非常有帮助。

请不要担心任何事情,我是51岁,残疾人,并试图在2003年获得学位后自己提醒我自己编码语法,从那时起就不再使用它了!我正在为自己创建一个项目,或多或少地试图使自己能够自己阅读,修复和创建编码。不过这部分让我完全难过!

我希望这对某人有意义,我只是在试图提问时感到困惑!!!

尝试了这个,什么都没有......只是一个空白页......

    var tag = document.createElement('script');

    tag.src = "https://www.youtube.com/iframe_api";
    var firstScriptTag = document.getElementsByTagName('script')[0];
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);


    function onYouTubeIframeAPIReady() {
        var player = new YT.Player("player", {
            height: '390',
            width: '640',
            events: {
                'onReady': function (event) {
                    event.target.cuePlaylist({list: "PLl_KM23gznEAZW-INW8ty4QNaHH8JCnNW"});
                    event.target.playVideo();
                    setTimeout(function() {
                        event.target.setShuffle({'shufflePlaylist' : true});
                    }, 1000);
                }
            }
        });
    }

这个将加载播放器,但不会随机播放或播放。从第一个视频开始,然后按顺序继续......

var tag = document.createElement('script');

tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

var player;

function onYouTubeIframeAPIReady() {
    player = new YT.Player('player', {
        height: '390',
        width: '640',
    events: {
        'onReady': onPlayerReady
        },
    playerVars: {
        listType:'playlist',
        list: 'PLl_KM23gznEAZW-INW8ty4QNaHH8JCnNW'
        }
    });
}


function onPlayerReady(event) {
    num = _.random(0, 1500);
    setTimeout(() => {
        player.playVideoAt(num);
    }, 1000);
}

这个将从一个随机视频开始,但然后从那里继续......

var tag = document.createElement('script');

tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);


function onYouTubeIframeAPIReady() {
    var numPl = Math.floor((Math.random() * 1500) + 1);
    var player = new YT.Player("player", {
        height: '390',
        width: '640',
        playerVars: {
            listType:'playlist',
            list:'PLl_KM23gznEAZW-INW8ty4QNaHH8JCnNW',
            index: numPl,
            autoplay: 1,
            },
        events: {
            'onReady': function (event) {
             event.target.cuePlaylist({list: "PLl_KM23gznEAZW-INW8ty4QNaHH8JCnNW"});
             event.target.playVideo();
                setTimeout(function() {
                event.target.setShuffle({'shufflePlaylist' : true});
            }, 1000);
        }
    }
});
}

function onPlayerReady(event) {
    event.target.mute();
    setTimeout( function() { 
        event.target.setShuffle(true); 
        event.target.setLoop(true);
    }, 2000);
}

function getRandomId() {
    var random_id = 0
    while(played_idx.indexOf(random_id) != -1) {
    random_id = Math.floor(Math.random * playlist.length)
    }
    return random_id
}

我很确定还有更多,但目前无法找到它们。

0 个答案:

没有答案