如何以编程方式找出哪些频道是给定 YouTube 网络的一部分?
Posted
技术标签:
【中文标题】如何以编程方式找出哪些频道是给定 YouTube 网络的一部分?【英文标题】:How to programmatically find out what channels are part of a given YouTube network? 【发布时间】:2012-09-16 04:59:41 【问题描述】:似乎没有官方的 YouTube API 来查找 YouTube 网络列表或特定网络中的频道。任何想法如何找到该信息?
如果没有直接的方法,socialblade.com 使用什么算法来获取近似列表?
【问题讨论】:
你不是想获取视频所属的频道吧?像这样的东西? ***.com/questions/12856445/… 【参考方案1】:我不知道这是否是诸如 socialblade 或 channelmeter 之类的网站获取网络频道的方式。但我就是这样做的。
假设我访问了这个视频链接:http://www.youtube.com/watch?v=_8AZT40gH5E
在联网频道的元标记信息中,有一个属性<meta name=attribution content=JamieOliver/>
(作为示例)实际上指定了该频道所属的网络。所以我所做的是来自我正在使用的频道的一个视频,并使用这样的小功能:
$tags = get_meta_tags("http://www.youtube.com/watch?v=_8AZT40gH5E");
echo $network = $tags['attribution'];
并且您拥有与频道关联的网络。
【讨论】:
没问题,很高兴能帮上忙!【参考方案2】:目前您似乎无法使用 v3 API 获取此信息,但我相信 socialblade 所称的 networks 是内容所有者或“合作伙伴名称”。
在 API 响应中,如果 Feed 条目包含
<media:credit>
标记且 yt:type 属性的值为合作伙伴,则该条目包含合作伙伴视频。<media:credit role='uploader' scheme='urn:youtube' yt:display='partner_name' yt:type='partner'>
partner_name</media:credit>
此处描述:https://developers.google.com/youtube/2.0/reference#Video_Feeds
可能只是将仅包含不同合作伙伴的视频的频道分配给该合作伙伴的“网络”。 (或者可能任何个视频。)
编辑:由于这显然不准确,我会指出分析 API 似乎确实有该信息,但从描述中听起来它只允许报告您自己的“网络”频道。话虽如此,SocialBlade 必须从某处获取他们关于其他网络的信息:
参与 YouTube 合作伙伴计划的内容所有者还可以使用 API 来检索报告,这些报告汇总了与其内容所有者帐户相关联的所有 YouTube 频道的分析数据。
【讨论】:
嗯.. 我不认为它是这样工作的。如果您从“SocialBlade”网络获取“itsjerryandharry”频道并获取其视频:curl "https://gdata.youtube.com/feeds/api/videos?v=2&author=itsjerryandharry&prettyprint=true&uploader=partner"
每个视频都将包含类似<media:credit role='uploader' scheme='urn:youtube' yt:display='ItsJerryAndHarry' yt:type='partner'>itsjerryandharry</media:credit>
的内容。没有提到 SocialBlade 之类的。
好吧,SocialBlade 显然是 YouTube 合作伙伴。另一种选择是他们使用的是content owner reports,这对公众不可用。如果公共 API 确实包含该信息,他们似乎很可能会削弱它。不过,最好获得“可靠或官方消息来源”的确认。
@MilovanZogovic 这样的频道不会引用网络名称“Socialblade”,而是引用 CMS 合作伙伴标题(在本例中为“Maker Studios”)以上是关于如何以编程方式找出哪些频道是给定 YouTube 网络的一部分?的主要内容,如果未能解决你的问题,请参考以下文章