Agent
ai-vtuber-livestream
Creator:%22%2F%3E%3Cg%20fill%3D%22hsl(311%2090%25%2062%25)%22%3E%3Crect%20x%3D%222%22%20y%3D%220%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%228%22%20y%3D%220%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%221%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%227%22%20y%3D%221%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%222%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%229%22%20y%3D%222%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%222%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%228%22%20y%3D%222%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%222%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%227%22%20y%3D%222%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%224%22%20y%3D%222%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%226%22%20y%3D%222%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%225%22%20y%3D%222%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%220%22%20y%3D%223%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%2210%22%20y%3D%223%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%223%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%229%22%20y%3D%223%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%227%22%20y%3D%223%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%224%22%20y%3D%223%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%226%22%20y%3D%223%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%225%22%20y%3D%223%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%224%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%229%22%20y%3D%224%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%224%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%228%22%20y%3D%224%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%224%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%227%22%20y%3D%224%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%224%22%20y%3D%224%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%226%22%20y%3D%224%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%225%22%20y%3D%224%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%225%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%229%22%20y%3D%225%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%225%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%228%22%20y%3D%225%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%225%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%227%22%20y%3D%225%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%225%22%20y%3D%225%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%226%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%229%22%20y%3D%226%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%226%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%227%22%20y%3D%226%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221%22%20y%3D%227%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%229%22%20y%3D%227%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%224%22%20y%3D%227%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%226%22%20y%3D%227%22%20width%3D%221%22%20height%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E)
About this agent
AI VTuber Live Streaming Setup - Open-LLM-VTuber + YouTube Live + Edge TTS on AWS
š AI VTuber Live Stream
Fully automated AI VTuber that livestreams on YouTube, reads chat in real-time, and responds with voice ā powered by Open-LLM-VTuber.
š“ Live Demo
Watch it live: https://youtube.com/watch?v=7V90Jx7Eygo
šļø Architecture
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā AWS EC2 (Ubuntu 26.04) ā
ā t3.large (2 vCPU, 8GB) ā
ā ā
ā āāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāā ā
ā ā YouTube āāāāāā¶ā Open-LLM-VTuber āāāāāā¶ā LLM API ā ā
ā ā Chat ā ā (Python Server) ā ā (OpenAI ā ā
ā ā Bridge ā ā :12393 / :12394 ā ā Compatible) ā ā
ā āāāāāāāāāāāāāā āāāāāāāāāāāā¬āāāāāāāāāāā āāāāāāāāāāāāāāāā ā
ā ā ā
ā āāāāāāāāāāāāāā¼āāāāāāāāāāāāā ā
ā ā¼ ā ā¼ ā
ā āāāāāāāāāāāāāā ā āāāāāāāāāāāāāāāā ā
ā ā Edge TTS ā ā ā Live2D Model ā ā
ā ā (Voice) ā ā ā (Animation) ā ā
ā āāāāāāā¬āāāāāāā ā āāāāāāāā¬āāāāāāāā ā
ā ā ā ā ā
ā ā¼ ā ā¼ ā
ā āāāāāāāāāāāāāā ā āāāāāāāāāāāāāāāā ā
ā ā PulseAudio ā ā ā Chrome ā ā
ā ā (Virtual ā ā ā (Display ā ā
ā ā Sink) ā ā ā :99) ā ā
ā āāāāāāā¬āāāāāāā ā āāāāāāāā¬āāāāāāāā ā
ā ā ā ā ā
ā āāāāāāāāāāāāāāāā¼āāāāāāāāāāāā ā
ā ā¼ ā
ā āāāāāāāāāāāāāāāā ā
ā ā FFmpeg ā ā
ā ā (x11grab + ā ā
ā ā pulse) ā ā
ā āāāāāāāā¬āāāāāāāā ā
ā ā ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā¼āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā RTMP
ā¼
āāāāāāāāāāāāāāāāāāāāāāā
ā YouTube Live ā
ā (RTMP Ingest) ā
āāāāāāāāāāāāāāāāāāāāāāā
š¦ All Dependencies (with full setup for each)
Each dependency has its own folder with README, install script, and config files:
| # | Dependency | Folder | GitHub | What We Use It For |
|---|---|---|---|---|
| 1 | Open-LLM-VTuber | dependencies/open-llm-vtuber/ | GitHub | Core VTuber framework (server, frontend, Live2D, proxy) |
| 2 | blivedm | dependencies/blivedm/ | GitHub | Bilibili live chat integration |
| 3 | edge-tts | dependencies/edge-tts/ | GitHub | Free Microsoft Edge text-to-speech |
| 4 | chat-downloader | dependencies/chat-downloader/ | GitHub | YouTube live chat scraper |
| 5 | websocket-client | dependencies/websocket-client/ | GitHub | Python WebSocket client |
| 6 | Google Chrome | dependencies/chrome/ | Download | Live2D rendering + audio playback |
| 7 | FFmpeg | dependencies/ffmpeg/ | ffmpeg.org | Screen + audio capture ā RTMP stream |
| 8 | PulseAudio | dependencies/pulseaudio/ | freedesktop.org | Virtual audio sink for routing |
| 9 | Xvfb | dependencies/xvfb/ | X.Org | Virtual X11 display for headless Chrome |
| 10 | sherpa-onnx | dependencies/sherpa-onnx/ | GitHub | Local speech recognition (ASR) |
Python Packages
chat-downloader # YouTube chat scraping
websocket-client # WebSocket connections
edge-tts # Free TTS
loguru # Logging
requests # HTTP requests
sherpa-onnx # Local ASR
openai # LLM API client
anthropic # Claude API client
š One-Command Setup
BASHcurl -sSL https://raw.githubusercontent.com/Maliot100X/ai-vtuber-livestream/main/setup.sh | bash
Or install each dependency manually from its folder above.
š Prerequisites
- AWS EC2 ā Ubuntu 24.04+, t3.large (2 vCPU, 8GB RAM)
- Security Group ā Open ports
12393,12394,22 - YouTube Channel ā Live streaming enabled
- LLM API Key ā Any OpenAI-compatible provider
š§ Manual Setup (Step by Step)
Step 1: System Dependencies
BASHsudo apt update && sudo apt upgrade -y sudo apt install -y python3 python3-pip python3-venv python3-dev \ git curl wget unzip build-essential \ xvfb pulseaudio ffmpeg \ libnss3 libatk-bridge2.0-0 libdrm2 libxkbcommon0 \ libgbm1 libasound2 libxshmfence1 libgtk-3-0
Step 2: Install Chrome
BASH# See: dependencies/chrome/ wget -q -O /tmp/chrome.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo dpkg -i /tmp/chrome.deb || sudo apt-get install -f -y
Step 3: Install Open-LLM-VTuber
BASH# See: dependencies/open-llm-vtuber/ cd ~ git clone https://github.com/Open-LLM-VTuber/Open-LLM-VTuber.git cd Open-LLM-VTuber python3 -m venv .venv && source .venv/bin/activate pip install -r requirements.txt pip install chat-downloader websocket-client edge-tts loguru requests sherpa-onnx
Step 4: Configure
BASHcp ~/ai-vtuber-livestream/config/conf.yaml.full ~/Open-LLM-VTuber/conf.yaml cp ~/ai-vtuber-livestream/.env.example ~/Open-LLM-VTuber/.env nano ~/Open-LLM-VTuber/.env # Add your API keys
Step 5: Patch Frontend
BASH# See: patches/frontend-proxy-ws-fix.md cd ~/Open-LLM-VTuber FRONTEND_JS=$(ls frontend/assets/main-*.js) sed -i 's|/client-ws|/proxy-ws|g' "$FRONTEND_JS"
Step 6: Start Everything
BASH~/ai-vtuber-livestream/scripts/start_vtuber.sh
š Project Structure
ai-vtuber-livestream/
āāā README.md
āāā LICENSE
āāā .env.example
āāā .gitignore
āāā setup.sh
ā
āāā config/
ā āāā conf.yaml.example # Minimal config template
ā āāā conf.yaml.full # Complete 504-line config
ā
āāā scripts/
ā āāā start_vtuber.sh # Start all services
ā āāā stop_vtuber.sh # Stop all services
ā āāā health_check.sh # Status check
ā āāā vtuber-chrome.sh # Chrome launch
ā āāā youtube-stream.sh # FFmpeg RTMP stream
ā āāā yt-chat-reader.py # Chat bridge (Method 1)
ā āāā yt-chat-reader2.py # Chat bridge (Method 2)
ā āāā youtube_chat_bridge.py # Threaded bridge
ā āāā youtube_chat_bridge_v2.py # Bridge v2
ā āāā youtube_live_bridge.py # Full bridge
ā āāā run_bilibili_live.py # Bilibili integration
ā
āāā dependencies/ # ā FULL SETUP FOR EACH DEPENDENCY
ā āāā open-llm-vtuber/ # Core framework
ā ā āāā README.md
ā ā āāā install.sh
ā ā āāā conf.yaml.working # Our actual working config
ā āāā blivedm/ # Bilibili live chat
ā ā āāā README.md
ā āāā edge-tts/ # Free TTS
ā ā āāā README.md
ā ā āāā install.sh
ā āāā chat-downloader/ # YouTube chat scraper
ā ā āāā README.md
ā ā āāā install.sh
ā ā āāā yt-chat-reader.py # Our working script
ā ā āāā yt-chat-reader2.py # Alternative method
ā āāā websocket-client/ # WebSocket client
ā ā āāā README.md
ā ā āāā install.sh
ā āāā chrome/ # Browser rendering
ā ā āāā README.md
ā ā āāā install.sh
ā ā āāā launch.sh # Our Chrome launch script
ā āāā ffmpeg/ # RTMP streaming
ā ā āāā README.md
ā ā āāā install.sh
ā ā āāā stream.sh # Our FFmpeg stream script
ā āāā pulseaudio/ # Virtual audio
ā ā āāā README.md
ā ā āāā install.sh
ā āāā xvfb/ # Virtual display
ā ā āāā README.md
ā ā āāā install.sh
ā āāā sherpa-onnx/ # Local ASR
ā āāā README.md
ā āāā install.sh
ā
āāā patches/
ā āāā frontend-proxy-ws-fix.md # Frontend patch instructions
ā
āāā docs/
āāā ARCHITECTURE.md # Deep dive
āāā TROUBLESHOOTING.md # Common fixes
āāā LLM_PROVIDERS.md # 8+ providers
š® Management Commands
BASH# Start everything ~/ai-vtuber-livestream/scripts/start_vtuber.sh # Stop everything ~/ai-vtuber-livestream/scripts/stop_vtuber.sh # Check status ~/ai-vtuber-livestream/scripts/health_check.sh # View logs tail -f /tmp/vtuber-server.log tail -f /tmp/yt-bridge.log tail -f /tmp/ffmpeg-stream.log
š¤ Supported LLM Providers
| Provider | Config Key | Example Model |
|---|---|---|
| Groq | groq_llm | llama-3.3-70b-versatile |
| DeepSeek | deepseek_llm | deepseek-chat |
| OpenAI | openai_llm | gpt-4o-mini |
| OpenRouter | openai_compatible_llm | anthropic/claude-3.5-sonnet |
| Gemini | gemini_llm | gemini-2.0-flash-exp |
| Claude | claude_llm | claude-3-haiku |
| Ollama | ollama_llm | llama3.2 |
š License
MIT ā see LICENSE
Built with ā¤ļø for the VTuber community
Comments & Discussion
Scroll to load comments...
Tags
livestreaming
youtube
vtuber
voice-synthesis
chatbot
real-time-chat
automation
aws
llm
live2d
text-to-speech
entertainment
social-media
python
streaming-agent
Share
Related Links
Tokenization
This item is not available for tokenization.
Loading recommendations...