使用YouTube API从播放列表中删除视频

时间:2017-10-20 15:27:29

标签: youtube-api youtube-data-api android-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放在哪里。我看到你把视频ID放在哪里,但是它如何知道从哪个播放列表中删除?我认为这是我的问题。以下是他们示例中的代码,我的相同:

// 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();
    }
}

播放列表中的播放列表ID甚至都没有输入&#34;尝试它&#34;页面上的部分,也给出了同样的错误。只需onBehalfOfContentOwner和id。在输入videoID并在页面上执行后,我得到了同样的错误。我应该在哪里放置播放列表ID?

1 个答案:

答案 0 :(得分:1)

想出来。并澄清一下:我试图从我自己的播放列表中删除一个视频并且我已经过适当的身份验证(我可以添加视频就好了)。

基本上,我使用的是错误的videoId。我正在尝试使用您在播放视频时在网址中看到的短片(例如qNqfYtd3HTg)。您需要使用从PlaylistItems.list返回的那个(例如UEwzdmpFaWdSbm5rQ3hPN29qNXFjM1c0c20zNVlRSC1hQi5DNUEzOUFFNkIyOUUzOTRC)。后者包括有关视频所在的播放列表的信息。这就是为什么在从播放列表中删除视频时不需要指定播放列表的原因,只需要一个长视频ID。

这是在播放列表中删除视频时不使用的视频:

youtube.playlistItems().list("contentDetails,snippet").execute().items[0].snippet.resourceId.videoId

这是要使用的视频ID:

youtube.playlistItems().list("contentDetails,snippet").execute().items[0].id