有没有办法使用 YouTube 的 v3 API 来确定视频(通过 ID)是“短片”还是常规视频?

问题描述 投票:0回答:1

我正在尝试确定视频是通过 v3 数据 API 上传为“短”视频还是常规/长视频。

我正在通过以下方式查看视频信息:

https://www.googleapis.com/youtube/v3/videos?key=[API_KEY]&id=[VIDEO_ID]&part=snippet

但是没有任何返回似乎向我表明了某种方式。

youtube-api youtube-data-api
1个回答
0
投票

通过使用以下方法,您可以确定视频是否为#short视频。

您需要的是:

  • 您要检查的 VIDEO_ID 是否为 #short 视频。
  • 视频所有者的 CHANNEL_ID

做法如下:

  • 通过在
    playlistItems.list
    参数中传递 #shorts 播放列表1
    playlistId
    发出请求。
  • 在上述请求中,在
    videoId
    参数中添加您要测试的VIDEO_ID。

这是一个例子:

  • 频道_ID:UCbqEsRhXQI5KWYVr8mSWWWw
  • #Shorts Playlist_ID:UUSHbqEsRhXQI5KWYVr8mSWWWw <= This is the same
    CHANNEL_ID
    ,但替换 CHANNEL_ID 中的前两个字符后 - 在本例中,开头的
    UC
    字符变为
    UUSH
    - 请注意突出显示的字符。
  • 视频_ID:
    07pPUAjEmzA

要求:

GET https://youtube.googleapis.com/youtube/v3/playlistItems?part=id,snippet,contentDetails&maxResults=10&playlistId=UUSHbqEsRhXQI5KWYVr8mSWWWw&videoId=07pPUAjEmzA&fields=items(contentDetails/videoId,id,snippet/title),kind,nextPageToken,pageInfo,prevPageToken,tokenPagination&key=[YOUR_API_KEY] HTTP/1.1

Authorization: Bearer [YOUR_ACCESS_TOKEN]
Accept: application/json

结果:

{
  "kind": "youtube#playlistItemListResponse",
  "items": [
    {
      "id": "VVVTSGJxRXNSaFhRSTVLV1lWcjhtU1dXV3cuMDdwUFVBakVtekE",
      "snippet": {
        "title": "Batman in Blender for 1h and 30 min #blender #speedsculpt #speedsculpting #digitalart"
      },
      "contentDetails": {
        "videoId": "07pPUAjEmzA"
      }
    }
  ],
  "pageInfo": {
    "totalResults": 1,
    "resultsPerPage": 10
  }
}

您可以在 API 浏览器演示中尝试此请求

通过将

videoId
参数的值更改为
LyvOV84kJmU
并再次发出请求,响应将是 - 空:

{
  "kind": "youtube#playlistItemListResponse",
  "items": [],
  "pageInfo": {
    "totalResults": 0,
    "resultsPerPage": 10
  }
}

在这种情况下,这意味着该视频不是 #shorts 视频 - 尽管该视频

LyvOV84kJmU
来自频道
UCbqEsRhXQI5KWYVr8mSWWWw


1所有功劳都归功于答案的发布者的惊人发现。我假设当 YouTube 频道所有者上传

#short
视频时,会自动创建 Shorts 播放列表 - 如果您或任何人知道生成仅包含 #shorts 视频的播放列表的真正原因,请告诉我们知道。

2 我已经使用自动生成的 YouTube 频道进行了测试,看来这不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.