Skip to content

Instantly share code, notes, and snippets.

@xguitian
Created July 25, 2021 18:56
Show Gist options
  • Save xguitian/0268d95442bfe4f85b5e5c6715bff04d to your computer and use it in GitHub Desktop.
Save xguitian/0268d95442bfe4f85b5e5c6715bff04d to your computer and use it in GitHub Desktop.
Convert Google Stadia Cyberpunk 2077 savegames to PC
#!/bin/bash
# set -x
shopt -s nullglob
########################################################################################################
# URL:
# https://www.reddit.com/r/Stadia/comments/kb48nk/cyberpunk_2077_savegame_exportimport_google/
##
# Manual:
# start Google Stadia, and make a manual savegame.
# go to "https://takeout.google.com" and click on "Unselect.
# Now you scroll down to "Google Stadia" and select it.
# Click on Next and export. Now you can download the savegames.
# after that unzip the file and search for the newest save.
# It is in this folder: "\Takeout\Stadia\GAMING\GAME_SAVE".
# Just search for the highest number. Alternatively, you can open the zip and look at the PNG.
# hold WIN+R and enter: %userprofile%\Saved Games\CD Projekt Red\Cyberpunk 2077
# create a new "ManualSave-x". (X is a placeholder for a random number).
# Now copy the contents of the zip file "Cyberpunk 2077_xxxx_gamesave" into this ManualSave-x folder.
# done!
########################################################################################################
SAVE_PATH="Saved Games/CD Projekt Red/Cyberpunk 2077"
CP2077_PATTERN=(Takeout/Stadia/GAMING/GAME_SAVE/Cyberpunk\ 2077_*_gamesave.zip)
if [ ! -d "Takeout" ]; then
echo "No Google Takeout directory. Exiting." >&2
exit 1
fi
echo -n "Extracting: "
mkdir -p "$SAVE_PATH"
for i in "${CP2077_PATTERN[@]}"; do
if [ "$i" = "Takeout/Stadia/GAMING/GAME_SAVE/Cyberpunk 2077_1_gamesave.zip" ]; then echo -n "."
elif [ "$i" = "Takeout/Stadia/GAMING/GAME_SAVE/Cyberpunk 2077_1000_gamesave.zip" ]; then echo -n "."
else [[ ${i} =~ _([[:digit:]]{4})_gamesave ]] && NUM=${BASH_REMATCH[1]};
mkdir -p "$NUM"; unzip "$i" -d "$NUM" > /dev/null
mv "$NUM" "$SAVE_PATH"/"$(jq -r '.Data.metadata.name' "$NUM"/metadata.9.json)"
echo -n "."
fi
done
echo " done."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment