2013-06-01 20 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中做到這一點。 –

相關問題