Top Related Projects
Kodi is an award-winning free and open source home theater/media center software and entertainment hub for digital media. With its beautiful interface and powerful skinning engine, it's available for Android, BSD, Linux, macOS, iOS, tvOS and Windows.
A libre lightweight streaming front-end for Android.
SmartTube - an advanced player for set-top boxes and tvs running Android OS
VLC for Android, Android TV and ChromeOS
🦭 Video/Audio Downloader for Android, based on yt-dlp, designed with Material You
Quick Overview
Jellyfin Android is the official Android client for the Jellyfin media server. It allows users to stream their personal media collection, including movies, TV shows, music, and photos, directly to their Android devices. The app provides a user-friendly interface for browsing and playing content from a Jellyfin server.
Pros
- Open-source and free to use
- Supports direct play and transcoding of various media formats
- Integrates seamlessly with the Jellyfin ecosystem
- Regular updates and active community support
Cons
- May have occasional performance issues on older devices
- Limited offline functionality compared to some commercial alternatives
- Some advanced features may require technical knowledge to set up
- Dependent on a properly configured Jellyfin server for optimal performance
Getting Started
To get started with Jellyfin Android:
- Install the Jellyfin server on your preferred device (PC, NAS, etc.).
- Download the Jellyfin Android app from the Google Play Store or F-Droid.
- Open the app and enter your Jellyfin server's address.
- Log in with your Jellyfin account credentials.
- Browse and enjoy your media library on your Android device.
For developers interested in contributing to the project:
- Fork the repository on GitHub.
- Clone your fork:
git clone https://github.com/your-username/jellyfin-android.git
- Set up the development environment following the instructions in the repository's README.
- Make your changes and submit a pull request for review.
Competitor Comparisons
Kodi is an award-winning free and open source home theater/media center software and entertainment hub for digital media. With its beautiful interface and powerful skinning engine, it's available for Android, BSD, Linux, macOS, iOS, tvOS and Windows.
Pros of XBMC
- More mature and feature-rich media center software
- Supports a wider range of platforms, including desktop operating systems
- Larger community and ecosystem of add-ons
Cons of XBMC
- Heavier resource usage, potentially less suitable for low-end devices
- More complex codebase, which may be harder to contribute to or modify
- Slower development cycle due to its larger scope
Code Comparison
XBMC (C++):
bool CVideoPlayer::OpenDemuxStream()
{
if (m_pDemuxer)
{
m_pDemuxer->Open(m_item.GetDemuxResource());
return true;
}
return false;
}
Jellyfin Android (Kotlin):
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
_binding = FragmentPlayerBinding.inflate(inflater, container, false)
return binding.root
}
The code snippets show different aspects of the projects. XBMC's C++ code deals with demuxing video streams, while Jellyfin Android's Kotlin code focuses on creating the player UI fragment. This reflects the different scopes and focuses of the two projects, with XBMC handling more low-level media processing and Jellyfin Android primarily concerned with the Android-specific user interface.
A libre lightweight streaming front-end for Android.
Pros of NewPipe
- Lightweight and resource-efficient
- Supports background playback and picture-in-picture mode
- Allows downloading of videos and audio
Cons of NewPipe
- Limited to YouTube content only
- No account integration or syncing features
- May require more frequent updates due to YouTube API changes
Code Comparison
NewPipe (Java):
@Override
protected void onLoadFinished() {
super.onLoadFinished();
showContentWithAnimation(scrollToTop);
if (currentInfo != null) {
setInitialData(currentInfo);
}
}
Jellyfin Android (Kotlin):
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
_binding = FragmentHomeBinding.inflate(inflater, container, false)
return binding.root
}
Summary
NewPipe is a lightweight YouTube client with features like background playback and downloads, but it's limited to YouTube content. Jellyfin Android is a more comprehensive media streaming client that supports various content types and server integration. NewPipe is written in Java, while Jellyfin Android uses Kotlin. Both projects are open-source and actively maintained, catering to different user needs in the media consumption space.
SmartTube - an advanced player for set-top boxes and tvs running Android OS
Pros of SmartTube
- Ad-blocking functionality built-in, enhancing user experience
- Customizable playback features like sponsorblock and SponsorBlock integration
- Lightweight and optimized for Android TV devices
Cons of SmartTube
- Limited to YouTube content, unlike Jellyfin's support for various media types
- Potential legal concerns due to ad-blocking and content modification
- Less active development community compared to Jellyfin
Code Comparison
SmartTube (Kotlin):
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
initPlayer()
}
Jellyfin Android (Java):
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initializeToolbar();
}
Both projects use similar Android lifecycle methods, but SmartTube is written in Kotlin while Jellyfin Android uses Java. SmartTube focuses on initializing its custom player, while Jellyfin Android sets up a more general-purpose interface with a toolbar.
VLC for Android, Android TV and ChromeOS
Pros of VLC-Android
- Extensive codec support and ability to play a wide variety of media formats
- Standalone media player with no server requirements
- Mature project with a large user base and active development
Cons of VLC-Android
- Lacks centralized media management and library features
- Not designed for streaming from a personal media server
- User interface can be complex for some users
Code Comparison
VLC-Android (Java):
@Override
public void onPlaybackStateChanged(int state) {
switch (state) {
case PlaybackStateCompat.STATE_PLAYING:
mHandler.sendEmptyMessage(START_PLAYBACK);
break;
case PlaybackStateCompat.STATE_PAUSED:
mHandler.sendEmptyMessage(PAUSE_PLAYBACK);
break;
}
}
Jellyfin-Android (Kotlin):
override fun onPlaybackStateChanged(state: Int) {
when (state) {
PlaybackStateCompat.STATE_PLAYING -> startPlayback()
PlaybackStateCompat.STATE_PAUSED -> pausePlayback()
}
}
Summary
VLC-Android is a versatile standalone media player with broad format support, while Jellyfin-Android is designed as a client for the Jellyfin media server. VLC-Android offers more flexibility in playing local files, but Jellyfin-Android provides better integration with a centralized media library and streaming capabilities. The code comparison shows VLC-Android using Java with a message handler approach, while Jellyfin-Android uses Kotlin with more concise syntax and direct function calls.
🦭 Video/Audio Downloader for Android, based on yt-dlp, designed with Material You
Pros of Seal
- More lightweight and focused on YouTube video/audio downloading
- Offers a modern Material You design
- Supports background playback and picture-in-picture mode
Cons of Seal
- Limited to YouTube content, unlike Jellyfin's broader media server capabilities
- Lacks the extensive library management features of Jellyfin
- May face potential legal issues due to YouTube's terms of service
Code Comparison
Seal (Kotlin):
private fun downloadVideo(videoInfo: VideoInfo) {
val downloadRequest = DownloadRequest.Builder(videoInfo.id, videoInfo.title)
.setMimeType(videoInfo.mimeType)
.setOutputFileName(videoInfo.fileName)
.build()
downloadManager.enqueue(downloadRequest)
}
Jellyfin Android (Java):
private void playMedia(BaseItemDto item) {
PlaybackHelper.retrieveAndPlay(item, false, this);
Intent intent = new Intent(this, PlaybackActivity.class);
startActivity(intent);
}
The code snippets highlight the different focus of each app: Seal emphasizes downloading YouTube content, while Jellyfin Android focuses on playback from a media server. Seal uses Kotlin, which is more modern and concise, while Jellyfin Android uses Java. The Jellyfin code also shows integration with a broader ecosystem of media playback components.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Jellyfin Android
Part of the Jellyfin Project
Jellyfin Mobile is an Android app that connects to Jellyfin instances and integrates with the official web client. We welcome all contributions and pull requests! If you have a larger feature in mind please open an issue so we can discuss the implementation before you start. Even though the client is only a web wrapper there are still lots of improvements and bug fixes that can be accomplished with Android and Kotlin knowledge.
Most of the translations can be found in the web client since it's the base for the Android client as well. Translations for the app can also be improved very easily from our Weblate instance. Look through the following graphic to see if your native language could use some work!
This client was rewritten from scratch with a fresh git history in July to August 2020, and replaces the old Cordova-based client, which can still be found in the archives.
Build Process
Dependencies
- Android SDK
Build
-
Clone or download this repository
git clone https://github.com/jellyfin/jellyfin-android.git cd jellyfin-android
-
Open the project in Android Studio and run it from there or build an APK directly through Gradle:
./gradlew assembleDebug
Deploy to device/emulator
./gradlew installDebug
You can also replace the "Debug" with "Release" to get an optimized release binary.
Release Flavors
There are two flavors (variants) of the Jellyfin Android app:
- The proprietary version comes with Google Chromecast support
- The libre version comes without Google Chromecast support
The proprietary version is available on Google Play and the Amazon Appstore, while the libre version is available on F-Droid.
Additionally, beta
releases exist for both flavors, but only the proprietary version is published to a beta track on Google Play.
If you'd like to test the beta outside of Google Play, you can simply download it from the GitHub releases.
Top Related Projects
Kodi is an award-winning free and open source home theater/media center software and entertainment hub for digital media. With its beautiful interface and powerful skinning engine, it's available for Android, BSD, Linux, macOS, iOS, tvOS and Windows.
A libre lightweight streaming front-end for Android.
SmartTube - an advanced player for set-top boxes and tvs running Android OS
VLC for Android, Android TV and ChromeOS
🦭 Video/Audio Downloader for Android, based on yt-dlp, designed with Material You
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot