0

http://gdata.youtube.com/schemas/2007/categories.cat経由で API の v2 を使用すると、割り当て可能なビデオ カテゴリと非推奨のビデオ カテゴリの両方を確認できます。

ただし、v3 Google データ API を使用すると、すべてのカテゴリが表示されますが、ビデオ アップロードのカテゴリとして使用できるかどうかを示すフラグは表示されません。その好例が「アニメ/アニメ」というカテゴリ(カテゴリ31)です。このカテゴリを使用して動画をアップロードしようとすると、アップロード プロセスの最後に YouTube から「Bad Request」という応答が返されます。

最初の URL に従って「割り当て可能」リストのいずれかのカテゴリを選択すると、アップロードが機能します。以下は、Atom ベースの API を使用した非推奨のカテゴリです。

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

これは、Google API Explorer からの JSON の同じものです。

{
"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 に欠けているだけですか、それとも何か見逃していますか?

4

2 に答える 2

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'];
于 2013-06-13T16:16:42.590 に答える
0

この質問に出くわした人のために: YouTube V3 API は、各カテゴリ スニペットで割り当て可能なフラグを返すようになりました。

リクエスト

curl \
  'https://www.googleapis.com/youtube/v3/videoCategories?part=snippet&regionCode=NL&key=[YOUR_API_KEY]' \
  --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
  --header 'Accept: application/json' \
  --compressed

応答

{
    "kind": "youtube#videoCategory",
    "etag": "7mqChSJogdF3hSIL-88BfDE-W8M",
    "id": "17",
    "snippet": {
        "title": "Sports",
        "assignable": true,
        "channelId": "UCBR8-60-B28hp2BmDPdntcQ"
    }
}
于 2020-09-02T09:02:24.497 に答える