fredrikburmester / streamyfin

A Jellyfin client build with Expo
Mozilla Public License 2.0
1.02k stars 26 forks source link

Contributing for special features #23

Closed lostb1t closed 2 months ago

lostb1t commented 2 months ago

Hey there, i have been playing with an idea for some time and your project seem like a good case to collab.

One thing that is missing from jellyfin is the ability to give users a more netflix experience. Having a homescreen with rows like trending, popular, most watched etc would greatly improve user experience. Even better if home is a mix of shows and movies. Plex has collections for this and its a great feature.

So how would this work.

  1. I would create a jellyfin plugin where the server admin can create rows from external lists, like trakt, mdblist imdb etc. By leveraging external lists server admins are able to reuse existing lists or create own list. The plugin will provide an rest api for the client to consume which serves the rows of media similar to the current next up, recently added etc

  2. The client/streamyfin implements this api. Im thinking a about having 3 sections. Home (movies and shows mixed) shows, and movies.

Let me know what you think.

fredrikburmester commented 2 months ago

This sounds like a cool idea! If you create a plugin with the same type of api endpoints scheme as Jellyfin already has, it won't be hard for me to implement in the app.

lostb1t commented 2 months ago

exactly, shouldn't bee too hard to implement client side.

ill see if i can wip up a POC plugin in the coming weeks

lostb1t commented 2 months ago

@fredrikburmester is there. discord for streamyfin where we can have a chat about this? or let me know your discords handle for dm

fredrikburmester commented 2 months ago

Created one now https://discord.gg/zyGKHJZvv4 @lostb1t

lostb1t commented 2 months ago

@fredrikburmester

Test plugin is available!

Install the plugin repo: https://raw.githubusercontent.com/lostb1t/jellyfin-plugin-media-lists/main/manifest.json

Then enable the Media List plugin. (Its under general) and restart server

After that there’s “super collections” scheduled task that you can run. After running it you should have a new collection called “trending” There are no settings yet the lists are hardcoded. This is just for testing but next steps will be adding settings page where users can add there external lists.

movies: https://mdblist.com/lists/adamosborne01/hmmmmmmmm Shows: https://mdblist.com/lists/adamosborne01/trending-shows1

So make sure you have a few of those media items in your library for the collection.

Then in the client you can query like normal:

Get all collections for streamly: http://myjellifin/items?Recursive=true&fields=Tags&IncludeItemTypes=BoxSet&tags=medialist|promoted

Collections tagged with medialist and promoted are meant to be show ins streamly.

When you have the collections you can get the items for it through the normal API endpoint (so you can even filter by genre etc).

Movies and series: http://myjellifin/items?Recursive=true&parentId=COLLECTIONID&IncludeItemTypes=Movie,Series Only movies: http://myjellifin/items?Recursive=true&parentId=COLLECTIONID&IncludeItemTypes=Movie

Etc.

Currently ordering is not support in Jellyfin but im gonna create a pull request that allows original ordering so that they exactly match the ordering from the external list.

Let me know what you think. This would allow a neat dashboard experience, just like plex or Netflix managed by the server admin

lostb1t commented 2 months ago

Planning on supporting trakt, mdblist and imdb lists.

Let me know your thoughts on this, and if you wanna proceed with it (no rush just want to know if you are interested in this approach) cause i would have to create a jellyfin pull request for fixing sorting.

But i think this can enhance the experience greatly. And it should be an opt in feature. By default a default dashboard is shown but when a server admin enables the plugin streamly will switch to a dashboard based on collections

ow and because it uses buiktin collections the default api endpoints. Users dont "need" this plugin. They can create collections manually and add the necessary tags to them.

fredrikburmester commented 2 months ago

This is great. I've already tried your plugin and endpoint and it's working great. It would definitely include this and support this in my app if you enable custom lists in the plugin. 🔥

image Image: You can see the list imported from your plugin under the "Popular" heading.