The goal for this is a PS3-style UI for films, TV shows, music, photos, emulators, and Steam (social features possibly included too... maybe).
# 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
pnpm 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
- Local file playback
- DVD (and theoretically Blu-ray) playback
- Jellyfin Library discovery
- Some Jellyfin library browsing (see below)
- Some parts of Themes (see below)
- 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
- Content browsing
- Steam
- Library detection
- Game launching
- Switching back-and-forth between Steam and Tellyfin (see the README in
crates/start-tellyfin
).
- Emulators
- Plug-in architecture(s) (which kind(s) to use is still undecided.)
- Daemon/IPC
- DLL
- Lua/Scheme
- Node module
At present, playback and playback-control of media works, selected by browsing a Jellyfin server (see note just below).
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.
(More screenshots available in .README/screenshots
)
## Requirements
- A working Rust toolchain for compilation.
- Node.js v20 or newer + PNPM (other package managers might work).
- libmpv.
- BASS.
- A running Jellyfin server.
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
(note the v3
in the name):
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
If you plan on playing DVDs, you will also need libdvdcss
.
Go to Un4Seen.com and download the Win32 version of BASS and the following add-ons:
Official Non-Codec Addons
- BASSmix !IMPORTANT
- BASSCD
- BASSloud
- BASSWASAPI
Official Codecs
- BASSALAC
- BASSAPE
- BASSDSD
- BASSFLAC
- BASSHLS
- BASSOPUS
- BASSWEBM
- BASSWV
Third Party
- BASS_MPC
They're not all currently actively used, but BASS is planned to form the backbone of music playback so they will be required for wide format support.