【问题标题】:How to programmatically find out what channels are part of a given YouTube network?如何以编程方式找出哪些频道是给定 YouTube 网络的一部分?
【发布时间】:2012-09-16 04:59:41
【问题描述】:

似乎没有官方的 YouTube API 来查找 YouTube 网络列表或特定网络中的频道。任何想法如何找到该信息?

如果没有直接的方法,socialblade.com 使用什么算法来获取近似列表?

【问题讨论】:

标签: youtube-api youtube-channels


【解决方案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 条目包含 &lt;media:credit&gt; 标记且 yt:type 属性的值为合作伙伴,则该条目包含合作伙伴视频。 <media:credit role='uploader' scheme='urn:youtube' yt:display='partner_name' yt:type='partner'>partner_name&lt;/media:credit&gt;

此处描述: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&amp;author=itsjerryandharry&amp;prettyprint=true&amp;uploader=partner" 每个视频都将包含类似&lt;media:credit role='uploader' scheme='urn:youtube' yt:display='ItsJerryAndHarry' yt:type='partner'&gt;itsjerryandharry&lt;/media:credit&gt; 的内容。没有提到 SocialBlade 之类的。
  • 好吧,SocialBlade 显然是 YouTube 合作伙伴。另一种选择是他们使用的是content owner reports,这对公众不可用。如果公共 API 确实包含该信息,他们似乎很可能会削弱它。不过,最好获得“可靠或官方消息来源”的确认。
  • @MilovanZogovic 这样的频道不会引用网络名称“Socialblade”,而是引用 CMS 合作伙伴标题(在本例中为“Maker Studios”)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-17
  • 2015-05-02
  • 2017-02-12
  • 2014-02-02
  • 1970-01-01
  • 2016-02-29
  • 1970-01-01
相关资源
最近更新 更多