如何使用来自 YouTube Data API V3 的 enpoint 搜索通过 channelId 获取频道图标
Posted
技术标签:
【中文标题】如何使用来自 YouTube Data API V3 的 enpoint 搜索通过 channelId 获取频道图标【英文标题】:How to get channel icon by channelId with enpoint search from YouTube Data API V3 【发布时间】:2021-12-29 10:17:28 【问题描述】:我在 /search enpoint 上提出请求:https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=UC8M5YVWQan_3Elm-URehz9w&key=AIzaSyAp8yGkCqT9e9p7IzgpE24KGoqLRgNhOg0&q=Utopia
我收到视频及其预览,但频道图标没有出现,我阅读了如何获取频道图标,我明白了,https://developers.google.com/youtube/v3/docs/search/list 你需要从 Id 类中获取 channelId 并将其传递给channelId 查询参数,之后有关通道的数据将来到 Snippet 模型,以及图标到 Thumbnails,但我不明白如何以及在何处从模型 Id 中获取 channelId 以及将其传递给请求参数的位置,去哪里买比较好?
【问题讨论】:
【参考方案1】:频道图标是指频道头像? - 如果是这样,那么,是的,频道图标会出现在响应的youtube#channel
中。
这是您使用your sample request 收到的回复的一部分:
"kind": "youtube#searchListResponse",
"etag": "hwZ_cPPePXCDt8h44C-3Ym9NP2I",
"nextPageToken": "CAUQAA",
"regionCode": "CO",
"pageInfo":
"totalResults": 244,
"resultsPerPage": 5
,
"items": [
"kind": "youtube#searchResult",
"etag": "p0M_r8_zUEtBcT7MrX49-24RkXU",
"id":
"kind": "youtube#channel",
"channelId": "UC8M5YVWQan_3Elm-URehz9w"
,
"snippet":
"publishedAt": "2015-04-14T02:57:14Z",
"channelId": "UC8M5YVWQan_3Elm-URehz9w",
"title": "Utopia Show",
"description": "Клоунада и театральщина Реклама: utopia@tag.show #utopia_show #topatella #topsecret.",
"thumbnails":
"default":
"url": "https://yt3.ggpht.com/ytc/AKedOLRf5WOTI2S1ruF-YWz22VFqh5QxpMEZiqWX5vDWTw=s88-c-k-c0xffffffff-no-rj-mo"
,
"medium":
"url": "https://yt3.ggpht.com/ytc/AKedOLRf5WOTI2S1ruF-YWz22VFqh5QxpMEZiqWX5vDWTw=s240-c-k-c0xffffffff-no-rj-mo"
,
"high":
"url": "https://yt3.ggpht.com/ytc/AKedOLRf5WOTI2S1ruF-YWz22VFqh5QxpMEZiqWX5vDWTw=s800-c-k-c0xffffffff-no-rj-mo"
,
"channelTitle": "Utopia Show",
"liveBroadcastContent": "none",
"publishTime": "2015-04-14T02:57:14Z"
,
"kind": "youtube#searchResult",
"etag": "0JhSluN0BMHidIIoDBC19t7HNik",
"id":
"kind": "youtube#video",
"videoId": "Ywpd8M6wfHc"
,
"snippet":
"publishedAt": "2021-10-05T13:43:17Z",
"channelId": "UC8M5YVWQan_3Elm-URehz9w",
"title": "ТЫ БЫ НИКОГДА ТАКОЕ НЕ ЗАГУГЛИЛ #9",
"description": "https://go.skyeng.ru/utopia_show_skypro - Начни свой путь в IT с онлайн-университетом Skypro. Забирай 10% скидку на один из курсов по промокоду ...",
"thumbnails":
"default":
"url": "https://i.ytimg.com/vi/Ywpd8M6wfHc/default.jpg",
"width": 120,
"height": 90
,
"medium":
"url": "https://i.ytimg.com/vi/Ywpd8M6wfHc/mqdefault.jpg",
"width": 320,
"height": 180
,
"high":
"url": "https://i.ytimg.com/vi/Ywpd8M6wfHc/hqdefault.jpg",
"width": 480,
"height": 360
,
"channelTitle": "Utopia Show",
"liveBroadcastContent": "none",
"publishTime": "2021-10-05T13:43:17Z"
,
[other videos items here]
]
您可以从此响应中获得 频道图标,如下所示:
JSON_response.items[0].snippet.thumbnails.medium.url
你会得到:
https://yt3.ggpht.com/ytc/AKedOLRf5WOTI2S1ruF-YWz22VFqh5QxpMEZiqWX5vDWTw=s240-c-k-c0xffffffff-no-rj-mo
JSON_response
是请求的响应。我不确定您是如何阅读回复中的项目的,但是,我希望这个答案对您有所帮助。
【讨论】:
我已经尝试过这样做,但问题是我需要在视频下方显示频道图标。当我进行搜索时,我会在 recyclerview 中显示 20 个视频,每个视频下应该有一个频道所有者图标。抱歉没有指定 @TapchylovRadin 然后,为此您必须执行第二个请求 - 这次,发送到channel
端点并发送您在每个视频中获得的 channel_id
;确保不要多次请求获取相同的频道图标。在 search
响应中,它不会出现频道信息,而是 channel_id
。您可以使用它来发出第二个请求并获取您需要的频道详细信息。
感谢您的回答,您提出了一个好主意!
很抱歉再次打扰您,但是如何在一个recyclerview中同时显示两个请求,即/search和/channel?
你能回答我吗?以上是关于如何使用来自 YouTube Data API V3 的 enpoint 搜索通过 channelId 获取频道图标的主要内容,如果未能解决你的问题,请参考以下文章
Youtube Data API v.3 - 全自动 oAuth 流程(Python)?
Youtube api 显示来自用户播放列表的有限视频 android
如何使用 YouTube Data API v3 更改页面结果
YouTube Data API - 如何通过 API 获取“已保存的播放列表”