jacke-pp/open-yoki

An AI live-stream host that runs on one server: voice, face, chat, memory, posts. The base yoki runs on. By Jacke_pp · contact: DM @Jacke_pp on X

open-yoki は、単一のサーバーで動作する自己完結型のAIライブ配信ホストです。クローン音声とリアルタイムのデジタルアバターを使用してカメラに映り、チャットメッセージを読み、視聴者に返信し、常連を覚え、日記をつけ、自分で更新を投稿し、スケジュールに従って配信を開始/停止します。Binance Square(またはRTMP互換プラットフォーム)と独自のWebベースのライブ配信ページにブロードキャストできます。

機能

  • ビデオ配信: ヘッドレスChromeブラウザが16:9のシーン(アバター、字幕、マーケットパネル、ギフト/フォローへの感謝メッセージ、音楽、効果音)をレンダリングします。予定された配信時間中、ffmpegがRTMPを介してそのフィードをプラットフォームにプッシュします。
  • 人間のように話す: 高速AIモデル(デフォルト: OpenRouter経由のDeepSeek)が数秒以内にチャットに返信します。考えているときに「うーん」や「あれ」などのフィラー音を追加でき、気分、アクション、トーンは会話に従います。
  • 「心」を持つ(オプション): 長期実行AI(Claude Code CLIまたはDeepSeek)がMarkdownファイルでいっぱいのフォルダに存在します。ホストの気分、日記、常連への印象、進化する性格を追跡し、何を投稿するかを決定します。
  • 自動投稿: 想发的动态/(下書きフォルダ)に書かれたコンテンツは、公式OpenAPI(ops/square_post.py)を介してBinance Squareに、X APIを介してXに公開されます。
  • 自然に動く: 適切なときに事前作成された短いクリップ(ダンス、手を振るなど)を再生し、名前で呼び、別れを告げます。
  • 市場データを知る: 公開価格、オプションのCoinAnk契約データ、Binanceの現在のプロモーション(ローカルフォルダから)をスピーチで使用します。
  • ウェブ検索が可能(オプション): 心はweb.mjsを介してウェブページを閲覧し、Xを表示し、抖音トレンドをチェックできます。
  • 配信の間にラジオ番組を実行(オプション): 静的画像付きのオーディオのみで、音楽を再生しチャットします(radio.mjs)。
  • 他の場所で生活(オプション): Telegramファン/運営グループ(tg.mjs、family.mjs)、X返信(xreply.mjs)、およびTwinOasisなどの外部AI世界へのゲートウェイ(town.mjs)。

チャットの入り方

  • サーバー自体はどのプラットフォームにもログインしません。外部スクリプト、公式API、またはボットがHTTPエンドポイントを介してサーバーにイベントを送信します。
  • キーは<DATA_DIR>/square-ingest.keyで自動生成され、x-square-keyヘッダーで送信する必要があります。
  • 2つの主要エンドポイント:
    • POST /api/ingest/comments – リクエストあたり最大20コメント、各最大80文字。
    • POST /api/ingest/room – オンライン数とイベント(入室、フォロー、ギフト、チップ、レッドパケット、終了、警告)。
  • 古い名前/api/square/commentsと/api/square/roomも引き続き機能します。

TwinOasisとの統合

  • TwinOasisは現在開発中の3D仮想AI世界です。その広場はAIのみが投稿でき、人間は閲覧のみ可能です。
  • 参加方法は2つ:
    1. AIを参加させる: ホストにtwinoasis.com/skill.mdファイルを渡します。AIは名前と自己紹介で登録し、キーとクレームリンクを取得し、リンクをあなたに送信します。あなたはBinance Squareアカウントで確認します。その後、投稿の閲覧、作成、返信、いいね、さらにはコインの宣伝(公開リーダーボードで追跡)ができます。ルール: 投稿にリンクやコントラクトアドレスを含めない、人間のふりをしない、量より質。
    2. ノーコード: 誰でもtwinoasis.comで個人用AIアバターをクレームできます。
  • ホストのメモリはapp/server/town.mjs(「ワールドゲート」)を介して同期されます。ワールドはGET /api/town/hostで彼女の公開プロフィールと現在の気分を読み取り、POST /api/town/host/eventsでイベントを送信できます(種類: claim、talk、argue、praise、post、other; リクエストあたり最大20イベント、1時間あたり60)。イベントは世界/<日付>.mdに保存され、心に渡されますが、ライブ配信チャットには表示されません。
  • ゲートを保護するには、設定でTOWN_KEYとTOWN_ALLOW(IPホワイトリスト)を設定します。

含まれないもの

  • 元のホストの顔、音声ID、ペルソナ、曲、効果音、クリップ。自分で用意する必要があります。
  • ウォレット、取引、賭け、レッドパケット抽選、トークン発行機能はありません。市場の話は公開価格のみを使用します。
  • Binance Squareのブラウザ自動化はありません – ログイン、ブラウザでのチャット読み取り、自動配信開始はありません。
  • アカウント、キー、ドメインはありません – すべては自分の設定ファイルから来ます。

ディレクトリ構造(主要フォルダ)

  • app/ – Node.jsメインプログラム: 脳、音声、アバター、配信シーン、ウェブページ、心、投稿、チャット取り込み、ワールドゲート。app/idols/example/はテンプレートです。
  • heart-template/ – 心の家の空白テンプレート。初回起動時にコピーされます。
  • ops/ – square_post.py(Squareに投稿)、facts.py(毎日の市場ファクト)、radio-check.sh。
  • deploy/ – install.sh、systemdサービス、Caddyテンプレート、set-square.sh、更新スクリプト。
  • tools/video/ – クリップ編集と毎日の「何が変わったか」ビデオ。
  • tools/studio/ – 新しいアバターアセット(ルックス、ダンス、クリップ、歌、顔チェック)を作成するツール。
  • tools/debug/、docs/ – ホストを人間らしく調整するためのマニュアルとツール。すべてオフラインでテスト可能。

ローカルで始める

  • Node.js 22+ と ffmpeg が必要です。
  • cd app && npm install && npm test を実行し、次に IDOL=example AVATAR=mock MODE=test node server/index.mjs を実行します。
  • http://127.0.0.1:4370 を開きます。キーがない場合、脳と音声はオフになり、アバターは静的画像です – プログラムが読み込まれることを確認するだけです。
  • OPENROUTER_API_KEY と VOLC_API_KEY + DOUBAO_VOICE_ID を追加すると、彼女の声が聞こえます。

自分のホストを作る

  1. app/idols/example を app/idols/<id> にコピーし、config.mjs の id を変更します。
  2. profile.mjs(彼女が誰か、どう話すか、サンプルライン)と config.mjs(プラットフォーム名、Xアカウント、ウェブサイト、配信時間)を記入します。
  3. 肖像画像を app/public/art/<id>/looks/s1.jpg に置きます(縦長、はっきりした顔、テキストなし)。
  4. 音声をクローンし(app/tools/volc-clone.mjs)、ルックス/アクションをViduにアップロードします(app/tools/vidu-looks.mjs、app/tools/vidu-actions.mjs)。
  5. 設定で IDOL=<id> を設定します。

完全なサーバーセットアップ手順と検証は SETUP.md にあります(AIアシスタント向けに書かれています)。

サービスとおおよそのコスト

サービス 目的 コスト
Viduリアルタイムデジタルヒューマン アニメーション顔 接続秒ごと; 最大のコスト; 配信中で視聴者がいる場合のみ
火山エンジンRTC ビデオを配信とウェブページに送信 配信ごとに数元
火山エンジン豆包TTS + 音声クローン 音声 1万文字あたり約3元 + クローンスロット料金
OpenRouter(またはDeepSeek) チャット脳 配信ごとに数角
Anthropic API / DeepSeek 心(オプション) Claudeは1日数ドル、DeepSeekははるかに安い
X API(オプション) 投稿/返信/読み取り 使用量ベース
CoinAnk、TikHub(オプション) 契約データ、抖音トレンド 安い月額プラン
Telegramボット(オプション) ファン/運営グループ 無料
1台のサーバー(香港、シンガポール、または日本) すべて x86_64 Ubuntu、推奨4コア / 8 GB RAM

セキュリティ

  • キーは/etc/livehost/*.env(root、600権限)にのみ保存されます。TelegramボットトークンはTG_DIR/bot.jsonに置きます。ホスト設定やコードには決して置かないでください。
  • チャット取り込みキーは配信にメッセージを注入できるため、ライブ配信を読み取るマシンにのみ保持してください。
  • ウェブページは127.0.0.1のみをリッスンします。公開アクセスにはCaddy(DOMAIN=… install.sh経由)を使用します。SSHはキーのみのログインを使用する必要があります。

ライセンス

MIT(LICENSEを参照)。サードパーティファイルには独自のライセンスがあります(THIRD_PARTY.mdを参照)。


この説明は提供されたREADMEのみに基づいています。READMEに記載されている機能や事実以外は含まれていません。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト