用于从帐户获取视频的 YouTube API



这里有一个答案描述了如何从YouTube频道获取所有视频。但是,在许多情况下,父帐户本身并不是一个频道,而是类似的东西(例如这是一个频道,如 URL 中的"频道"字所示,而这个不是,因为它在 URL 中有一个关键字"c",而不是"频道")。我仍然可以从中获取播放列表,并从该WWE帐户中的单个播放列表中获取所有视频,但是该帐户中有许多视频不属于该帐户中列出的任何播放列表,如下所示)。

问题 - 有没有办法从帐户获取所有视频,而不仅仅是频道或播放列表?或者有没有办法从可以找到上述所有未列出的视频的帐户中获取默认播放列表/频道?

编辑(15/03/2022):

我发现video_id=eJjbnFZ6yA8在"上传"播放列表中,并且位于位置 #7765。

您可以尝试通过进行以下查询来获取给定播放列表中的位置:

https://content-youtube.googleapis.com/youtube/v3/playlistItems?maxResults=50&playlistId=<UPLOADS_PLAYLIST_ID>&videoId=<VIDEO_ID_YOU_WANT_TO_GET>&part=id,snippet,contentDetails,status&key=[YOUR_API_KEY]

这些是video_id=eJjbnFZ6yA8的结果:

网址:

https://content-youtube.googleapis.com/youtube/v3/playlistItems?maxResults=50&playlistId=UUJ5v_MCY6GNUBTO8-D3XoAg&videoId=eJjbnFZ6yA8&key=[YOUR_API_KEY]&part=id,snippet,contentDetails,status

响应:

{
"kind": "youtube#playlistItemListResponse",
"etag": "SyO-_mevTIc8xX7G8QA0JKcgwTE",
"items": [
{
"kind": "youtube#playlistItem",
"etag": "70IgC85z_68I9jCkp4Jwuwo_pO8",
"id": "VVVKNXZfTUNZNkdOVUJUTzgtRDNYb0FnLmVKamJuRlo2eUE4",
"snippet": {
"publishedAt": "2020-12-27T21:05:54Z",
"channelId": "UCJ5v_MCY6GNUBTO8-D3XoAg",
"title": "FULL MATCH - The Rock vs. Mankind – WWE Championship Match: Raw, Jan. 4, 1999",
"description": "Mankind looks to make his dream come true when he challenges The Rock for the WWE Championship on the first Raw of 1999: Courtesy of WWE Network.nWWE Network | Subscribe now: http://wwe.yt/wwenetworkrn---------------------------------------------------------------------rnFollow WWE on YouTube for more exciting action!rn---------------------------------------------------------------------rnSubscribe to WWE on YouTube: http://wwe.yt/rnCheck out WWE.com for news and updates: http://goo[.]gl/akf0J4rnWatch WWE on Sony in India: http://www.wwe.com/SonySportsNetworkrnFind the latest Superstar gear at WWEShop: http://shop.wwe.comrn---------------------------------------------rnCheck out our other channels!rn---------------------------------------------rnThe Bella Twins: https://www.youtube.com/thebellatwinsrnUpUpDownDown: https://www.youtube.com/upupdowndownrnWWEMusic: https://www.youtube.com/wwemusicrnTotal Divas: https://www.youtube.com/wwetotaldivasrn------------------------------------rnWWE on Social Mediarn------------------------------------rnTwitter: https://twitter.com/wwernFacebook: https://www.facebook.com/wwernInstagram: https://www.instagram.com/wwe/rnReddit: https://www.reddit.com/user/RealWWErnGiphy: https://giphy.com/wwern------------------------------------rnWWE Podcastsrn------------------------------------rnAfter the Bell with Corey Graves: https://wwe.com/afterthebellrnThe New Day: Feel the Power: https://wwe.com/feelthepowerrnUncool with Alexa Bliss: https://wwe.com/uncoolwithalexa",
"thumbnails": {
"default": {
"url": "https://i.ytimg.com/vi/eJjbnFZ6yA8/default.jpg",
"width": 120,
"height": 90
},
"medium": {
"url": "https://i.ytimg.com/vi/eJjbnFZ6yA8/mqdefault.jpg",
"width": 320,
"height": 180
},
"high": {
"url": "https://i.ytimg.com/vi/eJjbnFZ6yA8/hqdefault.jpg",
"width": 480,
"height": 360
},
"standard": {
"url": "https://i.ytimg.com/vi/eJjbnFZ6yA8/sddefault.jpg",
"width": 640,
"height": 480
},
"maxres": {
"url": "https://i.ytimg.com/vi/eJjbnFZ6yA8/maxresdefault.jpg",
"width": 1280,
"height": 720
}
},
"channelTitle": "WWE",
"playlistId": "UUJ5v_MCY6GNUBTO8-D3XoAg",
"position": 7765,
"resourceId": {
"kind": "youtube#video",
"videoId": "eJjbnFZ6yA8"
},
"videoOwnerChannelTitle": "WWE",
"videoOwnerChannelId": "UCJ5v_MCY6GNUBTO8-D3XoAg"
},
"contentDetails": {
"videoId": "eJjbnFZ6yA8",
"videoPublishedAt": "2021-01-04T16:00:08Z"
},
"status": {
"privacyStatus": "public"
}
}
],
"pageInfo": {
"totalResults": 1,
"resultsPerPage": 50
}
}

初步回复(17/02/2022):

这是一个奇怪的结果,恕我直言。您可以执行以下任一步骤:

  • 从给定频道获取所有播放列表,并循环获取的每个播放列表中的每个视频,并与要检查它是否属于找到的任何播放列表的video_id进行比较。
  • 如果视频未
  • 在任何播放列表中找到,则可能是因为视频本身不属于任何创建的播放列表,而是属于所有者频道的"上传">播放列表。

要检查我在评论和此答案中提到的最后一点,您可以按照以下步骤操作:

  1. 将channel_id的第二个字符从">C"替换为">U"。示例:channel_id:UCJ5v_MCY6GNUBTO8-D3XoAg- 修改后,结果为:UUJ5v_MCY6GNUBTO8-D3XoAg= 这是通道UCJ5v_MCY6GNUBTO8-D3XoAg"上传"playlist_id
  2. 使用上传playlist_id,将其粘贴到以下 URL 中:https://www.youtube.com/playlist?list=<UPLOAD_PLAYLIST_ID_OF_THE_CHANNEL>

结果:

https://www.youtube.com/playlist?list=UUJ5v_MCY6GNUBTO8-D3XoAg

然后,您可以生成给定频道的默认"上传"播放列表及其中的视频。


N.B,某些视频(可能包括您提供的video_id)可能不会出现在任何播放列表中,例如,在进入"上传播放列表"示例时(https://www.youtube.com/playlist?list=UUJ5v_MCY6GNUBTO8-D3XoAg),您可能会在播放列表本身上方收到以下消息:

不可用的视频将被隐藏。

在这种情况下,可能值得使用 YouTube 数据 API 查询播放列表中的视频UUJ5v_MCY6GNUBTO8-D3XoAg或仔细检查您所在地区的主题视频是否可用 - 就我而言,哥伦比亚,我收到了上面提到的消息,但是,这可能不会在美国或英国发生。

最新更新