Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

TORISOUP/UnityNicoliveClient

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

100 Commits

Repository files navigation

UnityNicoliveClient

UnityNicoliveClientはニコニコ生放送の新配信番組をUnityから操作するクライアントです。

導入方法

R3版(v1.0.0~)

UPMから導入してください。

https://github.com/TORISOUP/UnityNicoliveClient.git?path=Assets/TORISOUP/NicoliveClient/Plugins

UniRx版

v2023.09.06

依存ライブラリ

次のライブラリを別途導入する必要があります。

  • R3
  • R3.Unity
  • UniTask

機能一覧

  • ログインしてユーザセッション取得
  • 番組開始/終了
  • 番組延長手段取得
  • 番組延長
  • 運営コメント投稿/削除
  • 番組情報取得
  • 番組統計情報取得(来場者数、コメント数)
  • (削除) コメント取得 (削除ここまで)
  • アンケートの実行/終了

コメントの取得についてはNdgrClientSharpを利用してください。

またコミュニティの概念がなくなったため、それに関係する機能を削除しました。

使い方

基本的な使い方

  1. NiconicoUserClient.LoginAsync を実行してNiconicoUserを取得
  2. NiconicoUserNicoliveApiClientに渡してクライアント作成
  3. SetNicoliveProgramIdに番組IDを渡して操作対象番組を登録
  4. 各種メソッドを実行
public async UniTask LoginAsync(string mail, string pass, CancellationToken ct)
{
 //ログイン実行
 NiconicoUser user = await NiconicoUserClient.LoginAsync(mail, pass, ct);
 //クライアントにユーザ情報を渡して初期化
 var client = new NicoliveApiClient(user);
 //操作したい番組ID登録
 client.SetNicoliveProgramId("lv123456");
 //運営コメントを非同期で投稿
 await client.SendOperatorCommentAsync("名前", "テスト投稿", "white", false, ct);
}

操作する番組の設定

SetNicoliveProgramId()を実行する。これを実行しないとApiClientは動作しません。

client.SetNicoliveProgramId("lv123456");

UserAgentを設定する(推奨)

デフォルトではUnityNicoliveClientがUAに設定されています。 変更したい場合はSetCustomUserAgentから設定可能(できるだけ自身のアプリ名を設定してください)

client.SetCustomUserAgent("YourApplicationNameHere");

番組の詳細情報取得

GetProgramInfoAsync で取得可能

ProgramInfo result = await client.GetProgramInfoAsync("lv123456", ct);

コメントを取得する

コメントの取得についてはNdgrClientSharpを利用してください。

  1. GetProgramInfoAsync で番組情報(ProgramInfo)を取得する
  2. ProgramInfoの中のRoom.ViewUeiを使ってNDGR(ニコ生の新コメントサーバー)に接続する
  3. NdgrClientSharpNdgrLiveCommentFetcherを使ってコメントを取得する
// 番組情報取得
var programInfo = await client.GetProgramInfoAsync("lv12345", ct);
// 新仕様にニコ生では常にRoomは1つ
// そこに入っているViewUriを使う
var viewUri = programInfo.Rooms[0].ViewUri
// 生放送コメント取得用のクライアントを生成
var liveCommentFetcher = new NdgrLiveCommentFetcher();
// コメントの受信準備
liveCommentFetcher
 .OnMessageReceived
 .Subscribe(chukedMessage =>
 {
 switch (chukedMessage.PayloadCase)
 {
 case ChunkedMessage.PayloadOneofCase.Message:
 // コメントやギフトの情報などはMessage
 Debug.Log(chukedMessage.Message);
 break;
 case ChunkedMessage.PayloadOneofCase.State:
 // 番組他状態の変更などはStateから取得可能
 Debug.Log(chukedMessage.State);
 break;
 default:
 break;
 }
 });
// コメントの受信開始
liveCommentFetcher.Connect(viewUri);
// ---
// コメントの受信停止
liveCommentFetcher.Disconnect();
// リソースの解放(忘れずに)
liveCommentFetcher.Dispose();

詳しくはNdgrClientSharpのREADMEを参照してください。

アンケートの実行

// アンケート開始
await client.StartEnqueteAsync(
 "lv12345",
 "好きな食べ物は?",
 new[] { "バナナ", "りんご", "カレー" }, ct);
// 結果表示&取得
var result = await client.ShowResultEnqueteAsync("lv12345", ct);
foreach (var data in result.Items)
{
 Debug.Log($"{data.Name} : {data.Rate}%");
}
// アンケート終了
await client.FinishEnqueteAsync("lv12345", ct);

配布ライセンス

MITライセンス

権利表記

UniRx Copyright (c) 2014 Yoshifumi Kawai https://github.com/neuecc/UniRx/blob/master/LICENSE

R3 Copyright (c) 2024 Cysharp, Inc. https://github.com/Cysharp/R3/blob/main/LICENSE

UniTask Copyright (c) 2019 Yoshifumi Kawai / Cysharp, Inc. https://github.com/Cysharp/UniTask/blob/master/LICENSE

NugetForUnity Copyright (c) 2018 Patrick McCarthy https://github.com/GlitchEnzo/NuGetForUnity/blob/master/LICENSE

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

Languages

AltStyle によって変換されたページ (->オリジナル) /