MTXCast is an integrated cast server that performs full-screen playback using a custom PySide6 player, receiving video/audio directly via WHIP (WebRTC-HTTP ingestion protocol) from broadcasting tools like OBS, or metadata (URL/playback time, etc.) via HTTP API.
server-setup/: MTXCast server (Python/FastAPI)browser-extension/: Browser extension (Chrome/Firefox compatible)cli-client/: Command-line client (Python)android-app/: Android app (Kotlin)
cd server-setup
pip install -r requirements.txt
python -m mtxcast.appFor details, see server-setup/README.md.
cd cli-client
pip install -r requirements.txt
# Check status
python mtxcast_cli.py status
# Play YouTube video
python mtxcast_cli.py play-url "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
# Playback control
python mtxcast_cli.py play
python mtxcast_cli.py pause
python mtxcast_cli.py seek 120
python mtxcast_cli.py volume 0.5For details, see cli-client/README.md.
- Open
android-app/in Android Studio - Build and install on device
- Launch the app and enter the server URL in the settings screen
- Control the server from the main screen
For details, see android-app/README.md.
- Load the extension in Chrome or Firefox
- A "📺 Cast" button will appear on videos on web pages
- Click the button to cast to the server
- FastAPI-based HTTP+WHIP endpoints
- On-demand stream resolution and instant playback using yt-dlp
- Video/audio file upload and playback
- Remote control API for play/pause/seek/volume adjustment, etc.
- Built-in player using PySide6 + QtMultimedia
- System tray resident
- Full feature control from command line
- JSON format output support
- Remote server connection support
- Real-time status display
- Intuitive UI operations
- File upload functionality
- Media playback from URL
- Cast videos on web pages
- Screen mirroring
- File upload
POST /whip: Receive SDP Offer from WHIP clientPOST /metadata: Start playback with metadataPOST /upload: Upload video/audio file and start playbackPOST /control/play/pause/stop/seek/volume: Playback controlGET /status: Get current status
For details, see server-setup/README.md.
This project follows the LICENSE file.