2013-06-01 19 views
0

通过使用API​​的v2:http://gdata.youtube.com/schemas/2007/categories.cat,我可以看到可指定和不赞成使用的视频类别。如何仅列出可分配的视频类别youtube v3?

但是,使用谷歌V3 API的数据,我看到的所有类别,但没有标志,指示它们是否可以作为一个视频上传类别。恰当的例子是标有“动漫/动画”(类别31)的类别。如果您尝试使用此类别上传视频,则在上传过程结束时,您会收到来自YT的“错误请求”响应。

如果您选择任何在“分配”列表按照第一URL类别,然后上传作品。下面是使用基于Atom API弃用的类别:

<atom:category term="Movies_anime_animation" label="Anime/Animation" xml:lang="en-US"> 
    <yt:deprecated/> 
</atom:category> 

这是同样的事情,JSON,从谷歌API浏览器:

{ 
"id": "31", 
"kind": "youtube#videoCategory", 
"etag": "\"g-RLCMLrfPIk8n3AxYYPPliWWoo/-p_eJg3ji5PiNMcZrzS4hNfl4gQ\"", 
"snippet": { 
    "channelId": "UCBR8-60-B28hp2BmDPdntcQ", 
    "title": "Anime/Animation" 
} 

我已经看过了video.list V3 API文档,以及来自相同API的原始JSON输出。我看不出如何区分已弃用和可分配的类别。这只是从API中丢失或我错过了什么?

+0

您是否解决了这个问题?尽管您可以使用v2 XML接口获取可分配类别的列表,但很难将此信息与v3界面提供的列表相关联。使用类别标题进行匹配是有问题的。例如,目前有2个“喜剧”类别,其中一个是可分配的,另一个是弃用的。似乎没有办法确定要消除哪些v3“喜剧”类别。你最终做了什么? – grfryling

+0

我不得不使用v3获取类别,然后使用v2 API进一步解决那些“可上传”的问题。这是非常可怕的imho。由于v3 API根本没有显示出所需的信息,所以无法看到它周围的方式。 –

回答

1

您可以接收解析XML文档的可指定类别列表。这是一个例子PHP

$catURL = 'http://gdata.youtube.com/schemas/2007/categories.cat'; 
$cxml = simplexml_load_file($catURL); 
$cxml->registerXPathNamespace('atom', 'http://www.w3.org/2005/Atom'); 
$result = $cxml->xpath('//atom:category/yt:assignable/..'); 

$categories = array(); 
foreach ($result as $row) $categories[(string)$row['term']] = (string)$row['label']; 
+0

是的,很清楚。除了我的问题是“如何在V3 API中做到这一点?”。我知道如何在v2 API中做到这一点。 –

相关问题