从 yoututbe 数据 api 播放播放列表中的所有视频

问题描述 投票:0回答:4

我可以从 PlaylistItems 获取视频 ID 并使用 youtube 播放器播放它们。但是有什么方法可以播放整个播放列表(一个又一个的视频,就像 YouTube 上的那样)。 在 YouTube 上,对于任何播放列表,我们都有类似

的网址
https://www.youtube.com/watch?v=zqpkt80WbX0&list=RDaPevLsjcJ7c&index=6

我们如何获取任何视频的“列表”?

youtube youtube-api
4个回答
1
投票

你走错了路..你的网址应该是这样的:

String URL = "https://gdata.youtube.com/feeds/api/playlists/your_playlist_Id"; 

之后你就解析了它。它以 json 和 xml 形式提供。 在 Json 中,您的播放列表 URL 将是:

https://gdata.youtube.com/feeds/api/playlists/RDaPevLsjcJ7c?v=2&alt=json

还有其他问题..


1
投票

我假设您已经有了播放列表 ID?因此,如果您只是尝试使用 iframe 嵌入,您可以设置 iframe 的源来查看播放列表,如下所示:

<iframe width="560" height="315" src="http://www.youtube.com/embed?listType=playlist&amp;list=RDaPevLsjcJ7c" frameborder="0" allowfullscreen></iframe>

这将使用 YouTube 的嵌入式播放列表播放器,左上角为您提供播放列表控件,媒体栏有跳过按钮,它会自动播放到下一个视频等。它的界面与您在 YouTube.com 上看到的界面不同网站,但仍然很好。

如果您希望获得比 iframe 更多的控制权,则可以使用 YouTube 播放器 API 的播放列表功能来挂钩播放列表 - 然后您可以根据需要加载新的播放列表,或者跟踪索引。以下是一些示例,说明了此类功能(只是演示代码......您需要进行调整以满足您的需求):

<html>
<head>
</head>
<body>
<iframe id="player" width="560" height="315" src="http://www.youtube.com/embed?listType=playlist&amp;list=RDaPevLsjcJ7c&enablejsapi=1&origin=http://humdev.byu.edu" frameborder="0" allowfullscreen></iframe>
<script>
 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,
      'onStateChange': onPlayerStateChange
    },

  });
}

onPlayerReady = function() {
        player.loadPlaylist('PL028565C616627F50');
};

onPlayerStateChange = function(evt) {
        console.log(evt);
        if (evt.data === YT.PlayerState.PLAYING) {
                alert(player.getPlaylistIndex());
        }
};
</script>
</body>
</html>

(顺便说一句,需要注意的一件事是,您可以使用“loadPlaylist”方法传入常规视频 ID 而不是播放列表 ID ...它会使用播放列表播放器创建单个视频的播放列表接口。不知道什么时候有用,但它有效!)

最后,了解一下在使用播放器 API 时,如果您想动态构建自己的播放列表,您可以这样做并仍然使用可嵌入播放列表播放器,这可能也会有所帮助;在构造播放器对象时,只需传入一个“播放列表”参数以及以逗号分隔的视频 ID 列表,如下所示:

 function onYouTubeIframeAPIReady() {
  var player;
  player = new YT.Player('player', {
    videoId: 'M7lc1UVf-VE',
    playerVars: { 'autoplay': 1, 'playlist': 'yCjJyiqpAuU,GoSq-yZcJ-4' },
  });
}

0
投票

我使用了以下意图方法

Intent videoint = YouTubeStandalonePlayer.createPlaylistIntent(MyActivity.this, KEY,
                                playlistID, position, 0, true, false);
startActivityForResult(videoint,STANDALONE_PLAYER_REQUEST_CODE);

0
投票

之前闲逛,在查看 YouTube 频道的源代码后发现了这一点。因此,它通过网络浏览器使用 YouTube 的可公开访问的客户端 API。 为了使此解决方案发挥作用,您将创建一个书签

按照以下步骤操作...

  1. 转到任何 YouTube 频道的主页 - 我们将使用
    https://www.youtube.com/@DonutOperator
  2. 使用浏览器的书签管理器创建新书签。
  3. 将以下代码片段粘贴到您通常添加 URL 的位置并保存新书签 -- 不要忘记将其命名为您会记住的名称:
javascript:window.location="/playlist?list=UU"+ytInitialData.metadata.channelMetadataRenderer.externalId.substring(2)
  1. 在查看当前 YouTube 频道时单击书签(即
    @DonutOperator
    )。
  2. 默认情况下,它会将您重定向到按时间倒序排列的自动生成的该频道所有视频的播放列表。
  3. 单击全部播放按钮并享受!
© www.soinside.com 2019 - 2024. All rights reserved.