Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Youtube api 使用YouTube API从播放列表中删除视频_Youtube Api_Youtube Data Api_Android Youtube Api - Fatal编程技术网

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

Youtube api 使用YouTube API从播放列表中删除视频,youtube-api,youtube-data-api,android-youtube-api,Youtube Api,Youtube Data Api,Android Youtube Api,我正在尝试使用YouTube API从我的一个播放列表中删除视频。我已通过正确的身份验证,但仍出现以下错误: { "code" : 403, "errors" : [ { "domain" : "youtube.playlistItem", "location" : "id", "locationType" : "parameter", "message" : "Forbidden", "reason" : "playlistItemsNo

我正在尝试使用YouTube API从我的一个播放列表中删除视频。我已通过正确的身份验证,但仍出现以下错误:

{
    "code" : 403,
    "errors" : [ {
    "domain" : "youtube.playlistItem",
    "location" : "id",
    "locationType" : "parameter",
    "message" : "Forbidden",
    "reason" : "playlistItemsNotAccessible"
    } ],
"message" : "Forbidden"
}
我遵循这里的说明:

但我不明白的是你应该把播放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();
    }
}
//playlitems.delete的java代码示例
公共静态void main(字符串[]args)引发IOException{
YouTube服务=GetYouTube服务();
试一试{
HashMap参数=新的HashMap();
参数。put(“id”,“REPLACE_ME”);
参数put(“onBehalfOfContentTowner”和“”);
YouTube.playlitems.Delete playlitems deleteRequest=YouTube.playlitems().Delete(parameters.get(“id”).toString());
if(parameters.containsKey(“onBehalfOfContentOwner”)和¶meters.get(“onbehalfofcontowner”)!=“”){
playlitemsdeleteRequest.setOnBehalfContentTowner(parameters.get(“onBehalfContentTowner”).toString();
}
playlitemsdeleteRequest.execute();
}
}

页面上的“试用”部分甚至没有输入播放ID,这也会导致相同的错误。只是关于ContentTowner和id的行为。在输入videoID并在页面上执行后,我得到了相同的错误。我应该把播放ID放在哪里

找到了答案。澄清一下:我试图从我自己的播放列表中删除一个视频,并且我得到了正确的身份验证(我可以添加视频)

基本上,我用错了视频ID。我试图使用播放视频时在url中看到的短视频(例如qNqfYtd3HTg)。您需要使用playlitems.list返回的选项(例如UEwzdmpFaWdSbm5rQ3hPN29qNXFjM1c0c20zNVlRSC1hQi5DNUEzOUFFNkIyOUUzOTRC)。后者包括有关视频所在播放列表的信息。这就是为什么从播放列表中删除视频时不需要指定播放ID,只需指定一个长视频ID

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

youtube.playlitems().list(“contentDetails,snippet”).execute().items[0]。snippet.resourceId.videoId

这是要使用的videoId:


youtube.playlitems().list(“contentDetails,snippet”).execute().items[0].id

当您从中检查时,表示您无法对其他播放列表进行任何更改或更改。除非其他用户授予您的应用程序权限,否则无法更新(插入/删除)其他用户播放列表中的视频。检查此错误描述。我试图从自己的播放列表中删除一个视频,并且经过了正确的身份验证(我可以添加视频)。不过我想出来了。我很快会在这里发布答案。基本上,我用错了视频ID。我试图使用播放视频时在url中看到的短视频。您需要使用playlitems.list返回的文件。