Php 按频道名称获取最受欢迎的频道视频
我正在尝试使用YouTube 3.0 API按频道名称列出最流行(或最新)的视频 我已经实现了这个,只是不确定它是否是正确的方法,所以需要一个建议 首先,我按名称查找通道ID(例如,TEDxTalks代替Php 按频道名称获取最受欢迎的频道视频,php,youtube,youtube-api,Php,Youtube,Youtube Api,我正在尝试使用YouTube 3.0 API按频道名称列出最流行(或最新)的视频 我已经实现了这个,只是不确定它是否是正确的方法,所以需要一个建议 首先,我按名称查找通道ID(例如,TEDxTalks代替{channel_name}): 然后我得到这个频道ID的视频,按viewCount(或date)排序,它完美地列出了视频: https://www.googleapis.com/youtube/v3/search?part=snippet&channelId={channel_id}&
{channel_name}
):
然后我得到这个频道ID的视频,按viewCount
(或date
)排序,它完美地列出了视频:
https://www.googleapis.com/youtube/v3/search?part=snippet&channelId={channel_id}&order=viewCount&type=video&key={API_KEY}
第一个请求的可靠性如何?如果名称与频道url slug或用户名(例如tedxtalks)完全匹配,它是否总是返回相应的频道?或者有没有更可靠的方法通过名称获取通道ID
谢谢。搜索API不适用于精确匹配查询。搜索所有频道标题(如果存在,在URL中找到用户名)、频道名称(xxx添加了1个视频)甚至频道ID 要回答你的问题,不幸的是它不可靠,也没有其他更可靠的方法 举个简单的例子,尝试查询用户名“abc” {你的API密钥} 搜索API响应将返回ABCNetwork、ABCNews、udruzenjeabc。。。等等前50项中没有频道标题(用户名)“abc” 即使不是所有频道都有用户名。如果您获得了特定通道的用户名,那么您应该使用通道API进行精确匹配查询 {你的API密钥} 你可能想知道为什么YouTube API不提供“频道名称”(xxx添加了1个视频)的精确搜索?这是因为频道名称不是唯一的,因为人名不是唯一的 如图所示: 如果您正在使用v3并希望检索 对应于当前授权的用户,您可以调用 channels.list(part=“id”,mine=true)方法。这相当于 询问v2中默认用户的频道配置文件 如果你发现自己有一个任意遗留的YouTube用户名 您需要使用API的v3将其转换为通道ID 可以拨打频道列表(part=“id”,forUsername=“username”)呼叫 API 如果您只知道一个显示名称并正在查找 对应的频道,搜索列表(part=“snippet”,type=“channel”, q=“display name”)方法将派上用场。你应该做好准备 处理呼叫返回多个项目的可能性 响应,因为显示名称不唯一 最后,我不知道为什么YouTube不强制为所有新用户生成一个唯一可读的用户名(比如Facebook如何在重复用户名的末尾添加一个随机数,例如zuck.5和zuck.21) 参考资料:
明白了,我只能依靠频道ID。非常感谢您如此完整的回复。因为要求用户输入频道ID对用户来说不是很友好。我可能会使用
search?type=channel?q={name}
列出所有频道,并要求用户选择他想要的频道。
https://www.googleapis.com/youtube/v3/search?part=snippet&channelId={channel_id}&order=viewCount&type=video&key={API_KEY}