Git Product home page Git Product logo

inplayerepisodepreview's Introduction

In Player Episode Preview

About

This plugin adds an episode list to the video player, which allows you to preview every episode of the TV show without having to leave the player.

This modification has support for the following clients:

Features

  • List all episodes of a season
  • Switch between seasons
  • Shows episode title, description, thumbnail and playback progress
  • Shows episode details like community ranking
  • Mark episodes as played or favourite
  • Start a new episode
  • Should work with custom themes

Preview

Used Theme: (SkinManager) Kaleidochromic
This preview is missing the new buttons for marking an episode as completed or favourite.

Installation

Jellyfin Web Client (Server)

  1. Add the manifest https://raw.githubusercontent.com/Namo2/InPlayerEpisodePreview/master/manifest.json as a Jellyfin plugin repository to your server.
  2. Install the plugin InPlayerEpisodePreview from the repository.
  3. Restart the Jellyfin server.

Jellyfin Media Player (JMP) Desktop Client

Deprecated with JMP Version 1.11.0

Because the new JMP client is using the current web player from the server itself, it is no longer needed to make any changes to the client code directly.

This is the recommended way to install the script on the desktop client. If you don't feel comfortable editing the nativeshell.js file yourself (step 3 to 6), you can download the full release instead, which includes the script already added to the nativeshell.js file. It is yet unclear if there could be potential issues, replacing the nativeshell.js file with the one from the release, so it is recommended to follow all steps below.

  1. Download the latest release JMP or JMP-full (includes the script already added to the nativeshell.js file)
  2. Extract the zip file into your Jellyfin directory (e.g. C:\Program Files\Jellyfin\Jellyfin Media Player)
  3. Inside your Jellyfin directory follow the folder path "web-client\extension"
  4. Open the "nativeshell.js" file in a text editor.
  5. Inside the file find the section const plugins = [];. Add a new line at the start of the list and paste in 'inPlayerEpisodePreviewPlugin',. The section should now look similar to this:
const plugins = [
    'inPlayerEpisodePreviewPlugin',
    'mpvVideoPlayer',
    'mpvAudioPlayer',
    'jmpInputPlugin',
    'jmpUpdatePlugin',
    'jellyscrubPlugin',
    'skipIntroPlugin'
];
  1. Save the file and restart the JMP client.

Troubleshooting

1. The preview button isn't visible

For now please follow the discussion in this issue.


If you encounter any error which you can't solve yourself, feel free to open up an issue.
Please keep in mind that any system is different which can lead to unexpected behaviour, so add as much information about it as possible.
Jellyfin logs and console logs from the browser (prefixed as [InPlayerEpisodePreview]) are always useful.

Drawbacks

  • The plugin will download some extra data like the episode description from the server.

Credits

The plugin structure is based and inspired on the Jellyscrub plugin by NickNSY.

inplayerepisodepreview's People

Contributors

dependabot[bot] avatar fovty avatar namo2 avatar tsfoni 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

Watchers

 avatar  avatar  avatar

inplayerepisodepreview's Issues

Downloading From Jellyfin Catalog or Manually Installing Gives Version 1.0

No matter how I download/install this plugin, it shows as version 1.0 in jellyfin. I disabled plugin updating as well and delete the plugin folder, and clear the cache, yet it still shows version 1.0.1 as 1.0.0. It showed the restart button once with the correct version after it recognized the web-client script. Then it reverted again to 1.0.0 after a restart. I have yet to see the settings panel work. Jellyfin version 10.8.13. Even the JMP shows the same behavior even though i manually installed JMP-Full in the extensions folder of the program. The one thing the JMP does is let me play an episode from the dropdown. however, it shows the titles and descriptions as undefined and won't let me click on anything except for the first episode. the season numbers show correctly. All directories were even given full permissions. Jellyfin is from LSIO in a docker container. Can provide logs if requested.

button shows the first season everytime

When you click on the button, the first season is always displayed, even if you are currently watching another season.
If you then click on the correct season, the current episode will be displayed expanded as it should be

Able to preview but can't play

Thx for creating this plugin, its just what i am looking for! but i have a small issue:

Running on Jellyfin Server (Win 10)
Installed from repo and were able to enable see the episode preview while in player.
Everything works fine expect i am not able to "play" the episode i've selected. From your short clip, i see there is a play button, but it does not show up on mine.

[Bug]: Auto-scroll on bottom episode

I've found a little thing I think, no problematic at all on pc but could by on other device.
When clicking on the bottom media it doesn't auto-scroll to it you have to manually scroll to get to it.
Exemple:
chrome_TtgrYZHV9H

Cannot access settings: Failed to get resource

I am trying to access the plugin settings, but doing so causes a crash in the web UI. This errors is logged:

[ERR] [25] Jellyfin.Api.Controllers.DashboardController: Failed to get resource Namo.Plugin.InPlayerEpisodePreview.Configuration.configPage.html from plugin InPlayerEpisodePreview

I just managed to edit the permissions of the web files to be able to inject the plugin's script in it.

unable to display the button

Hello, great new idea to navigate faster on jellyfin. At the moment I can't get the button to appear, any ideas? Thanks

[FeatureRequest] Better GamePad/TV support

Currently the plugin cannot be controlled in TV mode by only using GamePad/Keyboard/Remote. These things would be great:

  1. Add ability to close selector window
    a) By adding a close button next to the back button
    b) By capturing the backspace button click while the window is shown (might interefere with jellyfin logic)
  2. Add the ability to start the selected episode via keyboard
    a) Capture return key pressed when episode is selected
    b) Make play button selectable via keyboard
  3. Allow pressing favorite and watched button
    a) Navigate buttons of item with left and right arrow key. (best combined with 2b)

How to test:

  1. Switch to "TV" layout by going to Profile Icon > Display > Display Mode > TV
  2. Enable GamePad support Profile Icon > Controls >Enable GamePad
  3. Save and reload the page. You can now control the webinterface with your keyboard. Limit yourself to arrow keys, return and backspace to best emulate the constraints of a remote (considering LG webOS uses this layout)

Small note:
The blue icon animation from JF is currenlty not applied to the plugin button

InPlayerEpisodePreview slows the player down to the point of timeout for series with a large number of episode

Basically this bug jellyfin/jellyfin-web#5779, but exacerbated (I assume because it has to fetch descriptions, thumbnails etc). I couldn't start any episode of a show with 130 episodes before jellyfin-web would ask me if I wanted to transcode it

I know that this behavior is mentioned here https://github.com/Namo2/InPlayerEpisodePreview?tab=readme-ov-file#drawbacks, however if it can't be fixed, there should be a disclaimer that it will hang the player

It's a shame because it's a truly great plugin, but if jellyfin itself doesn't have an elegant way to address this issue, maybe it can't be done with the existing implementation

Button not showing up

Hi,

I installed the latest plugin version (1.2.1.0), on Jellyfin 10.9.7, but the button is not showing up in the player. I tried on Firefox, Chrome, Brave, and tthe Android Jellyfin app, I just can't see it. I rebooted Jellyfin multiples times, even the docker container, but it doesn't work.

Could anyone help ? Thanks !

plugin button does not appear in the Web Client

i was looking for this function for a long time :D
sadly the plugin button does not appear in the Web Client
while the plugin is loading correct

Namo.Plugin.InPlayerEpisodePreview.InPlayerEpisodePreviewPlugin: Attempting to inject preview script code in "/jellyfin/jellyfin-web/index.html"
Namo.Plugin.InPlayerEpisodePreview.InPlayerEpisodePreviewPlugin: Finished injecting preview script code in "/jellyfin/jellyfin-web/index.html"
Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: "InPlayerEpisodePreview" "1.0.0.0"

and i got no error while starting playback.
i use jellyfin in docker: jellyfin/jellyfin:latest
and i deleted the User and group Var in my docker config.

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.