iBicha / playlet

The unofficial, privacy driven, YouTube client for Roku
GNU Affero General Public License v3.0
280 stars 11 forks source link

Multiple profiles #267

Closed DawDIY closed 4 months ago

DawDIY commented 5 months ago

Hello, I would like to say: You are a star!!! Great project, I was looking for the way of watching videos from my invidious instance on TV for some time now. I would like to ask if by any chance you are planning to add support for multiple Invidious profiles? I failed to find answer to this question and I hope to find it here. I know I can logout from the phone and log in from another account, but it would be great if this could be done from Roku itself with simple press of the button.l similarly to official YouTube app. Thanks once again for great app.

iBicha commented 5 months ago

Thank you for the kind words. And thank you for the suggestion, I appreciate you taking the time to look for an answer, and for creating the issue.

When I first started the project, I did think about multiple profiles, but the project wasn't mature enough for me to consider such feature. Now I understand the need for multiple profiles, especially that a TV is commonly shared with multiple people.

That being said, managing profiles on Playlet will not be as simple as managing them on the official app, for a few reasons:

With all of this in mind, all the different parameters of profiles need to be presented in a concise way, and the app need to store and respect the different profile parameters. A mock up of the feature could look like something similar to this (not sure about the layout, this is just an example)

profiles

I will let these thoughts simmer a bit, and see where it goes!

iBicha commented 5 months ago

Here's another possible layout

profiles2
DawDIY commented 5 months ago

Hi, Thanks for reply. I do appreciate work you already put into this great project and I understand complications related to implementing profiles. I do need to admit, that I did not think about full picture, you cold have in your mind for the future. As I run my own instance of Invidious, I have couple of family members with their accounts so they can subscribe to channels they want. I was being cheeky trying to find out how difficult and if you have planned implementation of such a feature. Anyhow, I can always create single Invidious profile with subscriptions from all family Invidious profiles, and this will work just fine. And if you will get ad some point into implementing it - it will be a bonus. In the meantime, we can all enjoy "mess" free videos. Thank again for your great work.

oktayacikalin commented 4 months ago

I think, a profile Jack in playlet can have multiple accounts on different instances. But will probably only have one overall. So I feel we should have a default one for each profile for easier profile switching.

iBicha commented 4 months ago

A first version of "Profiles" is now available in the Canary release

oktayacikalin commented 4 months ago

This looks promising and seems to work.

But I've one account where it only shows an empty subscription list. It was a newly created account and I added some subscriptions after adding it to Playlet. When does it sync?

iBicha commented 4 months ago

This looks promising and seems to work.

But I've one account where it only shows an empty subscription list. It was a newly created account and I added some subscriptions after adding it to Playlet. When does it sync?

Thanks for trying it out and for the feedback - let me know if you encounter any issues Invidious should start pulling subscriptions instantly when subscribing (if I remember correctly, I could be wrong) then there are recurring jobs that keep syncing new videos.

Playlet on the other hand does not auto-refresh, so it would only load the home screen once (it would reload on login/logout) You can also manually refresh the home by long pressing OK on any video on the home screen, and choosing "refresh home" from the menu.

I have plans to improve this (make subscriptions refresh as you subscribe and unsubscribe from channels)

oktayacikalin commented 4 months ago

Ah - I see.

My bad, I had only added a playlist of a channel. After subscribing to a channel, it showed up.

The "refresh home"-thingy is helpful :+1:

oktayacikalin commented 4 months ago

The "Edit home screen" setting doesn't seem to be per-user.

It's not a problem for me, but does not seem to be intuitive when having multiple profiles, where each person could have individual preferences.

For example, my children do not care about popular or trending videos and I don't want them to see them, yet. I, for myself, switch nearly everything off, but that's just me. My wife would like to have her own setting.

iBicha commented 4 months ago

The "Edit home screen" setting doesn't seem to be per-user.

It's not a problem for me, but does not seem to be intuitive when having multiple profiles, where each person could have individual preferences.

For example, my children do not care about popular or trending videos and I don't want them to see them, yet. I, for myself, switch nearly everything off, but that's just me. My wife would like to have her own setting.

I had a very similar conversation with my wife. She feels bookmarks should be per profile, and perhaps settings as well. I somewhat agree, but this can be difficult.

What happens to the user data once you logout of the profile on Playlet? While your subscriptions, watch history, and playlists will be safe on Invidious server, the home screen layout, bookmarks or user settings will not, if they are tied to a user. So logging out means you lose user data that is saved locally, which can be very unexpected consequence of just a "logout" action.

Also, we cannot keep the user preferences of every profile logged ever, since we have a tight 16kb or local persistent storage to work with. Another issue is that settings (including home screen layout) and bookmarks can be used without a profile. Do we add an "anonymous" profile that contains these things when not logged in?

It would have been simpler/possible if Playlet had a service to store user profiles, but that's currently not the case.

I'm still looking for ideas to make this as intuitive as it can be, but I don't see a satisfying solution yet.

oktayacikalin commented 4 months ago

What happens to the user data once you logout of the profile on Playlet? While your subscriptions, watch history, and playlists will be safe on Invidious server, the home screen layout, bookmarks or user settings will not, if they are tied to a user. So logging out means you lose user data that is saved locally, which can be very unexpected consequence of just a "logout" action.

If "logout" means "remove profile" it might be better to call it like this. I was confused that "logout" completely dropped the profile from the list. I assumed, I could just login back again, which would trigger a fresh sync with invidious.

Also, we cannot keep the user preferences of every profile logged ever, since we have a tight 16kb or local persistent storage to work with. Another issue is that settings (including home screen layout) and bookmarks can be used without a profile. Do we add an "anonymous" profile that contains these things when not logged in?

Please only store additional data for profiles, which are currently in the profile list. That way you can also impose a limit, e.g. max number of profiles, based on the available storage you have at hand.

Yes, the anonymous default profile should be the first in the list and seen as built-in, and not be removable. As another example my "app store" on e/OS can be used either anonymously or with a Google account. The anon account is built-in.

It would have been simpler/possible if Playlet had a service to store user profiles, but that's currently not the case.

invidous doesn't have some comment or internal field which could be abused? 🙂

iBicha commented 4 months ago

I need to let this simmer a bit, gather more feedback and perhaps there's an elegant way to do it. Can I hack something together? Sure, I can create a private playlist in Invidious and store all the data in the playlist description. But that's not how we do things. Also it will all fall apart the moment we introduce new profile types like #75

Let's wrap up the conversation on this closed issue - and open issues for any concrete bugs or features separately. As I said this is only the first iteration, I'm sure we will evolve it together