Coder Social home page Coder Social logo

namo2 / inplayerepisodepreview Goto Github PK

View Code? Open in Web Editor NEW
43.0 2.0 5.0 10.6 MB

A Jellyfin plugin for the web and client version, which displayes an episode list inside the player

License: MIT License

C# 9.84% JavaScript 22.22% TypeScript 63.26% CSS 0.76% Batchfile 2.47% HTML 1.45%
jellyfin jellyfin-client jellyfin-media-player jellyfin-plugin jellyfin-web preview preview-pane previewer

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 is not dependent on a server-side plugin, it can also only be installed on the client. Works with the following clients:

  • Jellyfin Web Client
  • Jellyfin Media Player (JMP) Desktop Client

Features

  • List all episodes of a season
  • Switch between seasons
  • Show episode title, description, thumbnail and playback progress
  • Mark episodes as played or favourite
  • Start a new episode (only on the desktop client)
  • Should work with custom themes

Preview

Used Theme: (SkinManager) Kaleidochromic

Installation

Jellyfin Web Client (Server)

NOTE: If you are using docker there could be permission issues while injection the script. Jellyscrub works in a similar fashion, checkout their readme for more information.

  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

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.

Drawbacks

  • The plugin will download some extra data like the episode description.
  • It is not possible to start another episode on the web client.

Credits

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

inplayerepisodepreview's People

Contributors

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

Watchers

 avatar  avatar

inplayerepisodepreview's Issues

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

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.

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

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.

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.