https://github.com/dikshadamahe/veil-android
Minimal Android streaming client with a self-hosted resolver stack.
https://github.com/dikshadamahe/veil-android
android android-tv dart express flutter flutter-animate go-router hive media-kit movie-app nodejs oracle-cloud proxy riverpod sse streaming streaming-aggregator tmdb tv-shows video-player
Last synced: about 1 month ago
JSON representation
Minimal Android streaming client with a self-hosted resolver stack.
- Host: GitHub
- URL: https://github.com/dikshadamahe/veil-android
- Owner: dikshadamahe
- Created: 2026-04-21T16:16:23.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-04-24T21:57:17.000Z (about 1 month ago)
- Last Synced: 2026-04-24T23:29:17.956Z (about 1 month ago)
- Topics: android, android-tv, dart, express, flutter, flutter-animate, go-router, hive, media-kit, movie-app, nodejs, oracle-cloud, proxy, riverpod, sse, streaming, streaming-aggregator, tmdb, tv-shows, video-player
- Language: Dart
- Homepage:
- Size: 2.53 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Veil

Minimal Android streaming client with a self-hosted resolver stack.
Veil pulls metadata from TMDB, resolves third-party streams through your own backend, and plays them in-app. It is an aggregator only. It does not host media and does not act as a CDN.
## Stack
- Flutter 3.x
- Dart
- Riverpod
- go_router
- Hive
- media_kit
- Node.js 20
- Express
- `@p-stream/providers`
## Project Layout
```text
backend/providers-api/ Node service for /health, /scrape, /scrape/stream
android/ Flutter Android host app
lib/ Flutter application code
test/ Flutter tests
logo.png Brand mark used in README and app icon assets
```
## Backend
```text
Veil app -> providers-api :3001 -> simple-proxy :3000 -> streaming CDNs
\-> TMDB API
```
`providers-api` lives in this repo under `backend/providers-api`.
`simple-proxy` is expected to run separately on the VM and is based on:
`https://github.com/xp-technologies-dev/simple-proxy`
The providers dependency is installed from:
`https://github.com/xp-technologies-dev/providers`
## Local Backend Setup
From `backend/providers-api`:
```bash
pnpm install
pnpm start
```
Default port is `3001`.
Health check:
```bash
curl http://127.0.0.1:3001/health
```
Example scrape request:
```bash
curl "http://127.0.0.1:3001/scrape?type=movie&tmdbId=550&title=Fight%20Club&year=1999"
```
## Android Build
The app expects runtime defines for:
- `ORACLE_URL`
- `TMDB_TOKEN`
Example release build:
```bash
flutter build apk --release \
--dart-define=ORACLE_URL=http://YOUR_VM_IP:3001 \
--dart-define=TMDB_TOKEN=YOUR_TMDB_READ_TOKEN
```
## Notes
- The package import name remains `@p-stream/providers`.
- Upstream docs may still reference older `p-stream/*` repos, but active code references should use `xp-technologies-dev/*`.