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

问题描述:

我试图使用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(); 
    } 
} 

还有的甚至没有在页面上他们的“试一试”部分,这也给了同样的错误了playlistID的输入。只是onBehalfOfContentOwner和id。输入videoID并在页面上执行后,我会得到相同的错误。我应该在哪里放置播放列表ID?

+0

当您检查[评论在帖子中](https://stackoverflow.com/questions/32607448/youtube-api-v3-error-403-playlistitemsnotaccessible),据说你不能在别人播放列表中做任何改变或改动。无法更新(插入/删除)来自其他用户播放列表的视频,除非该用户允许您的应用程序。请查看此[文档](https://developers.google.com/youtube/v3/docs/errors#playlistItems_youtube.playlistItems.delete)以获取错误说明。 –

+0

我试图从我自己的播放列表中删除视频,并且我的身份验证正确(我可以添加视频就好了)。不过,我明白了。我很快就会在这里发表一个答案。基本上,我使用了错误的videoId。当您播放视频时,我正尝试使用您在网址中看到的短片。您需要使用从PlaylistItems.list返回的内容。 –

想通了。并澄清:我试图从我自己的播放列表中删除视频,并且我的身份验证正确(我可以添加视频就好了)。

基本上,我使用了错误的videoId。我试图在播放视频时使用您在网址中看到的短片(例如qNqfYtd3HTg)。您需要使用从PlaylistItems.list返回的内容(例如,UEwzdmpFaWdSbm5rQ3hPN29qNXFjM1c0c20zNVlRSC1hQi5DNUEzOUFFNkIyOUUzOTRC)。后者包含有关视频所在播放列表的信息。这就是为什么当您从播放列表中删除视频时,无需指定playlistId,只需要这一长视频标识即可。

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

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

这是VideoID的使用方法:

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