使用 YouTube 从播放列表中删除视频 API
Delete videos from playlist using YouTube API
我正在尝试使用 YouTube API 从我的一个播放列表中删除视频。我已正确通过身份验证,但仍然收到以下错误:
{
"code" : 403,
"errors" : [ {
"domain" : "youtube.playlistItem",
"location" : "id",
"locationType" : "parameter",
"message" : "Forbidden",
"reason" : "playlistItemsNotAccessible"
} ],
"message" : "Forbidden"
}
我正在按照此处的说明进行操作:https://developers.google.com/youtube/v3/docs/playlistItems/delete
但我不明白你应该把播放列表 ID 放在哪里。我知道你把 videoID 放在哪里了,但它怎么知道要从哪个播放列表中删除?我想那是我的问题。这是他们示例中的代码,我的是相同的:
// Sample java code for playlistItems.delete
public static void main(String[] args) throws IOException {
YouTube service = getYouTubeService();
try {
HashMap<String, String> parameters = new HashMap<>();
parameters.put("id", "REPLACE_ME");
parameters.put("onBehalfOfContentOwner", "");
YouTube.PlaylistItems.Delete playlistItemsDeleteRequest = youtube.playlistItems().delete(parameters.get("id").toString());
if (parameters.containsKey("onBehalfOfContentOwner") && parameters.get("onBehalfOfContentOwner") != "") {
playlistItemsDeleteRequest.setOnBehalfOfContentOwner(parameters.get("onBehalfOfContentOwner").toString());
}
playlistItemsDeleteRequest.execute();
}
}
页面上的 "try it" 部分甚至没有播放列表 ID 的输入,这也给出了同样的错误。只是 onBehalfOfContentOwner 和 id。放入 videoID 并在页面上执行后,我得到了同样的错误。我应该把播放列表ID放在哪里?
想通了。澄清一下:我试图从我自己的播放列表中删除一个视频,并且我已通过适当的身份验证(我可以很好地添加视频)。
基本上,我用错了videoId。当你播放视频时,我试图使用你在 url 中看到的短视频(例如 qNqfYtd3HTg)。您需要使用从 PlaylistItems.list 返回的那个(例如 UEwzdmpFaWdSbm5rQ3hPN29qNXFjM1c0c20zNVlRSC1hQi5DNUEzOUFFNkIyOUUzOTRC)。后者包括视频在哪个播放列表的信息。这就是为什么从播放列表中删除视频时不需要指定playlistId,只需这个长videoId。
这是从播放列表中删除视频时不要使用的 videoId:
youtube.playlistItems().list("contentDetails,snippet").execute().items[0].snippet.resourceId.videoId
这是要使用的视频 ID:
youtube.playlistItems().list("contentDetails,snippet").execute().items[0].id
我正在尝试使用 YouTube API 从我的一个播放列表中删除视频。我已正确通过身份验证,但仍然收到以下错误:
{
"code" : 403,
"errors" : [ {
"domain" : "youtube.playlistItem",
"location" : "id",
"locationType" : "parameter",
"message" : "Forbidden",
"reason" : "playlistItemsNotAccessible"
} ],
"message" : "Forbidden"
}
我正在按照此处的说明进行操作:https://developers.google.com/youtube/v3/docs/playlistItems/delete
但我不明白你应该把播放列表 ID 放在哪里。我知道你把 videoID 放在哪里了,但它怎么知道要从哪个播放列表中删除?我想那是我的问题。这是他们示例中的代码,我的是相同的:
// Sample java code for playlistItems.delete
public static void main(String[] args) throws IOException {
YouTube service = getYouTubeService();
try {
HashMap<String, String> parameters = new HashMap<>();
parameters.put("id", "REPLACE_ME");
parameters.put("onBehalfOfContentOwner", "");
YouTube.PlaylistItems.Delete playlistItemsDeleteRequest = youtube.playlistItems().delete(parameters.get("id").toString());
if (parameters.containsKey("onBehalfOfContentOwner") && parameters.get("onBehalfOfContentOwner") != "") {
playlistItemsDeleteRequest.setOnBehalfOfContentOwner(parameters.get("onBehalfOfContentOwner").toString());
}
playlistItemsDeleteRequest.execute();
}
}
页面上的 "try it" 部分甚至没有播放列表 ID 的输入,这也给出了同样的错误。只是 onBehalfOfContentOwner 和 id。放入 videoID 并在页面上执行后,我得到了同样的错误。我应该把播放列表ID放在哪里?
想通了。澄清一下:我试图从我自己的播放列表中删除一个视频,并且我已通过适当的身份验证(我可以很好地添加视频)。
基本上,我用错了videoId。当你播放视频时,我试图使用你在 url 中看到的短视频(例如 qNqfYtd3HTg)。您需要使用从 PlaylistItems.list 返回的那个(例如 UEwzdmpFaWdSbm5rQ3hPN29qNXFjM1c0c20zNVlRSC1hQi5DNUEzOUFFNkIyOUUzOTRC)。后者包括视频在哪个播放列表的信息。这就是为什么从播放列表中删除视频时不需要指定playlistId,只需这个长videoId。
这是从播放列表中删除视频时不要使用的 videoId:
youtube.playlistItems().list("contentDetails,snippet").execute().items[0].snippet.resourceId.videoId
这是要使用的视频 ID:
youtube.playlistItems().list("contentDetails,snippet").execute().items[0].id