我正在尝试确定视频是通过 v3 数据 API 上传为“短”视频还是常规/长视频。
我正在通过以下方式查看视频信息:
https://www.googleapis.com/youtube/v3/videos?key=[API_KEY]&id=[VIDEO_ID]&part=snippet
但是没有任何返回似乎向我表明了某种方式。
通过使用以下方法,您可以确定视频是否为#short视频。
您需要的是:
做法如下:
playlistItems.list
参数中传递 #shorts 播放列表1 向 playlistId
发出请求。videoId
参数中添加您要测试的VIDEO_ID。这是一个例子:
CHANNEL_ID
,但替换 CHANNEL_ID 中的前两个字符后 - 在本例中,开头的 UC
字符变为 UUSH
- 请注意突出显示的字符。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 频道进行了测试,看来这不起作用。