ニコニコ生放送のコミュニティidをログインせずに取得したい


[Mashup Awards
10向け提供APIガイド](http://search.nicovideo.jp/docs/api/contest.html)を使用したWebアプリケーションを開発しています。

`XMLHttpRequest`を使用して、生放送をjsonで取得することは出来たのですが、取得できた内容にコミュニティid（`co****`）が存在しません。

[code]

    # 例
    $ curl -X POST -d '{"issuer":"test","reason":"ma10","query":"初音ミク","from":0,"size":100,"service":["live"],"search":["title","body","caption","tags"],"join":["cmsid","title","description","thumbnail_url","start_time","update_time","last_comment_time","view_counter","comment_counter","mylist_counter","tags","channel_id","main_community_id","length_seconds","score_timeshift_reserved","provider_type","channel_id","live_status","member_only","is_official","serial_status","episode_count","is_sample","genre","author","publisher","label","is_free","price","series_id","series_number","series","charticle_ppv_type","is_member_only","thumbnail_key","media_id","media_name"],"filters":[],"order":"desc","sort_by":"start_time","timeout":10000}' http://api.search.nicovideo.jp/api/
    
[/code]

なお、返ってくる`lv***`の番号とは関連性が無いようでした。

`http://live.nicovideo.jp/watch/lv***`を、代理サーバーでスクレピングし、中の`<img>`からURLを抽出してブラウザへ返す方法を試しましたが、こちらはアクセス制限が厳しく、１秒間隔でアクセスしても拒否されました。

ログインセッションキーを代理サーバーへ渡し、[getplayerstatus](http://live.nicovideo.jp/api/getplayerstatus/nsen/hotaru)を代理サーバーから取得して、ブラウザへ返す方法を考えましたが、これはWEBアプリケーションとして操作難易度が高いので、最終手段にしたいです。

> 参考：  
>  [ニコニコ動画検索APIのリクエスト発行テスト jsdo.it/59naga](http://jsdo.it/59naga/niconico-api-
> test)（[Internet
> Archive](https://web.archive.org/web/20191017111206/http://jsdo.it/59naga/niconico-
> api-test)）




そのAPIでレスポンスに含まれる項目を制御するのは `join`
というパラメータですが、質問にも書かれている[APIガイド](http://search.nicovideo.jp/docs/api/contest.html)で生放送の検索クエリ例を見ると、次のように書かれています。

[code]

    ...
      "join":[
        "cmsid",
        "title",
        "description",
        "community_id",
        "community_icon",
        "open_time",
        "start_time",
        "end_time",
        "score_timeshift_reserved",
        "provider_type",
        "channel_id",
        "live_status",
        "member_only"
      ],
    ...
    
[/code]

`community_id` というのがありますね。

[code]

    $.ajax({
      type: 'post',
      url: 'http://api.search.nicovideo.jp/api/',
      data: JSON.stringify({
        query: "初音ミク",
        service: ["live"],
        search: ["tags"],
        join: ["cmsid", "title", "community_id"],
        filters: [{type: "equal", field: "provider_type", value: "community"}],
        size: 3,
        issuer: "stackoverflow_sample",
        reason: "ma10"
      }),
      contentType: 'application/json',
      dataType: 'text',
      success: function(resp) {
        $.each(resp.split('\n'), function (_, chunk) {
          if (chunk && (json = JSON.parse(chunk)) &&json.type === 'hits') {
            $('pre').text(JSON.stringify(json.values, null, '    '));
          }
        })
      }
    });
[/code]

[code]

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"></script>
    <pre class="prettyprint"></pre>
[/code]




そのAPIでレスポンスに含まれる項目を制御するのは `join`
というパラメータですが、質問にも書かれている[APIガイド](http://search.nicovideo.jp/docs/api/contest.html)で生放送の検索クエリ例を見ると、次のように書かれています。

[code]

    ...
      "join":[
        "cmsid",
        "title",
        "description",
        "community_id",
        "community_icon",
        "open_time",
        "start_time",
        "end_time",
        "score_timeshift_reserved",
        "provider_type",
        "channel_id",
        "live_status",
        "member_only"
      ],
    ...
    
[/code]

`community_id` というのがありますね。

[code]

    $.ajax({
      type: 'post',
      url: 'http://api.search.nicovideo.jp/api/',
      data: JSON.stringify({
        query: "初音ミク",
        service: ["live"],
        search: ["tags"],
        join: ["cmsid", "title", "community_id"],
        filters: [{type: "equal", field: "provider_type", value: "community"}],
        size: 3,
        issuer: "stackoverflow_sample",
        reason: "ma10"
      }),
      contentType: 'application/json',
      dataType: 'text',
      success: function(resp) {
        $.each(resp.split('\n'), function (_, chunk) {
          if (chunk && (json = JSON.parse(chunk)) &&json.type === 'hits') {
            $('pre').text(JSON.stringify(json.values, null, '    '));
          }
        })
      }
    });
[/code]

[code]

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"></script>
    <pre class="prettyprint"></pre>
[/code]

