【问题标题】:Cannot get ytRating from YouTube Data API v3 with PHP无法使用 PHP 从 YouTube Data API v3 获取 ytRating
【发布时间】:2021-05-19 07:43:30
【问题描述】:

使用 PHP 我可以从 API 中获取一些信息,但我无法获取完整的 API。

这是我目前拥有的:

// url with $vID being my video ID and $API_key being the access key
$api_url = 'https://www.googleapis.com/youtube/v3/videos?part=status&id=' . $vID . '&key=' . $API_key;

// get contents
$videoInfo = file_get_contents( $api_url );

这将为我提供 API 的第一个块,如下所示:

VidInfo: { "kind": "youtube#videoListResponse", 
            "etag": "xxxxxxxxxxxxxx", 
            "items": [ 
                { "kind": "youtube#video", 
                "etag": "yyyyyyyyyyy", 
                "id": "zzzzzz", 
                "status": { 
                    "uploadStatus": "processed", 
                    "privacyStatus": "public", 
                    "license": "youtube", 
                    "embeddable": true, 
                    "publicStatsViewable": true, 
                    "madeForKids": false 
                    } 
                } 
            ], 
            "pageInfo": { "totalResults": 1, "resultsPerPage": 1 } 
        }

但是,完整的 API 响应应如下所示:

{
 "kind": "youtube#videoListResponse",
 "etag": "\"mPrpS7Nrk6Ggi_P7VJ8-KsEOiIw/el3Y0P65UwM366CJD3POX-W4y0c\"",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 1
 },
 "items": [
  {

   "kind": "youtube#video",
   "etag": "\"mPrpS7Nrk6Ggi_P7VJ8-KsEOiIw/Rn64PVwC0Uhr4xp41vDOqygjJ9c\"",
   "id": "VIDEO_ID",
   "contentDetails": {
    "duration": "PT10M6S",
    "dimension": "2d",
    "definition": "hd",
    "caption": "false",
    "licensedContent": false,
    "contentRating": {
     "ytRating": "ytAgeRestricted"
    }
   }
  }
 ]
}

我特别感兴趣的是 ytRating 以查看视频是否受到限制,但我无法在收到的回复中找到它。

谁能帮帮我?

【问题讨论】:

标签: php youtube-api youtube-data-api


【解决方案1】:

作为@CBroe said above,您对Videos.list API 端点的调用缺少必需的contentDetails part 以便能够获取您感兴趣的属性的值contentDetails.contentRating.ytRating

您的网址已更改为:

$api_url = 'https://www.googleapis.com/youtube/v3/videos?part=status,contentDetails&id=' . $vID . '&key=' . $API_key.

还请注意,使用fields 请求参数是一种很好的做法,因为只从API 中询问实际使用的信息。如果只对ytRating 感兴趣,请输入您的网址,如下所示:

$api_url = 'https://www.googleapis.com/youtube/v3/videos?part=contentDetails&fields=items/contentDetails/contentRating/ytRating&id=' . $vID . '&key=' . $API_key.

【讨论】:

  • 谢谢 - 现在知道了 :)
猜你喜欢
  • 2021-01-23
  • 2015-01-14
  • 2018-07-05
  • 2013-11-10
  • 2017-11-01
  • 2017-04-22
  • 2014-04-10
  • 1970-01-01
  • 2014-01-26
相关资源
最近更新 更多