Coder Social home page Coder Social logo

prayag17 / blink Goto Github PK

View Code? Open in Web Editor NEW
624.0 17.0 19.0 73.71 MB

Modern Desktop Jellyfin Client made with Tauri and React :atom_symbol: [WIP]

License: GNU General Public License v3.0

HTML 0.36% Rust 0.13% JavaScript 13.91% SCSS 11.61% TypeScript 73.99%
jellyfin-client jellyfin mpv

blink's Introduction

Banner

GitHub Release GitHub Repo stars GitHub License GitHub Actions Workflow Status

Important

JellyPlayer has been renamed to Blink to avoid confusion with first party Jellyfin apps

📝 Prerequisites

  • Nodejs (≥19.1.0)
  • Rust (≥1.76.0)
  • Visual Studio C++ Build tools
  • pnpm

ℹ️ Getting started

🛠️ Development

  • Running the app:

    pnpm run tauri dev
  • Building the app:

    pnpm run tauri build
  • other commands can be found inside the "scripts" inside package.json

💻 Contribution

  • Checkout issues to see currently worked on features and bugs
  • Add features or fix bugs
  • Create a pull request

✨ Features

  • Play any media supported by the system (DirectPlay most files on windows, mac and linux)
  • Clean and minimal UI.
  • Multi Jellyfin server support
  • Cross Platform
  • Mediainfo recognition (DolbyVision, DolbyAtoms, Dts, Hdr10+, and more...)
  • Sort/Filter library items
  • Queue playback support

📷 Screenshots

  • Home home
  • Title Page - Movie title-movie
  • Title Page - Show title-show
  • Episode List show-episodes
  • Video Player playback-video
  • About Dialog about

📃 Roadmap

🎊 Special thanks to

blink's People

Contributors

dan-online avatar dependabot[bot] avatar prayag17 avatar renovate[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

blink's Issues

Doesn't display movies within a collection

Describe the bug
If your Jellyfin library is set to group movies into collections, then the individual movies within collections won't appear in JellyPlayer.

To Reproduce
Steps to reproduce the behavior:

  1. Set Jellyfin to group movies into collections
  2. Find a collection in JellyPlayer
  3. Unable to see the movies in the collection, or pick a specific movie in a collection to play

Expected behavior

  1. If item is a collection => show all movies in collection

Screenshots
Screenshot 2023-07-10 at 08 28 20

Desktop (please complete the following information):

  • OS: [macOS 13]

Opening / Ending Skip

Maybe if it's possible, add a native Intro / Outro skip feature like the "Intro Skipper" Plugin

UI doesn't load Windows 11

Describe the bug

  • OS: Windows 11 22H2
  • After adding server, UI doesn't load
  • Never loads on consecutive launches

Screenshots
image

music player UI not showing progress of currently playing track

Thanks for keeping this moving - alpha 2 is a huge improvement over alpha 1.

Describe the bug
music player UI not showing progress of currently playing track

To Reproduce

  1. unsure, somehow got into a state where tracks would play when clicked, waveform for track loaded but no progress / playing indicator was moving on the waveform.

Expected behavior
When playing a music track, progress should be shown.

Screenshots

In this screenshot the track has been playing for a while:

Desktop (please complete the following information):

  • OS: macOS 13.6
  • Version Alpha 2

Allow media playback

  • Play/Pause
  • Fast forward/rewind
  • Display Item name
  • Display Season, Episode no, and Series name
  • Changing the time of the video
  • Display the length and current progress of the video
  • Mute/Unmute
  • Set intermediate volume
  • Picture in picture
  • Minimize/Maximize the window
  • Custom playback speed
  • Subtitle Support
  • Display nextUp (Moved to Alpha 2)
  • Go to next episode (Moved to Alpha 2)
  • Allow selecting subtitle
    • Through Player (Moved to Alpha 2)
    • Through Title Page
  • Allow selecting video channel (Moved to Alpha 2)
  • Allow selecting audio channel (Moved to Alpha 2)
  • Add jellyscrub support (Moved to Alpha 2)
  • Add intro-skipper support (Moved to Alpha 2)

Error "Unspecified proxy lookup failure"

Describe the bug
Running JellyPlayer restults in the the error below.
Just a white window with the error "Unspecified proxy lookup failure".
This happens for both locally built binaries aswell as the prebuild ones from this repo.

To Reproduce
Steps to reproduce the behavior:

  1. Follow build instructions in the README or download prebiuld release binary
  2. Run the app
  3. See error

Screenshots
image

Desktop (please complete the following information):
❯ npm run tauri info

[email protected] tauri
tauri info

[✔] Environment

  • OS: Arch Linux Rolling Release X64
    ✔ webkit2gtk-4.0: 2.40.3
    ✔ rsvg2: 2.56.2
    ✔ rustc: 1.70.0 (90c541806 2023-05-31)
    ✔ Cargo: 1.70.0 (ec8a8a0ca 2023-04-25)
    ✔ rustup: 1.26.0 (2023-05-04)
    ✔ Rust toolchain: stable-x86_64-unknown-linux-gnu (default)
  • node: 20.4.0
  • yarn: 1.22.19
  • npm: 9.8.0

[-] Packages

  • tauri [RUST]: 1.3.0
  • tauri-build [RUST]: 1.3.0
  • wry [RUST]: 0.24.3
  • tao [RUST]: 0.16.1
  • @tauri-apps/api [NPM]: 1.4.0
  • @tauri-apps/cli [NPM]: 1.4.0

[-] App

  • build-type: bundle
  • CSP: unset
  • distDir: ../dist
  • devPath: http://localhost:5173/
  • framework: React
  • bundler: Vite
    2,36s user 0,60s system 45% cpu 6,480s total

Artist

  • Discography
  • Songs
  • Appearances

Discord RPC

Once playback has been added, discord RPC capabilities would be really awesome.

There are a few jellyfin related projects that achieve this already but not in a seamless way, e.g jellyfin-rpc needing a running service, the PR for jellyfin-media-player being untouched for months, etc.|

Stuff like this would really set this project apart form jellyfin-media-player

Add home screen sections

Show section for

  • Library
  • Continue watching/listening
  • Up next
  • latest movies latest shows and other latest items from all the user libraries

Ability to select none for subtitles

Is your feature request related to a problem? Please describe.
I have a lot of shows that have subtitles, but my user does not use them. When attempting to play one recently, there was no option to deselect them. I attempted to click on my user settings and it just says "WIP settings"

Describe the solution you'd like
The ability to turn off subtitles

Describe alternatives you've considered
I mean, I ended up using another client.

Additional context
Add any other context or screenshots about the feature request here.

subs

Subtitle Support

If possible, maybe add subtitle support? That would be really helpful / nice

Media player only has audio output

Attempting to play a video gives the error below, no video, only audio! miniplayer doesnt work, it seems to be fine in browser and using jellyfin media player...

image

Episode

  • Display Basic Episode Info
  • Display Season and Episode number
  • Display season
  • Display next episodes
  • Display cast
  • Display Episode Overview
    and more...

Unable to build on Mac Ventura - Intel

Running on Mac Ventura 13.3.1a on Intel with a homebrew npm install. Getting the following error when trting to build

➜  JellyPlayer git:(main) npm install

added 258 packages, and audited 259 packages in 9s

49 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
npm notice
npm notice New patch version of npm available! 9.6.4 -> 9.6.6
npm notice Changelog: https://github.com/npm/cli/releases/tag/v9.6.6
npm notice Run npm install -g [email protected] to update!
npm notice
➜  JellyPlayer git:(main) npm run tauri dev

> [email protected] tauri
> tauri dev

🚀 A new version of Tauri CLI is available! [1.3.1]
       Error failed to get cargo metadata: No such file or directory (os error 2)

Steps to reproduce the behavior:

  1. Clone repo
  2. run "npm install"
  3. run "npm run tauri dev

Movies Library Not showing all movies

The Movies library is showing only one movie even though there are a few more present. same case for music. shows looks like is showing all. All of them can be played from homescreen and even searched but cant be seen in library

image
image

image
image

Add Server menu does not recognize servers not using HTTPS or using the :8096 port.

Describe the bug
The Add Server menu upon first launching the app does not recognize any servers using http://, not using a FQDN [citation needed] or using the :8096 port [citation needed]. The only way I found to connect to my server is to use Tailscale MagicDNS and Caddy to handle HTTPS and get a FQDN.

JellyPlayer needs to

  • be able to connect to servers not using HTTPS
  • be able to connect to servers not using port 80/443 (maybe)
  • be able to connect to servers using a flat hostname in DNS (eg. rosebud instead of rosebud.local, rosebud.lan, rosebud.tswhatever.net)

This seems like just an input validation bug. JMP does not experience this issue.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Add Server menu
  2. Enter any address as described above
  3. Observe the failure

Expected behavior
As with JMP, any inputted address should be checked to see if its valid, instead of relying on input validation.

Screenshots
If applicable, add screenshots to help explain your problem.
Error 1
Error 2

Desktop (please complete the following information):

  • OS: Windows 11 Pro Version 22H2 OS Build 22624.1755
  • Browser: Not Applicable (Standalone Application)
  • Version: Not Applicable (Standalone Application)

Smartphone (please complete the following information):
Section removed; not applicable.

Additional context
Add any other context about the problem here.

Series

  • Display Seasons
  • Display Episodes
  • Display Cast
  • Show similar items
    and more...

support for books

Is your feature request related to a problem? Please describe.
Using the books category for audio books. The individual books do show when selecting that category. When selecting a book the book shows along with a number in the top right indicating the number of tracks for that folder. But when clicking that entry, nothing happens.

Tracks can be selected ok in webUI + Jellyfin Media Player.

Describe the solution you'd like
A click on an individual book entry after selecting the artist should open the track view.

Additional context

In one example nothing happens, no error. Users remains on the artist page with the book showing and the number of tracks inidcated on the book cover.

In another case an actual error was shown:
2

move to next track when playing an album track

Is your feature request related to a problem? Please describe.
Currently when playing a track from an album playback stops once the track has been played.

Describe the solution you'd like
It would be great if JellyPlayer moved to the next track of the album and continued playing that until all remaining album tracks have been played.

JellyPlayer Alpha 2
macOS 13.6

Better TLS support

Trying to connect with https:
[Error] Failed to load resource: Unacceptable TLS certificate (Ping, line 0)
[Error] Failed to load resource: Error performing TLS handshake: An unexpected TLS packet was received. (Ping, line 0)

TLS is self singed CA Certificate

Add NavBar

Add Navigation bar

  • add Link to Favourite page #33
  • show current profile
  • add Link elem to search page #34

Improve Library Page

  • Sort order
  • Sort By
  • Change View Type (like Album, songs, etc...)
  • Filters
    • Playback related
      • isPlayed
      • isUnPlayed
      • isResumable
      • isFavorite
      • isLiked
      • isUnliked
    • Video Quality related
      • isBluRay
      • isDvd
      • isHd
      • is4K
      • is3D
    • Extra filters
      • hasSubtitles
      • hasTrailer
      • hasSpecialFeatures
      • hasThemeSong
      • hasThemeVideo

Custom user-agent

We are currently using browser blockage to prevent user from using the webgui, the jellyplayer user-agent is getting flagged. To address this problem, the addition of a custom User-Agent would be nice.

Fullscreen view switches back to windowed view when clicking element in library

macOS 13.5
JellyPlayer 1.0.0 (20230706.101539)

Describe the bug
Fullscreen view switches back to windowed view when clicking element in library.

To Reproduce

  1. open music section when in fullscreen
  2. Click on an album

Expected behavior
Open album details while staying in fullscreen.

Current behavior

JellyPlayer switches to windowed mode once an album is clicked. This is not limited to the music section. When viewing movies in fullscreen and clicking on a movie JellyPlayer also switches to windowed mode.

Person

  • Display Person Info
  • Person shows
  • Person movies
  • Person Books
  • Person Photos
  • Go to directly to tab with data
    and more...

Hamburger menu doesn't do anything

Describe the bug
Pressing the Hamburger menu at the top left doesn't do anything

To Reproduce
Pressing the Hamburger menu at the top left doesn't do anything
Expected behavior
A menu should pop out, or the left sidebar should grow.

Screenshots

Desktop (please complete the following information):

  • OS: Manjaro

Additional context

Login page does not show each accounts profile picture, showing placeholder instead.

Describe the bug
The login page showing available public user accounts does not retrieve each accounts profile picture, instead showing a placeholder image.

To Reproduce
Steps to reproduce the behavior:

  1. Go to login page
  2. Observe the placeholder images

Expected behavior
A clear and concise description of what you expected to happen.
The login page will retrieve each accounts profile picture and display it.

Screenshots
If applicable, add screenshots to help explain your problem.
Current Behavior:
Expected Behavior (as shown by default Jellyfin webui):

Desktop (please complete the following information):

  • OS: Windows 11 Pro Version 22H2 OS Build 22624.1755

Add Library view

Show all contents of a library when visiting that particular lib page

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

cargo
src-tauri/Cargo.toml
  • log ^0.4.20
  • serde_json 1.0
  • serde 1.0
  • tauri 1.4.1
  • portpicker 0.1
  • tauri-build 1.4.0
github-actions
.github/workflows/build.yml
  • actions/checkout v3
  • swatinem/rust-cache v2
  • actions/setup-node v3
  • tauri-apps/tauri-action v0
npm
package.json
  • @emotion/react ^11.11.1
  • @emotion/styled ^11.10.5
  • @fontsource-variable/open-sans ^5.0.9
  • @jellyfin/sdk ^0.8.2
  • @mdi/js ^7.2.96
  • @mui/lab ^5.0.0-alpha.141
  • @mui/material ^5.14.6
  • @tanstack/react-query ^4.33.0
  • @tanstack/react-query-devtools ^4.33.0
  • @tauri-apps/api ^1.4.0
  • axios ^1.5.0
  • blurhash ^2.0.5
  • events ^3.3.0
  • framer-motion ^10.16.2
  • notistack ^3.0.1
  • react ^18.2.0
  • react-blurhash ^0.3.0
  • react-dom ^18.2.0
  • react-error-boundary ^4.0.10
  • react-multi-carousel ^2.8.3
  • react-player ^2.12.0
  • react-router-dom ^6.14.0
  • react-use-konami ^1.1.0
  • uuid ^9.0.0
  • vite-plugin-svgr ^3.2.0
  • zustand ^4.3.8
  • @tauri-apps/cli ^1.3.1
  • @vitejs/plugin-react ^4.0.3
  • prop-types ^15.8.1
  • sass ^1.66.1
  • vite ^4.4.2

  • Check this box to trigger a request for Renovate to run again on this repository

Improve home page ui

  • Improve hero carousel
  • Fix laggy performance on the home page (this is related to card components mainly and will bee fixed when card component is updated)
  • Fix app freezing when opening home page (can't be fixed until mui components are updated to fully utilize react 18)

movies not playing on linux

First really cool project, at the moment I'm watching and occasionally building /testing it, so this is just a bug report, do what you want with it, and happy to test on linux if its helpful.

  1. when I try to watch a movie, it loads the background images and does nothing. when I kill the movie I get an error that says the browser does not support playing this movie. If I load the server in a browser the movies plays as expected.
  2. when you kill the server.py process with os.kill you are passing "0" which does not kill the process, I would suggest importing signal and either passing signal.SIGTERM, rather than 0.

Also you are using the default 5000 port for flask, I would suggest picking a random open port although honestly I have no idea how you would pass that to your webengineview url dynamically, so this may not be a helpful suggestion.

Either way cool project keep up the great work

App Freezes a lot

When using the AppImage file provided in releases, most tasks in JellyPlayer ends up freezing the app and then resulting to a gray solid background.

Sometimes even basic navigation freeze,

When this occurs, the console does output the same message:

** (jelly-player:458070): WARNING **: 10:05:38.695: atk-bridge: get_device_events_reply: unknown signature

I understand the app in in alpha.

Polish Sidemenu

  • Show library/Options name when hovered in folded state
  • add a fixed logout button on both folded and open states
    • closed
    • open

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.