GithubHelp home page GithubHelp logo

iliketeaalot / tellyfin Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 15.22 MB

A big-screen style media player with full gamepad or keyboard navigation. Currently works with Jellyfin, but integration with other platforms/systems is entirely in-scope.

License: Other

Rust 22.17% Shell 0.07% HTML 2.95% CSS 10.09% TypeScript 64.72%
jellyfin jellyfin-client mpv react tauri xmb

tellyfin's Introduction

Tellyfin

The goal for this is a PS3-style UI for films, TV shows, music, photos, emulators, and Steam (social features possibly included too... maybe).

Cloning

# Clone main repository.
git clone [email protected]:ILikeTeaALot/Tellyfin.git
# Pull submodules (open an issue if you get an access/permission error.)
git submodule update --init --recursive
# JS dependencies
yarn install

Warning

Tellyfin is very early in development. It also only works on Windows at this time.

READ THIS BEFORE ATTEMPTING TO RUN Tellyfin/VSH

Important

ADDITIONAL

For reasons unknown, and possibly only on my system (but I'm putting a note here to be safe), cargo tauri dev does not work. In order to run Tellyfin at this time, open 2 terminals in the project root:

  • [Terminal 1] Run yarn/yarn install if you have not already, and then run yarn dev.
  • [Terminal 2] Run cargo run.

Current Status

TLDR

Done

  • Local file playback
  • DVD (and theoretically Blu-ray) playback
  • Jellyfin Library discovery
    • Some Jellyfin library browsing (see below)
  • Some parts of Themes (see below)

Still To-do

  • Music Playback
    • CD
    • Jellyfin
  • Photo viewing
  • Live TV
  • Themes
    • Indexing themes
    • Reading icons from themes
    • Loading audio feedback samples from themes
  • Photos
  • Jellyfin
    • Content browsing
      • TV Shows and Series
      • Films
      • Music
      • Photos
      • Live TV
    • Login flow
    • Server management
  • Steam
    • Library detection
    • Game launching
  • Emulators
  • Plug-in architecture(s)
    • Daemon/IPC
    • DLL
    • Lua/Scheme

Details

At present, playback and playback-control of media on the local filesystem works, selected by browsing through a local Jellyfin server.

Important

Jellyfin user authentication details must be placed in [PROJECT ROOT]\vsh\src\context\jellyfin-settings.json. A template is provided in the adjacent jellyfin-settings-example.json. This is a temporary situation until the media server setup wizard is completed.

The User Interface design is a top-level interface based on the XMB, which navigates to a hybrid of vertical lists, grids, single-option landing pages (i.e. 1 option: Play), and a contiuous row of episodes for TV shows. Eventually the top-level menu will support navigating:

  • Multiple Jellyfin servers
  • Alto integration (the XMB works quite well as a GUI for Music)
  • Emulators/RetroArch
  • Steam
  • Navigable Settings (settings are currently hard-coded in a handful of places throughout the source code.)

Note

The layout of the UI also only works properly at 1920x1080. To use at 4K, set the zoom to 200%; everything should work correctly*.

*Other than image resolution. That's hardcoded too and may result in a small amount of artifacting at 4K.

Tip

XMB Icons

The example themes (PS3 icons and sounds + PS2 background audio) will be available soon™.

## Requirements

  1. A working Rust toolchain for compilation.
  2. Node.js v20 or newer + Yarn (other package managers might work).
  3. libmpv.
  4. A running Jellyfin server.

libmpv

Download libmpv from here.

In order to run the application, you will need a copy of mpv.dll and mpv.lib (Rename mpv.dll.a to mpv.lib, because the GNU toolchain is a bit funky on Windows.)

If you have one of the following CPUs, download the latest libmpv/mpv-dev-x86_64-v3-[date]-git-xxx.7z:

Intel: Haswell or newer with AVX2 (September 2013 - Present) or Atom "Gracemont" or newer (Nov 2021 - Present)

AMD: "Excavator" or any Ryzen CPU (c. June 2015 - Present)

If you do not have one of the above CPUs, download the latest libmpv/mpv-dev-x86_64-[date]-git-xxx.7z

tellyfin's People

Contributors

iliketeaalot avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.