问题描述
我刚刚创建了YouTube音乐播放列表,并将一首我自己上传到YouTube音乐的歌曲添加到了此播放列表。 现在,我使用的是YouTube API,请以完全相同的用户身份登录,以获取正确的oAuth令牌。 在为用户检索播放列表时,我可以看到此播放列表(内部元素数量很多)。
但是,当我尝试检索此播放列表中的项目时,只能看到标题为“私人视频”和描述为“此视频为私人视频”的视频。是的,这是我自己上传的私人视频,但至少应该正确获取信息!就像我之前上传的视频/歌曲的标题一样。
有什么主意吗? 谢谢!
编辑: 是的,我正在使用以mine = true查询的PlaylistItems.list API端点。 这是响应:
stdClass Object
(
[kind] => youtube#playlistItemListResponse
[etag] => sAQNugs9wcKG_EI3f71MecqShMo
[items] => Array
(
[0] => stdClass Object
(
[kind] => youtube#playlistItem
[etag] => vL-NtUyJLqmlHMnPNX-ldbXRzhs
[id] => UExGU1NIZU5WbWZUQUQyTDc0VlJxUm5meGZwN3dNZTJ2by41NkI0NEY2RDEwNTU3Q0M2
[snippet] => stdClass Object
(
[publishedAt] => 2020-08-14T08:55:20Z
[channelId] => XXXXX
[title] => Private video
[description] => This video is private.
[thumbnails] => stdClass Object
(
)
[channelTitle] => XXXXX
[playlistId] => XXXXX
[position] => 0
[resourceId] => stdClass Object
(
[kind] => youtube#video
[videoId] => XXXXX
)
)
)
)
[pageInfo] => stdClass Object
(
[totalResults] => 1
[resultsPerPage] => 50
)
)
如您所见,没有有关该视频的信息。但这是我使用YouTube音乐上传按钮上传的歌曲。 是的,我使用的是完全相同的用户,因此访问令牌是正确的。
如果我在music.youtube.com上打开该播放列表,则显示的是同一首歌曲,而在youtube.com上打开的播放列表则未显示任何内容(即使与相同的用户/个人资料关联)...
复制步骤非常简单:
谢谢!
解决方法
(免责声明:这不是一个实际的答案,而更像是一个带有OP问题的猜想。)
我可以确认将一个(公开的,没有版权问题的)MP3上传到我的频道(在此不做公开),并观察与OP相同的结果。
这是我通过对PlaylistItems.list
API端点的简单查询获得的(以下省略号使某些信息匿名化):
{
"kind": "youtube#playlistItemListResponse","etag": "...","items": [
{
"kind": "youtube#playlistItem","id": "...","snippet": {
"publishedAt": "2020-08-15T14:11:45Z","channelId": "...","title": "Private video","description": "This video is private.","thumbnails": {
},"channelTitle": "...","playlistId": "...","position": 0,"resourceId": {
"kind": "youtube#video","videoId": "..."
}
},"contentDetails": {
"videoId": "..."
},"status": {
"privacyStatus": "private"
}
}
],"pageInfo": {
"totalResults": 1,"resultsPerPage": 50
}
}
我确实推测这与以下事实有关:即使API将新创建的播放列表项记录为 private (请注意,privacyStatus
是private
)如果该项目和播放列表本身是 public (就像我一样)。
我认为,所显示的行为确实是API的错误。
让我们wait and see对此表示支持。