如何在YouTube API v3中处理含@符号的用户标识?
处理YouTube API v3中@开头的频道手柄问题
YouTube API v3里,@开头的标识是频道手柄(Handle),和传统的用户名(Username)、UC开头的频道ID不属于同一类参数,所以直接用forUsername或id参数传入手柄(哪怕转码成%40xxx)都会返回空结果。
正确处理步骤:
第一步:通过手柄获取UC频道ID
使用search.list接口,指定type=channel,并将带@符号的手柄作为q参数传入。示例请求:GET https://youtube.googleapis.com/youtube/v3/search?part=snippet&type=channel&q=@ModernDayGK&key=你的API密钥返回结果的
items数组中,每个条目里的id.channelId就是对应的UC开头频道ID(比如UCZ0SxS_c5V0mPgNMyWgVyig)。第二步:用UC频道ID调用原有接口
拿到UC ID后,即可正常使用channels.list(获取频道信息)、playlistItems.list(获取视频流)等接口,传入id=UCxxx参数即可,和你之前处理普通频道的方式完全一致。
旧方法失效原因:
forUsername参数仅支持YouTube的旧版用户名(即不带@的纯字符串标识,比如unisportlife),不兼容新推出的@手柄。id参数只接受官方分配的UC开头频道ID,不识别手柄或用户名,所以直接传入转码后的手柄字符串必然返回空结果。
内容的提问来源于stack exchange,提问作者Antony
相关产品推荐
相关产品推荐

