Jump to content

Personalised Recommendations Library - Work in Progress


rbjtech

Recommended Posts

rbjtech

I'm posting here to gauge interest in this potential tool/utility - I use it for my parents and it works really well - but to be useful for the masses, it will need some more time spent on developing the code to make it more universal.  However, before doing that, I wanted to see if this is useful as I don't want to waste my time..

What does it do ?

It creates a 'Recommendations' library for each user based on items added to a Recommendations playlist.  This library is then displayed in the usual 'Latest' list.  As items are watched, they disappear off the list.

Example (Actual) screen grab - (note 'Recommendations Row')

rec0.thumb.PNG.c437efdfb2542b5d4dea857c94c51b52.PNG

How does it work ?

A new library is setup and each user plus a global entry is given their own folder :-

 rec0.1.PNG.53e81ddc5c2e270a3d9168a7741a79a4.PNG

In these folders will be links (STRM files) to the real media.  These are automatically created on a schedule via a standard playlist file (see below). 

Individual user based permissions can be applied to these folders - therefore, personalised recommendation lists can be created or globally set if added to the global recommendation playlist.

rec0.2.PNG.48dc69d04315ca8fb77dae0cb4969492.PNG

So for this user - they will just see Recommendations for Rich and Global.

The Recommendations 'library' needs to go to the top of the list for it to be easily visible :-

rec4.PNG.f20f9090231bdfda7ee8f9a0d0b0c342.PNG

Note - if there is nothing in the Recommendation library for that user (ie it is empty) - then the Row will not be shown.

How do I flag an item as a Recommendation and to whom ?

The script pulls the recommendation file locations from the XML playlist - thus you can just use the normal emby playlist functions to add or remove recommendations and add them to the relevant playlist.   Anybody can add any entry to any playlist (as playlists are not permissioned), so be wary of that..

If you want everybody to see the Recommendation - then just add it to the Global Recommendation playlist.

rec0.3.PNG.e4d470e84aa96e9211a2837a88db3e9f.PNG

How often does it update ?

Currently my script just runs every night and automatically creates any new entries added to the playlists.

Now the initial library and playlist setup is done,  this is now fully automated for me - I just add recommendations to the playlist and the following day it appears on those users screens.

...

Of course, if emby allowed a playlist to have permissions and allowed it to be shown on the main screen in a row, then there would be no need for these scripts to hack a 'virtual' library...

 

Any thoughts ?     

Is this worth progressing to make the initial setup more automated  ?  

 

 

 

Edited by rbjtech
  • Like 11
  • Thanks 2
Link to comment
Share on other sites

Oracle

I am 100% fully on board with this project.

As someone who houses a large volume of media (~20TB of content), and a wife who can rarely decide what to watch on movie nights, or just everyday episodic watching, this is extremely beneficial.

  • Like 1
Link to comment
Share on other sites

all4dom

So is this more or less a smart playlist that recommends movies or tv based on what you just watched?

Thanks

Dom

 

Link to comment
Share on other sites

rbjtech
15 hours ago, all4dom said:

So is this more or less a smart playlist that recommends movies or tv based on what you just watched?

Thanks

Dom

 

no - this is effectively a manual 'recommendations' list for each user based on a playlist.  Rather than just a playlist however (which, lets be honest are not the easiest to find, nor do they look very good..) - it displays this list the same as any other library.

So as an example, you watch a film and think 'hey, I bet my parents would like to see that' - so simply add that film into THEIR recommendations playlist (from your normal TV client).  Next time they use emby, it will be #1 in their 'Recommendations' row (assuming they haven't see it already, in which case it will simply not appear).

  • Like 1
Link to comment
Share on other sites

  • 4 weeks later...

@rbjtech that's a nifty solution.  Just wondering if you had thought of making favorites for each person instead?

Link to comment
Share on other sites

rbjtech
31 minutes ago, cayars said:

@rbjtech that's a nifty solution.  Just wondering if you had thought of making favorites for each person instead?

This just uses a predefined users recommended 'playlist.xml' to create the virtual library.   You cannot assign 'Favourite' to anybody else so not 100% sure what you mean ?  

Unfortunately, I haven't looked at this anymore beyond my own implementation - tbh I thought it would receive more attention - maybe it's not clear what it is doing but I did post in the original Feature Request thread - which has 62 likes - so demand looks reasonable.

https://emby.media/community/index.php?/topic/24045-recommend-movies-or-shows-to-other-users/

I may look at this again and try and put some bells and whistles on it haha.

Link to comment
Share on other sites

I get what you're doing.  I do something very similar for holiday movies and shows.

Link to comment
Share on other sites

chef

This is cool. So is the script external? What do you need? Lemme know 👍

Link to comment
Share on other sites

rbjtech
4 hours ago, chef said:

This is cool. So is the script external? What do you need? Lemme know 👍

Thanks @chef

It's a pretty simple concept tbh - I use an XML parser to extract the file path\location out of a normal playlist.xml file (stored in ..\programdata\data\playlists) and dump it to a .txt file which is just a list of unc filepath/names.  This is then used as the input for the strm file creation (link to the real file) and it copies the necessary metadata along with it into the pre-created 'User Recommended' subfolder as part of the 'Recommendations' library.  So you just permission up the relevant subfolder for that user - add the Recommendations library' to the top of their library list - and bingo, out pops user created recommendations based on whatever was in that playlist.   The beauty is the STRM files match the watched status of the real file - so as they are watched, they drop off the recommendation list ;)  It probably should also remove it from the playlist, but doesn't currently.

The script to create the strm files runs on a windows schedule.

recommendations.zip

My early (poor) proof of concept code plus xml.exe is in the attached zip if you want to see if you can rescue it into something workable lol - I am no developer haha.

In sequence - the xml_to_txt file parses the playlists, then pl_to_strm creates the files in the correct library.  Emby does the rest.

I'm not sure if smart playlists or this functionality is on the Horizon but this sure would make a good plugin in the interim but I don't have the skills to do this - thus resorting to batch files ..  :(

If you like the idea and want to run with it for a proper plugin - then you certainly have my blessing. 👍 

Edited by rbjtech
  • Like 3
  • Thanks 1
Link to comment
Share on other sites

chef
4 hours ago, rbjtech said:

Thanks @chef

It's a pretty simple concept tbh - I use an XML parser to extract the file path\location out of a normal playlist.xml file (stored in ..\programdata\data\playlists) and dump it to a .txt file which is just a list of unc filepath/names.  This is then used as the input for the strm file creation (link to the real file) and it copies the necessary metadata along with it into the pre-created 'User Recommended' subfolder as part of the 'Recommendations' library.  So you just permission up the relevant subfolder for that user - add the Recommendations library' to the top of their library list - and bingo, out pops user created recommendations based on whatever was in that playlist.   The beauty is the STRM files match the watched status of the real file - so as they are watched, they drop off the recommendation list ;)  It probably should also remove it from the playlist, but doesn't currently.

The script to create the strm files runs on a windows schedule.

recommendations.zip 1.24 MB · 0 downloads

My early (poor) proof of concept code plus xml.exe is in the attached zip if you want to see if you can rescue it into something workable lol - I am no developer haha.

In sequence - the xml_to_txt file parses the playlists, then pl_to_strm creates the files in the correct library.  Emby does the rest.

I'm not sure if smart playlists or this functionality is on the Horizon but this sure would make a good plugin in the interim but I don't have the skills to do this - thus resorting to batch files ..  :(

If you like the idea and want to run with it for a proper plugin - then you certainly have my blessing. 👍 

Dude! I love it! Let's code this monster! 

  • Like 3
  • Haha 1
Link to comment
Share on other sites

  • 2 weeks later...
jachin99

I like this too, and it will only get more useful as my library grows.  My family sometimes complains that there is too much to look through so something like this can make things much easier

Link to comment
Share on other sites

  • 1 month later...
rbjtech
9 hours ago, Essjay10 said:

This looks great. Any progress on it?

Hi - It's been put on the back burner for now as focus is currently on IntroSkip.

Functionally, 'Recommendations' works fine - it just needs to get packaged into a Plugin to make it more accessible.

Link to comment
Share on other sites

TheUrbanXplorer
On 30.9.2021 at 13:50, rbjtech said:

Hi - Es wurde vorerst auf Eis gelegt, da der Fokus derzeit auf IntroSkip liegt .

Funktionell funktioniert 'Empfehlungen' gut - es muss nur in ein Plugin gepackt werden, um es zugänglicher zu machen.

I would definitely think it would be great if a plugin developed from it.

Link to comment
Share on other sites

  • 2 weeks later...
rbjtech
2 minutes ago, levander said:

does this work on Mac machines?

I haven't tested it, but as all it's doing is using native emby functions - then I don't see why not.

I'll try and get back to this in a couple of weeks - currently all focus is on 'Introskip' atm, but I'm keen to engage the likes of @chef and maybe others as I have no 'Plugin' experience and wouldn't know where to start ..

  • Like 1
Link to comment
Share on other sites

rbjtech

Ah yes of course - sorry, they will need Mac equivalents.

Your best bet is to wait a couple of weeks - If I can get @chef onboard (he's a busy guy!) then compared to what we have been working on with Introskip - this is an extremely simple setup so it would only take a couple of days at most to get into a Plugin I would have thought.

So watch this space - this hasn't been abandoned, it's just we all have limited time and are already juggling multiple emby 'projects' plus we all have day jobs!

Thanks for your interest ! 

Edited by rbjtech
  • Like 3
  • Thanks 1
Link to comment
Share on other sites

  • 4 weeks later...
levander
On 10/9/2021 at 5:38 PM, rbjtech said:

Ah yes of course - sorry, they will need Mac equivalents.

Your best bet is to wait a couple of weeks - If I can get @chef onboard (he's a busy guy!) then compared to what we have been working on with Introskip - this is an extremely simple setup so it would only take a couple of days at most to get into a Plugin I would have thought.

So watch this space - this hasn't been abandoned, it's just we all have limited time and are already juggling multiple emby 'projects' plus we all have day jobs!

Thanks for your interest ! 

it's been couple of weeks... :)

Link to comment
Share on other sites

On 10/9/2021 at 5:38 PM, rbjtech said:

Ah yes of course - sorry, they will need Mac equivalents.

Your best bet is to wait a couple of weeks - If I can get @chef onboard (he's a busy guy!) then compared to what we have been working on with Introskip - this is an extremely simple setup so it would only take a couple of days at most to get into a Plugin I would have thought.

So watch this space - this hasn't been abandoned, it's just we all have limited time and are already juggling multiple emby 'projects' plus we all have day jobs!

Thanks for your interest ! 

Take your time. 😉

Considering what you guys are doing with the IntroSkip I'm quite sure this will be implemented very nicely.
Just know that users (me also) are interested in this as Emby is missing this.

  • Thanks 1
Link to comment
Share on other sites

  • 2 months later...
rbjtech

IntroSkip is taking priority atm ;)

Let me talk to @chef about this plugin - as he has a LOT on his plate atm so this might be one project too far - but tbh it's not complex and as long as we stick the original scope, then it should be easy to implement.

I'll report back if he is able to help at this time.

  • Like 3
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...