1

javascript/jquery を使用して動画 ID オブジェクトを YouTube プレイリストに投稿すると、400 エラーの無効な JSON が表示されます。オブジェクトは次のとおりです。

 { "video":
        {
         "id": "me21QEpg760"
        }
 }

ajax リクエスト:

 $.ajax({
    type: 'POST',
    url: "https://gdata.youtube.com/feeds/api/playlists/" + plistId + '?v=2&alt=jsonc',
    data: {
          "video":
                 {
                   "id": "me21QEpg760"
                 }
          },
    dataType: 'jsonc',
    beforeSend: function(xhr){
        xhr.setRequestHeader('Content-type', 'application/json; charset=UTF-8');
        xhr.setRequestHeader('Authorization', 'AuthSub token="' + Video.token + '"');
        xhr.setRequestHeader('X-GData-Key', 'key="' + Video.dev_key + '"');
        xhr.setRequestHeader('GData-Version', 2);
    },
    scope: 'https://gdata.youtube.com',
    error: function(data, textStatus, errorThrown) {
      console.log(data);
    }
 });

検証済みの dev_key とアクセス トークンを使用して oauth2 で認証されています。GET リクエストに問題はありません。プレイリストとビデオ情報を問題なく取得できます。

プレイリストのプレフィックスを変更してみました - プレイリスト ID から「PL」を削除しましたが、同じ結果が得られます YouTube プレイリスト API が機能しなくなりましたか?

また、16 文字 vs. 32 のプレイリストに投稿してみました。違いはありません Youtube API: 新しい 32 文字のプレイリスト ID を使用してプレイリストに動画を追加する

YouTubeでAPIを使用するためのドキュメントが他にもあるため、API v2.1を使用しています。v3 のドキュメントには、Google プラスの例が他にもあります。私は v3 を使用することに興味がありますが、実際にはいくつかの youtube 固有の JavaScript の例を使用して構文を理解することができます。

JSONLint を使用して、渡したオブジェクトが有効な JSON であることを確認しました。jsonc v2.0 ガイドは、この特定のデータ オブジェクトを同じ形式で示しています。 https://developers.google.com/youtube/2.0/developers_guide_jsonc

` POST /feeds/api/users/default/favorites?alt=jsonc HTTP/1.1 Host: gdata.youtube.com Content-Type: application/json Authorization: AuthSub token="AUTHORIZATION_TOKEN" GData-Version: 2 X-GData-キー: キー=DEVELOPER_KEY

{
  "data":{
     "video":{
      "id":"6aiCJubxiGI"
    }
  }
}`

何か案は?

4

0 に答える 0