Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple profiles #267

Closed
DawDIY opened this issue Jan 14, 2024 · 12 comments
Closed

Multiple profiles #267

DawDIY opened this issue Jan 14, 2024 · 12 comments
Labels
enhancement New feature or request

Comments

@DawDIY
Copy link

DawDIY commented Jan 14, 2024

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
Copy link
Owner

iBicha commented Jan 14, 2024

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:

  • Each profile is tied to Invidious. More specifically, an instance of Invidious. So there needs to be management of profiles, and which instance each profile belong to.
  • Switching instances: you can switch Invidious instances in Playlet (usually if you're facing problems with the one you're using, latency, server down, etc) and I have made a conscious decision that when you do that, Playlet do not log you out. Instead, it uses the "logged in instance" for subscriptions, playlists and watch history (basically, any piece of data tied to a profile) and uses the instance from the settings for everything else.
  • Backend types: while currently only Invidious is supported, other systems might be added someday (like Piped Support for Piped? #75) so now we would have multiple profile types.

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 iBicha added the enhancement New feature or request label Jan 14, 2024
@iBicha
Copy link
Owner

iBicha commented Jan 14, 2024

Here's another possible layout
profiles2

@DawDIY
Copy link
Author

DawDIY commented Jan 14, 2024

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
Copy link

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.

This was referenced Feb 23, 2024
@iBicha
Copy link
Owner

iBicha commented Mar 4, 2024

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

@iBicha iBicha closed this as completed Mar 4, 2024
@oktayacikalin
Copy link

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
Copy link
Owner

iBicha commented Mar 5, 2024

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
Copy link

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 👍

@oktayacikalin
Copy link

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
Copy link
Owner

iBicha commented Mar 5, 2024

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
Copy link

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
Copy link
Owner

iBicha commented Mar 5, 2024

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants