this post was submitted on 28 May 2024
24 points (96.2% liked)

Jellyfin: The Free Software Media System

5729 readers
1 users here now

Current stable release: 10.10.0

Community Standards

Website

Forum

GitHub

Documentation

Feature Requests

Matrix (General Information & Help)

Matrix (Announcements)

Matrix (General Development)

Matrix (Off-Topic) - Come get to know the team and blow off steam!

Matrix Space - List of all the available rooms on Matrix.

Discord - Bridged to our Matrix rooms

founded 4 years ago
MODERATORS
 

The use case is following:

I'd like to turn off my server at night. Sometimes I stop at 12, sometimes at 1 or 2. If I could ask "is someone watching?" And it returns false, I could postpone the shutdown.

The current solution is to always turn off at 2 and turn on at 7.

How do you guys handle the situation?

you are viewing a single comment's thread
view the rest of the comments
[–] Esca@lemmy.one 19 points 5 months ago* (last edited 5 months ago) (1 children)

Yep, the api in jellyfin is quite easy. Someone already sent the link to the docs. The specific endpoint you want is Sessions. You need to get yourself an api_key which you can get in the admin panel. Here is an example code in Python to give you an idea on how to use the api:

#!/usr/bin/env python3

import requests

response = requests.get("http://your_jellyfin_server:8096/Sessions?api_key=your_api_key")
json = response.json()

currently_watching = []
for session in json:
    if "NowPlayingItem" in session:
        currently_watching.append(session["UserName"])

if currently_watching:
    print("Currently watching: " + ", ".join(currently_watching))
else:
    print("Nobody is watching")

If it is indeed Python that you want to use, you can adjust it to your needs depending on what you want it to output.

Basically, it is as simple as looping through every current session and checking if they have a NowPlayingItem key which is only present when they have a video open (both playing and paused). It works very reliability, I am using it to automatically change my lights when I watch a long video or movie.

[–] swooosh@lemmy.world 5 points 5 months ago (1 children)

Thank you!

I wrote a bash script that powers off the computer when there was no user activity for 10 minutes.

[–] Epzillon@lemmy.ml 2 points 5 months ago (1 children)

Neat and handy! I guess you could write some wake-on-LAN shenanigans to make it turn on when a user is trying to connect aswell 👍

[–] swooosh@lemmy.world 1 points 5 months ago

Wow, that would be next level!