Initial commit

This commit is contained in:
2025-01-17 22:28:46 +01:00
commit a66d86a0e6
2 changed files with 74 additions and 0 deletions

41
README.md Normal file
View File

@@ -0,0 +1,41 @@
# Jellyfin Schauspielerbilder laden
Ein Workaround für das Problem das Jellyfin unter bestimmten vorraussetzungen keine Schauspieler Bilder anzeigt
Jellyfin fügt unter bestimmten Bedingungen die vorhandenen Schauspielerbilder von der Festplatte nicht zur Datenbank hinzu. Erst wenn ein Schauspieler zum ersten Mal angeklickt wird, erstellt Jellyfin einen Datenbankeintrag, und das Bild wird angezeigt.
Dieses Skript prüft, welche Schauspieler noch kein Bild haben, und fügt das Bild der Datenbank hinzu, falls es auf der Festplatte vorhanden ist.
Da nur die **fehlenden** Bilder geprüft werden, ist das Skript nach dem initialen Durchlauf sehr schnell ausführbar. Es kann als Cronjob regelmäßig ausgeführt werden, um die neuesten Schauspielerbilder automatisch hinzuzufügen.
## Vorraussetzung
`curl`: Sollte standardmäßig auf Linux installiert sein.
`jq`: Kann über den Paketmanager installiert werden:
```bash
sudo apt install jq # Für Debian/Ubuntu
sudo dnf install jq # Für Fedora
sudo pacman -S jq # Für Arch
```
## Einstellungen
Das Script 3 Anpassungen um zu funktionieren
- **base_url**: Der Hostname deines Jellyfin-Servers.
- **api_key**: Kann abgerufen werden, indem du zum Dashboard gehst, dort API-Schlüssel, auf die +-Schaltfläche klickst, einen beliebigen Namen eingibst und den generierten API-Schlüssel verwendest.
- **user_id**: Kann abgerufen werden, indem du zum Dashboard gehst, dort Benutzer, auf deinen (oder einen anderen) Benutzer klickst und die ID aus der URL nach `userId= `entnimmst.
**Beispiel:**
```bash
base_url="http://192.168.178.30:8096"
api_key="18b973511efd4887a24e14fbdf8f61d5"
user_id="69c0f432ec3a46b58cbf2e900f5a3fd5"
```
## Quellen
- https://github.com/jellyfin/jellyfin/issues/8288
- https://github.com/jellyfin/jellyfin/issues/9182
- https://github.com/jellyfin/jellyfin/issues/8103

View File

@@ -0,0 +1,33 @@
#!/bin/bash
# API-Endpunkte und API-Schlüssel
base_url="http://192.168.178.30:8096"
api_key="18b973511efd4887a24e14fbdf8f61d5"
user_id="69c0f432ec3a46b58cbf2e900f5a3fd5"
# Hole die Liste der Personen
echo "Abrufen der Personenliste..."
response=$(curl -s "${base_url}/emby/Persons?api_key=${api_key}")
# Finde Personen ohne ImageTags und extrahiere die IDs
ids=($(echo "$response" | jq -c '.Items[] | select(.ImageTags | length == 0)' | jq -r '.Id' | sort -u))
total=${#ids[@]} # Gesamtzahl der IDs
echo "Gefundene Personen ohne ImageTags: $total"
# Iteriere durch die IDs mit Fortschrittsanzeige
for ((i=0; i<total; i++)); do
id=${ids[i]}
remaining=$((total - i - 1)) # Verbleibende Anfragen
echo "[$((i + 1))/$total] Verarbeite Person mit ID: $id ($remaining verbleibend)"
# Sende die Anfrage
curl -s "${base_url}/Users/${user_id}/Items/${id}?api_key=${api_key}" >/dev/null
if [ $? -eq 0 ]; then
echo " ^|^s Anfrage f r ID $id erfolgreich."
else
echo " ^|^w Anfrage f r ID $id fehlgeschlagen."
fi
done
echo "Verarbeitung abgeschlossen!"