CastLab is an app that allows to cast gallery media through DLNA protocol
  • TypeScript 95%
  • Kotlin 4.6%
  • JavaScript 0.4%
Find a file
2026-03-10 18:30:43 +01:00
assets Change about page 2025-09-30 15:46:49 +02:00
db - Add M3U/M3U8 online playlist support (#8) 2026-03-09 11:39:15 +01:00
drizzle - Add shared dependencies and translations (#7, #19, #20) 2026-03-09 16:36:29 +01:00
fastlane/metadata/android/en-US - Fix menu reopen bug & optimize album loading 2026-03-10 10:24:12 +01:00
modules/expo-screen-share - Clean up notification icons and MediaSelector folder icon 2026-03-10 09:29:12 +01:00
patches - Fix DLNA casting compatibility and SSDP multicast interface (#17) 2026-03-10 11:56:24 +01:00
src - Add USB-C external display casting support (#9) 2026-03-10 16:36:08 +01:00
.gitignore - Add screen share module for Android via MediaProjection (#11) 2026-03-10 08:37:36 +01:00
app.json - Release 1.1.0 2026-03-10 18:01:12 +01:00
App.tsx First commit 2025-09-13 16:59:12 +02:00
babel.config.js Downgrade lib + todo in README 2025-09-16 16:15:00 +02:00
drizzle.config.ts First commit 2025-09-13 16:59:12 +02:00
eas.json Change about page 2025-09-30 15:46:49 +02:00
index.ts First commit 2025-09-13 16:59:12 +02:00
LICENSE First commit 2025-09-13 16:59:12 +02:00
metro.config.js Some updates 2025-09-20 18:06:22 +02:00
package-lock.json - Add USB-C external display casting support (#9) 2026-03-10 16:36:08 +01:00
package.json - Add USB-C external display casting support (#9) 2026-03-10 16:36:08 +01:00
README.md Actualiser README.md 2025-10-18 17:48:55 +02:00
tsconfig.json First commit 2025-09-13 16:59:12 +02:00

CastLab

CastLab: Cast your gallery media to DLNA/UPnP devices with playlist support and video extraction

License: GPL v3 Weblate project translated Liberapay patrons

Get it on F-Droid

Or download the latest APK.

Description

CastLab is a comprehensive media casting application that enables you to stream your local media and online videos to DLNA/UPnP compatible devices.

Key Features:

  • Media Casting

    • Cast photos, videos, and audio from your device gallery
    • Support for DLNA/UPnP protocol with automatic device discovery
    • Built-in HTTP server for seamless media streaming
  • Media Management

    • Browse media by albums with filtering options (date range, media type)
    • Create and manage custom playlists
    • Organize media with intuitive selection and editing tools
  • Playback Control

    • Integrated player controller with play, pause, stop, seek, and volume controls
    • Autoplay support with automatic advancement to next media
    • Compact mode for unobtrusive playback monitoring
    • Background playback with notification controls
    • Keep device awake during casting sessions
  • Video Extraction

    • Extract videos from web pages (HTML parsing)
    • Remote casting from PeerTube and YouTube
    • YouTube URLs automatically converted to Invidious instances (privacy-friendly, no direct YouTube involvement)
    • Configurable Invidious instance settings
    • Extraction history tracking
  • Customization

    • Multiple theme modes: Light, Dark, Auto (Day/Night), and Custom
    • Advanced theme customizer with preset themes
    • Customize individual color elements (primary, secondary, background, surface, etc.)
    • Material Design 3 (Material You) support
  • User Experience

    • Intuitive navigation with contextual menus
    • Toast notifications for operation feedback
    • Persistent theme and playlist settings
    • SQLite database for reliable data storage

Screenshots

                 

Build the app

System requirements:

Clone this repo:

git clone https://codeberg.org/tom79/CastLab.git CastLab

Running the project:

  • cd CastLab
  • npm install
  • npx expo prebuild --clean

Via expo

  • npx expo run:android => Android or npx expo run:ios => iOS

Android (only)

  • cd android/app
  • gradle assembleRelease