jellyflut icon indicating copy to clipboard operation
jellyflut copied to clipboard

Just a jellyfin client made in flutter (side project quality code)

jellyflut

A jellyfin client made in Flutter

It's a beta, it works okay.

You can :

  • [x] Play a video
  • [x] Read a book (epub/CBZ)
    • Epub is pretty limited for now as it's a juste a parser combined with an HTML viewer
    • need some work
  • [x] Listen Music
    • Buggy on Linux (need to investigate, or to use another package for linux )
  • [x] Look photos
  • [x] SQLite to have logging and to save server URL
  • [x] Browse all files
  • [x] ~~BIGGEST THING TO DO make transcoding work, for now i don't know how to check if file can be direct play and if no how to tell jellyfin to send me the correct url~~ It works (not much anymore, broken since 10.8.0 beta 3)
    • Do not works correctly on Windows (seems broken due to libvlc dll, certificate issue)
    • On computer I added supported codec manually. Some codecs can be missing, if so, create an issue and I will check if it's playable
  • [x] Control music from any screen
  • [x] Extract or/and parse subtitles from video file
  • Only remote srt, cannot parse from mkv file (except in VLC)

Done

  • [X] Add deconnect button and handle it well
  • [X] Rework login page
  • [x] Hero animation OK
  • [x] Async details loading
  • [x] Navigation details back stutter
  • [x] Responsive (WIP)
  • [x] Navigation with D-pad (seems ok but web can still select things from outside of the screen on home page)
    • Still need more works but you can navigate 80% of app which is sufficient for now
  • [x] Handle multiple users and servers
  • [x] Have a better handling of data when resizing to avoid reload from API
    • Seems pretty good right now, may need more works in future
  • [X] Theme (dark/light)
  • [X] Localization (ENG,FR,DE)

Todo

  • [ ] Always refactor everything
  • [ ] Add unit test
  • [ ] Correct "transcodeReasons=0" from jellyfin
  • [ ] Correct all flutter things, make things faster
  • [ ] Make IPTV on par with web version
    • Guide is working
    • Can play IPTV channels
    • still need to add recording

Screens

Phone

Desktop

Getting Started

This app should work on any platform but IOS and MacOs are not tested.

How to test ?

  git clone https://github.com/Thomas-Sohier/jellyflut.git
  cd jellyflut
  flutter packages get
  flutter packages upgrade
  flutter run

How to build ? (Android)

  flutter build apk --release

How to build ? (Computer, depending of platform)

Specific to Linux, you need to install dep

  # depend of your distro of course
  sudo apt-get update -y
  sudo apt-get install -y vlc libvlc-dev ninja-build clang libgtk-3-dev
  # enable desktop support at first (shouldn't be necessary but anyway)
  flutter config --enable-windows-desktop
  flutter config --enable-macos-desktop
  flutter config --enable-linux-desktop

  # build the app depending of your platform
  flutter build windows
  flutter build macos
  flutter build linux