【问题标题】:Youtube API v3 Playlistitems returns different order than on youtube.comYoutube API v3 Playlistitems 返回的顺序与 youtube.com 上的顺序不同
【发布时间】:2015-10-17 23:44:16
【问题描述】:

我正在创建一个脚本,用于从频道上传的视频中获取最新视频。它会记住它最后处理的视频,如果遇到相同的 videoId,它就会退出。这很好用,直到我发现一个播放列表在其上传的播放列表中的位置 1 没有最新添加的视频。

然而,最奇怪的是,在 youtube.com 上,相同的播放列表确实有正确的顺序: https://www.youtube.com/watch?v=x_HvPmd9L9o&list=UUpsSadsgX_Qk9i6i_bJoUwQ

但在 Youtube API 响应中,顺序不同:

https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2C+contentDetails&maxResults=50&playlistId={YOUR API KEY}&key=AIzaSyBtO0Bl38DJKCuPh9e4mRW3-1UcGPPnQfs

是我的 API 调用有问题还是 youtube 中的错误?我找不到按日期或任何内容对播放列表项进行排序的选项。

这让我想到,当用户创建播放列表时,他们通常是按照最旧添加的 -> 最新添加的顺序排列的。您是否必须调用所有页面才能获得最新添加的内容?这似乎很疯狂。

【问题讨论】:

    标签: api youtube youtube-api


    【解决方案1】:

    据我所知,它按上传顺序列出了它们。

    假设您要批量上传一个系列的第 1-5 集。 您选择五个视频并拖入上传窗口。 YT 将按照您的操作系统给定的顺序上传它们(通常是 #1、#5,然后是 #'s 4、3 和 2)。

    您可以将视频设置为连续几天发布:周一 #1、周二 #2 等等,这些视频将在您的频道页面上以正确的顺序显示。

    API 调用只会带回已发布的视频,因此如果您在 #3 发布后在 Weds 进行调用,您将在响应中收到 3 个视频 [可能] 依次为 #1、#3 和 #2。

    【讨论】:

      【解决方案2】:

      用于从频道检索播放列表的 YouTube API 没有提供任何参数,我们可以在其中设置我们想要检索播放列表的顺序。我们没有获取视频数据的内部算法是如何工作的。但从您的分析看来,实时站点上的 UI API 与从 API 检索到的数据不同。

      尽管yt:position 标签指定了视频在播放列表中出现的顺序。

      例子

      <yt:position>4</yt:position>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-16
        • 2013-05-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多