A native Android client for Jellyfin servers built with Jetpack Compose and Material 3.
Afinity provides a clean, responsive interface for accessing your Jellyfin media library on Android devices. The app focuses on delivering smooth playback performance and an intuitive browsing experience.
Connect with us on Discord and be part of the discussion
Media Playback
- Hardware-accelerated video playback with LibMPV
- Multiple audio and subtitle track support
- Resume functionality across sessions
- Trickplay navigation with thumbnail previews
- Media Segments Support (Intro/Outro Skipper)
Content Discovery
- Library browsing by content type
- Search and filtering capabilities
- Favorites management
- Cast and crew information
Interface
- Material 3 design with system theming
- Responsive layouts for different screen sizes
- Gesture-based player controls
- Dark and light theme support
Server Integration
- Secure authentication
- Playback progress synchronization
- Multiple quality options
- Background library updates
Requirements
- Android 14+ (API level 35)
- Jellyfin server 10.8+
Download Options
Download the latest APK from our Releases page
git clone https://github.com/MakD/AFinity.git
cd AFinity
./gradlew assembleRelease- Install and launch Afinity
- Enter your Jellyfin server address (e.g.,
http://192.168.1.100:8096) - Sign in with your credentials
- Access your media library
For remote access, ensure your Jellyfin server is configured for external connections.
- Language: Kotlin
- UI: Jetpack Compose + Material 3
- Architecture: MVVM with Repository pattern
- DI: Hilt
- Navigation: Navigation Compose
- Player: LibMPV
- Networking: Retrofit + Jellyfin SDK
- Images: Coil with BlurHash
- Storage: Room
Building
./gradlew build
./gradlew test
./gradlew installDebugContributing
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
- Download management for offline viewing
- Adaptive streaming with quality selection (transcoding support)
- Chromecast support
- Enhanced accessibility features
- Multi-user profile switching
- Multi-server support
- Picture-in-picture mode
- Advanced subtitle styling options
- Audio delay adjustment
- Playback speed controls
- Tablet-optimized layouts
- Advanced search filters
- Custom library views
- Gesture customization
- Background sync optimization
- Cache management
- Network quality detection
- Performance monitoring
- Jellyfin - Open source media server
- MPV - Media player engine
- libmpv-android by Jarne Demeulemeester - Android MPV integration
Afinity respects your privacy:
- No tracking or analytics are collected
- All data stays local or with your own Jellyfin server
- No third-party services are used without your explicit consent
- Source code is open for full transparency
AFinity does not support or condone piracy. The app is only for streaming media you personally own. It includes no media content, and any references or support requests related to piracy or related tools are strictly prohibited.
LGPL-3.0 License - see LICENSE for details.
Made with ❤️ for the Jellyfin community
Afinity is not affiliated with Jellyfin. Jellyfin is a trademark of the Jellyfin project.







