1

在将其作为副本关闭之前,请阅读整个问题,因为我很确定它不是。


对于我正在编写的网站,我想将最新的视频上传到 Youtube 频道。这是我目前使用的代码:

$uploadid = json_decode(
    file_get_contents(
        "https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=" . $youtube_username . "&key=" . $youtube_apikey), 
        true
    )["items"][0]["contentDetails"]["relatedPlaylists"]["uploads"];

$latest_videoid = json_decode(
    file_get_contents(
        "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=1&playlistId=" . $uploadid . "&key=" . $youtube_apikey), 
        true
    )["items"][0]["snippet"]["resourceId"]["videoId"];

ChannelsPlaylistItems文档中所引用。

但是,它并不总是返回上传播放列表中的第一个条目,而是始终(在某些频道上)首先返回“接下来要看什么”视频,然后(通常)随后是第二个条目中的最新上传。

我知道一个创可贴的解决方案就是抓取前 2-5 个视频,然后挑选出日期最近的视频,但这需要比必要更多的请求,而且可能仍然不是最新的视频取决于它的订购方式。

那么如何获取频道上传播放列表的播放列表 ID,而不是半“接下来要看什么”播放列表?

此外,这些用户都没有对自己进行身份验证,这就是我想要保留它的方式。

感谢您的时间和知识。

4

0 回答 0