使用youtube api v3将视频插入播放列表

bre*_*hts 10 youtube youtube-api

嘿所以我对youtube api相当熟悉.我知道如何阅读频道和播放列表以及获取我认为重要的任何相关视频信息我正在使用php来完成所有这些但是为了确保我拥有正确理解每个请求/响应的工作原理我在浏览器中使用API​​资源管理器进行了尝试

现在我正在尝试将视频插入我刚创建的播放列表中(也通过API),但我确实无法确定我的请求是如何正确形成的

这是请求

POST https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&key={YOUR_API_KEY}

Content-Type:  application/json
Authorization:  Bearer ya29.1.AADtN_WT2TRZzH1t86nVlX26z9WPp-gnDTxVHGvdQ6xx0vyTzmkYeXkLdJerwllLzF_a
X-JavaScript-User-Agent:  Google APIs Explorer

{
  "snippet": {
    "playlistId": "PL8hD12HFC-nuswc21_e64aPAy9B25sEH7",
    "resourceId": {
      "videoId": "KMGuyGY5gvY"
    }
  }
} 
Run Code Online (Sandbox Code Playgroud)

这是回应

400 Bad Request

- Show headers -

{
 "error": {
  "errors": [
   {
     "domain": "youtube.playlistItem",
     "reason": "invalidResourceType",
     "message": "Resource type not supported."
   }
  ],
   "code": 400,
   "message": "Resource type not supported."
 }
}
Run Code Online (Sandbox Code Playgroud)

播放列表是我使用API​​资源管理器创建的空的可公开查看的播放列表,可通过标准YouTube浏览器网站查看.该视频是从youtube中随机选择的...尝试了一些,因为它可能是一个视频的特定问题,但没有运气..我已经开启OAuth并使用的帐户是经过验证的youtube合作伙伴

然而,我似乎可以弄清楚为什么资源类型不受支持我已经环顾网络并且左边的答案没有找到我做错了什么..任何有关这个问题的帮助将非常感激,因为我是善良的此刻陷入了困境

jlm*_*ald 14

resourceId没有完成,因为它没有向API确定如何解释videoId参数.尝试设置的kind属性resourceId,如下所示:

  "snippet": {
    "playlistId": "PL8hD12HFC-nuswc21_e64aPAy9B25sEH7",
    "resourceId": {
      "kind": "youtube#video",
      "videoId": "KMGuyGY5gvY"
    }
  }
Run Code Online (Sandbox Code Playgroud)

这样,API将知道在哪个"域"(可以这么说)找到您发送的字符串标识的资源.

  • 太棒了,谢谢.. 如果我需要将一种类型定义为 youtube#video,还有哪些其他类型是可以接受的,因为我认为 youtube 视频只能添加到播放列表中? (2认同)