[Feature] Allow for displaying photos of specific people when using multiple users #670
Replies: 7 comments 4 replies
-
|
One solution would be to bake in a retry method into Kiosk when it gets a 400 error back. It should in theory try any other submitted API keys until all are exhausted. That way the user wouldn’t need to add any more config other then the API key.
The other would go to add a APIManger they would gather all the users people, albums etc IDs.Then kiosk could ask that “I need this ID, which api key will get it?”
Both have pros and cons.
…On 15 Feb 2026 at 3:35 PM +0000, Ricardo Saffi Marques ***@***.***>, wrote:
I have searched the existing feature requests to make sure this is not a duplicate request.
• Yes
The feature
It would be very nice for kiosk to allow for displaying photos/videos of specific people on a setup with multiple users (each with its own API Key defined in config.yaml), without having to pass ?user=xxxxx to the URL.
My use-case: I have a dedicated tablet that runs immich-kiosk showing photos/videos from our kids. Currently it's only fetching from my immich account and it works as expected. But I also want to setup my wife's immich account in the config.yaml so that we have a bigger pool of photos/videos from our kids to be cycled through.
I know that the "person ID" for a single person differs between my account and hers. My idea is that something like this would/could work:
(...)
immich_users_api_keys:
father: "XXXXXX"
mother: "YYYYYY"
(...)
people:
- bf2db1e5-3cfe-4b6d-a87e-9d9d314eaa2e # kid1 @ father
- 1be07a85-dd9b-43cd-a690-7e062e16ead6 # kid2 @ father
- fffa3626-bb0a-4b86-9dbb-98708acaa06b # kid1 @ mother
- df2fc24a-64e1-43c6-8cd2-5ab19b85ae3e # kid2 @ mother
(...)
But of course it doesn't. Setting that and trying to load kiosk I see the error with a HTTP 400 for non-existent ID.
Perhaps a change in the type of the "people" key, from a list to a dict of lists, something like:
people:
father:
- bf2db1e5-3cfe-4b6d-a87e-9d9d314eaa2e
- 1be07a85-dd9b-43cd-a690-7e062e16ead6
mother:
- fffa3626-bb0a-4b86-9dbb-98708acaa06b
- df2fc24a-64e1-43c6-8cd2-5ab19b85ae3e
WDYT?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
|
Why not consider the option I mentioned, that
Since you already validate the config file during application startup, it would just need to cover both cases. If the children of Do you foresee any cons to this approach? I'm not particularly fond of the "retry method into Kiosk when it gets a 400 error back", as it seems to be more of a workaround than a feature implementation. And regarding the APIManager idea, it would also work and be rather clean, but possibly a bigger effort than allowing for different ways to specify Just occurred to me: the same way Kiosk allows for Then it could be something like: users_people:
father:
- ID1
- ID2
mother:
- ID3
- ID4Thoughts on this? |
Beta Was this translation helpful? Give feedback.
-
|
The retry loop would be a workaround/patch in essence but adding the below would be a breaking change and does not convert to ENVs very well/at all. immich_users_api_keys:
father: "XXXXXX"
mother: "YYYYYY"
people:
father:
- bf2db1e5-3cfe-4b6d-a87e-9d9d314eaa2e
- 1be07a85-dd9b-43cd-a690-7e062e16ead6
mother:
- fffa3626-bb0a-4b86-9dbb-98708acaa06b
- df2fc24a-64e1-43c6-8cd2-5ab19b85ae3eAdding a new group like your I don't mean to be negative or dismissive, I'm just trying to think of the best solution that would cater for most users and work for config, ENVs and url params. What about naming the api key to use in the string using a separator: config.yaml immich_users_api_keys:
father: "XXXXXX"
mother: "YYYYYY"
people:
- bf2db1e5-3cfe-4b6d-a87e-9d9d314eaa2e # use default API key
- father@bf2db1e5-3cfe-4b6d-a87e-9d9d314eaa2e # use father API key
- father@1be07a85-dd9b-43cd-a690-7e062e16ead6 # use father API key
- mother@fffa3626-bb0a-4b86-9dbb-98708acaa06b # use mother API key
- mother@df2fc24a-64e1-43c6-8cd2-5ab19b85ae3e # use mother API key
# or
people:
- bf2db1e5-3cfe-4b6d-a87e-9d9d314eaa2e # use default API key
- bf2db1e5-3cfe-4b6d-a87e-9d9d314eaa2e@father # use father API key
- 1be07a85-dd9b-43cd-a690-7e062e16ead6@father # use father API key
- fffa3626-bb0a-4b86-9dbb-98708acaa06b@mother # use mother API key
- df2fc24a-64e1-43c6-8cd2-5ab19b85ae3e@mother # use mother API keyENV environment:
KIOSK_PEOPLE="bf2db1e5-3cfe-4b6d-a87e-9d9d314eaa2e, father@bf2db1e5-3cfe-4b6d-a87e-9d9d314eaa2e"URL Something like this could work if you set the api key in the config but not to PERSON_ID but then later supply it via a url param. or would this be too complex? |
Beta Was this translation helpful? Give feedback.
-
I definitely didn't take it like that! :-)
Ahaa, that's a great idea actually. And that functionality could then also be extended to albums, tags, and dates, couldn't it? people:
- bf2db1e5-3cfe-4b6d-a87e-9d9d314eaa2e # use default API key
- bf2db1e5-3cfe-4b6d-a87e-9d9d314eaa2e@father # use father API key
- 1be07a85-dd9b-43cd-a690-7e062e16ead6@father # use father API key
- fffa3626-bb0a-4b86-9dbb-98708acaa06b@mother # use mother API key
- df2fc24a-64e1-43c6-8cd2-5ab19b85ae3e@mother # use mother API keyI just didn't understand this question: "Something like this could work if you set the api key in the config but not to PERSON_ID but then later supply it via a url param." I don't know if I'm drifting from answering your actual question, but when I thought about this feature request, it was thinking that no changes in the default Kiosk url would even need to be done to achieve being able to retrieve photos of specific people from either one of the multiple accounts configured. In other words, on the tablet I'm using as a digital frame, the URL that "Fully Kiosk Browser" loads would still be the same (in my case https://photos-kiosk.mydomain.com) and the images/videos served there could come from either one of the defined accounts in the So, thinking of a config like this (and using no other filters since I'm particularly only interested in this exact scenario): (...)
immich_users_api_keys:
father: "XXXXXX"
mother: "YYYYYY"
(...)
people:
- bf2db1e5-3cfe-4b6d-a87e-9d9d314eaa2e@father
- 1be07a85-dd9b-43cd-a690-7e062e16ead6@father
- fffa3626-bb0a-4b86-9dbb-98708acaa06b@mother
- df2fc24a-64e1-43c6-8cd2-5ab19b85ae3e@mother
(...)Loading |
Beta Was this translation helpful? Give feedback.
-
|
I've done a little work on this branch https://github.com/damongolding/immich-kiosk/tree/feature/multi-account. Quick tests shows it's working with albums and people. This feature is a LOT bigger (to code) then I originally anticipated 😅 |
Beta Was this translation helpful? Give feedback.
-
|
I'm happy to try it out and give feedback! I saw in ghcr.io the How do you advise me to test the implementation in the |
Beta Was this translation helpful? Give feedback.
-
|
I've quickly created a dev image with this WIP feature in it @rsaffi. The image is config.yaml example immich_users_api_keys:
- john: XXX
people:
- 1234 # will used default api
- 1234@john
albums:
- 5678 # will use default api
- 5678@johnor you can use these in the url e.g. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I have searched the existing feature requests to make sure this is not a duplicate request.
The feature
It would be very nice for kiosk to allow for displaying photos/videos of specific people on a setup with multiple users (each with its own API Key defined in
config.yaml), without having to pass?user=xxxxxto the URL.My use-case: I have a dedicated tablet that runs immich-kiosk showing photos/videos from our kids. Currently it's only fetching from my immich account and it works as expected. But I also want to setup my wife's immich account in the
config.yamlso that we have a bigger pool of photos/videos from our kids to be cycled through.I know that the "person ID" for a single person differs between my account and hers. My idea is that something like this would/could work:
But of course it doesn't. Setting that and trying to load kiosk I see the error with a HTTP 400 for non-existent ID.
Perhaps a change in the type of the "people" key, from a list to a dict of lists, something like:
WDYT?
Beta Was this translation helpful? Give feedback.
All reactions