An Android app that casts videos from your device's local storage to Google Cast compatible devices (Chromecast, Android TV, etc.) with embedded subtitle support.
- Browse videos stored on your Android device in a hierarchical folder view
- Search for videos by name
- Cast videos to any Google Cast compatible device on the same network
- Seek during playback — seek bar with current position and duration
- Detect and extract embedded subtitle tracks from video files
- Load external subtitle files from local storage
- Cast subtitles (converted to WebVTT) alongside video
- On-device transcoding for videos with codecs not natively supported by Cast devices
- Built-in HTTP server to stream media to Cast devices
- Video thumbnails, duration, and file size display
- Material Design UI
Download the latest APK from the Releases tab and install it on your Android device.
- MediaStore API — discovers videos on the device
- Google Cast SDK — discovers Cast devices and controls playback
- NanoHTTPD — serves video and subtitle files over HTTP to the Cast device
- MediaExtractor — probes video files for embedded subtitle tracks and extracts them as WebVTT
- JDK 17
- Android SDK with API 34
./gradlew assembleDebugThe APK will be at app/build/outputs/apk/debug/app-debug.apk.
Two GitHub Actions workflows handle CI:
- PR Build (
.github/workflows/pr-build.yml) — builds a debug APK on every pull request tomainand uploads it as an artifact. - Release (
.github/workflows/release.yml) — builds a signed release APK and publishes a GitHub Release via manual workflow dispatch.
Both workflows share a composite action (.github/actions/setup-build) for common build environment setup (JDK 17, Gradle, gradlew permissions).
This project is licensed under the GNU General Public License v3.0 — see the LICENSE file for details.