Видимо "Gaming" не является действительной категорией YouTube - PullRequest
1 голос
/ 21 декабря 2011

Я скопировал и вставил пример API-кода YouTube для загрузки через браузер на свой веб-сайт, но он появляется, когда я изменяю категорию на «Игры», из-за неправильного запроса.

Вот пример кода:

$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();

$myVideoEntry->setVideoTitle('My Test Movie');
$myVideoEntry->setVideoDescription('My Test Movie');
// The category must be a valid YouTube category!
$myVideoEntry->setVideoCategory('Autos');

// Set keywords. Please note that this must be a comma-separated string
// and that individual keywords cannot contain whitespace
$myVideoEntry->SetVideoTags('cars, funny');

$tokenHandlerUrl = 'http://gdata.youtube.com/action/GetUploadToken';
$tokenArray = $yt->getFormUploadToken($myVideoEntry, $tokenHandlerUrl);
$tokenValue = $tokenArray['token'];
$postUrl = $tokenArray['url'];

Однако, когда я меняю

$myVideoEntry->setVideoCategory('Autos');

до

$myVideoEntry->setVideoCategory('Gaming');

Я получаю ..

Fatal error: Uncaught exception 'Zend_Gdata_App_HttpException' with message 'Expected response code 200, got 400 <?xml version='1.0' encoding='UTF-8'?><errors><error><domain>yt:validation</domain><code>invalid_value</code><location type='xpath'>media:group/media:category[@scheme='http://gdata.youtube.com/schemas/2007/categories.cat']/text()</location></error></errors>

Я определил это как единственную ошибку. Я попытался скопировать и вставить слово «Игры» из выпадающего меню в форму загрузки на YouTube, но безрезультатно (не отчаялся ли я).

Кто-нибудь знает, почему это происходит?

1 Ответ

5 голосов
/ 21 декабря 2011

Я посмотрел на полученную ошибку, и в ней был URL (http://gdata.youtube.com/schemas/2007/categories.cat). Я скачал файл и нашел следующую строку:

<atom:category term='Games' label='Gaming' xml:lang='en-US'><yt:assignable/><yt:browsable regions='AR AU BD BE BG BR CA CO CZ DE DK DZ EE EG ES ET FI FR GB GR HK HR HU ID IE IL IN IR IS IT JO JP KE KR LT LV MA MX MY NG NL NO NZ PH PK PL PT RO RS RU SA SE SG SI SK TH TN TR TW TZ UA UG US VN YE ZA'/></atom:category>

Так что я быпопробуйте термин «Игры» вместо «Игры».

$myVideoEntry->setVideoCategory('Games');
...