Skip to content

Instantly share code, notes, and snippets.

@GwynethLlewelyn
Last active September 17, 2025 07:32
Show Gist options
  • Select an option

  • Save GwynethLlewelyn/a7bc7f47dbf37127e9f157c347bc495a to your computer and use it in GitHub Desktop.

Select an option

Save GwynethLlewelyn/a7bc7f47dbf37127e9f157c347bc495a to your computer and use it in GitHub Desktop.
Shell script that will grab all Second Life textures necessary for a specific LLSD XML backup
#!/bin/sh
# Grab all possible textures from LL's own CDN, referenced by UUID from LLSD backups.
# Usage: Go to where your LLSD XML files are stored; run script. Wait a few seconds. Done!
# (cc) 2024–2025 by Gwyneth Llewelyn. Some rights reserved.
# Distributed under the MIT license: https://gwyneth-llewelyn.mit-license.org
# Second Life® is a registered trademark of Linden Lab. No copyright infringement is intended.
#
# `ug` below is `ugrep`, a `grep` replacement, which you can get from here: <https://ugrep.com/>
# All others should be standard on any Un*x system.
# `curl` is usually available on all systems as well, but, if not, you can grab it from <https://curl.se/>
#
# The commands below have only been tested under `bash` 5.2.* but should work on most shells (not tested)
#
LLURL=http://asset-cdn.glb.agni.lindenlab.com/?texture_id=
for uuid in $( ug -U -P --format='%1%~' --regexp '<uuid>([a-f0-9\-]+)</uuid>' -- *.xml | sort | uniq ) ;
do
if [ -f $uuid ];
then
echo $uuid "(skipped) 🆗"
continue
fi
assetdir=$( echo $uuid | cut -b 1 );
if [ -f ~/Library/Caches/SecondLife/assets/$assetdir/$uuid.asset ];
then
cp ~/Library/Caches/SecondLife/assets/$assetdir/$uuid.asset $uuid
if [ $? -eq 0 ];
then
echo $uuid "(from cache) ✅"
else
echo "⚠️ Copy \"~/Library/Caches/SecondLife/assets/$assetdir/$uuid.asset to $uuid\" failed with error $? ⚠️"
fi
else
# Attempt to retrieve it remotely
curl -o $uuid $LLURL$uuid
if [ $? -eq 0 ];
then
echo $uuid "(from direct download) ✅"
else
echo $uuid ❌
fi
fi
done
@KiziCat
Copy link

KiziCat commented Sep 16, 2025

Thanks! found it in AUR.

@GwynethLlewelyn
Copy link
Author

Enjoy 😁

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment