2025-07-11, 03:13 PM
(This post was last modified: 2025-07-12, 11:03 AM by I-G-1-1. Edited 1 time in total.)
I know this post is old, but to trigger a single Library scan thanks to "url scheme" suggested by TheDreadPirate I solved writing this script:
Code:
#!/bin/sh
# CHANGE THESE:
JELLYFIN_SERVER="http://192.168.1.1:8096"
API_KEY="<YOUR_API_KEY>"
echo "Retrieving available libraries..."
# Get the list of libraries from the Jellyfin server using the API key for authentication
LIBRARIES=$(curl -s -H "X-Emby-Token: $API_KEY" "$JELLYFIN_SERVER/Library/VirtualFolders")
# Extract the names of the libraries from the JSON response
NAMES=$(echo "$LIBRARIES" | grep -o '"Name":"[^"]*"' | sed 's/"Name":"\(.*\)"/\1/')
# Extract the IDs of the libraries from the JSON response
IDS=$(echo "$LIBRARIES" | grep -o '"ItemId":"[^"]*"' | sed 's/"ItemId":"\(.*\)"/\1/')
# Combine and print the name and ID of each library in a readable format
paste <(echo "$NAMES") <(echo "$IDS") | while IFS=$'\t' read -r name id; do
echo "Name: $name | ID: $id"
done
echo
read -p "Enter the ID of the library to scan: " LIBRARY_ID
if [[ -z "$LIBRARY_ID" ]]; then
echo "Library ID not provided. Exiting."
exit 1
fi
echo "Starting scan of library $LIBRARY_ID ..."
# Send a POST request to trigger a scan/refresh of the specified library on the Jellyfin server
curl -X POST "$JELLYFIN_SERVER/Items/$LIBRARY_ID/Refresh?Recursive=true&ImageRefreshMode=Default&MetadataRefreshMode=Default&ReplaceAllImages=false&RegenerateTrickplay=false&ReplaceAllMetadata=false" \
-H "Content-Type: application/json" \
-H "X-Emby-Token: $API_KEY"
echo
echo "Scan started (check the Jellyfin dashboard for status)."
exit 0