SyncSing Studio
Developers

権限(API 1.1)

拡張機能は manifest の permissions に使う権限を書き、利用者が入れるときに許可したものだけを使えます(一部だけ許可されることもあります。許可されなかった権限は hello の返事の denied に入ります)。

守られる範囲(大事)

隔離(既定): system.unrestricted を許可されていない拡張機能は、Windows の AppContainer の中で動きます。

隔離して動かす(既定)system.unrestricted を許可したとき
ファイルを読む自分の EXE のフォルダ・Windows や .NET などの公開された場所だけ利用者が読めるものすべて
ファイルを書くdata_dir・log_dir(一時フォルダ TEMP は data_dir\tmp)だけ利用者が書けるものすべて
通信network.hosts が空ならできない。書いてあればインターネットへの接続だけ(宛先は絞れない)。LAN・localhost・待ち受けはできない制限なし
ほかのアプリ中身を読む・操作することはできない制限なし
クリップボード読めない(書ける)読めない(書ける)
メモリ・子プロセス・優先度・画面の操作Job Object で上限(両方とも同じ)同じ
アプリの機能許可された権限の窓口だけ同じ

権限の段階

権限は 2 つの段階に分かれます。

段階意味配り方
標準悪用されても、利用者が画面で戻せる範囲(読む・設定を変える)サーバーの「登録済み」の署名(審査なし)で、作者が自分で配れます
注意が必要(要審査) ★配信の声・映像・チャット・OBS・PC の負荷に直接影響する審査を通った「審査済み」の署名が必要です(全ソースの提出が要ります)
権限段階NC Liteできること
state.read標準○(マイクの部分)今の状態を読む(曲・エフェクト・マイクの設定・エントリーの人数・配信の接続状態)
meters.read標準○音量メーター・処理時間・音切れの数を読む
chat.read標準受信したコメントを読む(視聴者の ID は元に戻せない形)
mic.control標準○ノイズ除去の強さ・マイク音質・声の補正・遅延モードを変える
recording.control標準録音を開始・停止し、録音の設定を変える
effects.control標準エフェクト・プリセット・お気に入りを切り替える
editfx.manage標準Edit FX のテンプレートを読み書きする
bgm.control標準BGM の再生・音量・自動で下げる・次の曲
lyrics.control標準歌詞を検索・選択・読み込み・表示切替・補正する
entry.control標準エントリーの受付切替・確定・スキップ
dictionary.write標準読み方辞書に項目を足す(自分が足した項目だけ変えられる)
notify標準○アプリの画面に通知・提案を出す
obs.read標準OBS の状態・統計・設定の一部を読む(ストリームキーは読めない)
audio.output★仮想マイクの出力音量を変える(0 にすると配信が無音になる)
processing.control★○音声処理を開始・停止する
player.control★内蔵 YouTube を操作する(再生・一時停止・シーク・キー変更)
tts.speak★読み上げに文章を渡す(配信の音に乗る)
tts.control★読み上げを ON/OFF・全停止する
overlay.draw★統合配信UI の拡張機能用の表示に出す(配信の映像に出る)
obs.write★OBS の設定変更を提案する(適用は利用者が押す)
loadtest.run★負荷テスト・計測の枠を使う(配信中は使えない)
chat.write★チャットへ投稿する(連携タブで選んだアカウント=配信者本人か Bot の発言として出る)
audio.capture★○マイクの声を受け取る(ノイズ除去などの処理をした後の声だけ。処理前の音は渡さない)。API 1.1
audio.mic_route★○マイクの声を配信に乗せない(拡張機能が動いている間だけ。止まると必ず戻る)。API 1.1
audio.inject★○拡張機能が作った音・VOICEVOX の声を配信に乗せる。API 1.1
system.unrestricted★隔離せずに動かす(PC のファイル・ネットワーク・ほかのアプリに制限なくアクセスできる)。localhost のサーバー・ほかのプロセスの情報など、隔離すると動かないときだけ

この資料は開発キットに入っているものと同じ内容です。拡張機能の作成・配布には拡張機能 開発者規約が適用されます。