If you meed to hand over your premiere project file to another person with an older version of Premiere, the application will not open the project, unless you update your Premiere application.
This happened to me, with colleagues in a company, who could not update their application, as the computer were administered by the IT stuff and the newer Premiere application was not cleared to install.
Premiere projects can actually be edited. They need to be decompressed first (in my script, I used gunzip to accomplish this). Then you can search for the line that contains “Project ObjectID” and lower the integer value to match the target version of Premiere.
In most cases, I have noticed no issues. But be aware, that this might not work out for all premiere project files. Especially if new features have been used, that are not available in the old Premiere application.
bash script
#!/bin/bash
## - Change Premiere Project files to another Version.
## - written by Christopher Rieke
## - https://rie.ke
##
## - Check if a file has been appended to the command
##
if [ ! -f "$1" ]; then
echo "Please drag a file to the window after executing this command"
exit
fi
##
## - Splitting up the path, filename and file extension
##
appendedFile=$1;
xpath=${appendedFile%/*}
xbase=${appendedFile##*/}
xfext=${xbase##*.}
xpref=${xbase%.*}
##
## - Check if file extension indicates a premiere project
##
[ "$xfext" != "prproj" ] && echo "This is not a premiere project file." && exit
##
## - Adding a function which is called when script is aborted or ended. It will remove the tmp directory, if it exists.
##
function remove_tmp {
[ ! -z ${tmpDir+x} ] && rm -R "$tmpDir"
}
##
## - In case the script is aborted or ended, the remove_tmp function is called
##
trap remove_tmp EXIT
##
## - Copy Project to tmp with the proper gz extension
##
clear
tmpDir="$(mktemp -d)"
tmpFile="$tmpDir/$xpref"
cp "$1" "$tmpFile.gz"
##
## - Extract the gz file
##
gunzip "$tmpFile.gz"
##
## - Read the current Premiere Project version.
##
curVer=$(cat "$tmpFile" | grep "<Project ObjectID=" | awk 'NF>1{print $NF}' | tr -dc '0-9')
##
## - Get the line numer of the corresponding line
##
lineNum="$(grep -n "<Project ObjectID=" "$tmpFile" | head -n 1 | cut -d: -f1)"
##
## - Check which Version number corresponds to which Premiere Version for an easier association
##
case "$curVer" in
38)
niceCurVer="Premiere Pro 2020"
;;
37)
niceCurVer="Premiere Pro 2019.4"
;;
36)
niceCurVer="Premiere Pro 2019"
;;
35)
niceCurVer="Premiere Pro 2018"
;;
34)
niceCurVer="Premiere Pro 2017.4"
;;
33)
niceCurVer="Premiere Pro 2017.1"
;;
32)
niceCurVer="Premiere Pro 2017"
;;
31)
niceCurVer="Premiere Pro 2015.5"
;;
30)
niceCurVer="Premiere Pro 2015.2"
;;
*)
niceCurVer="Version:$curVer - not identified."
esac
##
## - Display current Version and give options for other version manipulation.
##
echo
echo -e "Current Project Version: \x1B[38;5;82m$niceCurVer \x1B[39m"
echo "Desired target Version:"
echo
echo "38 >> Premiere Pro 2020"
echo "37 >> Premiere Pro 2019.4"
echo "36 >> Premiere Pro 2019"
echo "35 >> Premiere Pro 2018"
echo "34 >> Premiere Pro 2017.4"
echo "33 >> Premiere Pro 2017.1"
echo "32 >> Premiere Pro 2017"
echo "31 >> Premiere Pro 2015.5"
echo "30 >> Premiere Pro 2015.2"
echo
echo "Please enter the number next to your desired Premiere Version:"
##
## - Waiting for user input which version should be written to file.
##
read destVer
##
## - checking if version is an integer
##
re='^[0-9]+$'
if ! [[ $destVer =~ $re ]] ; then
echo "error: Not a number" >&2; exit 1
fi
##
## - Setting new filename according to given target version.
##
newFilename="${xpref}_converted_to_Version_${destVer}"
##
## - Use sed to change the version in that specific line and write the output to a new file.
##
sed -e "${lineNum}s/Version=\"${curVer}\"/Version=\"${destVer}\"/" "$tmpFile" > "${tmpDir}/${newFilename}"
##
## - Compress the file again with gzip
##
gzip "${tmpDir}/${newFilename}"
##
## - Move the altered premiere (respectively the .gz) file to its original location and change the extension back to .prproj
##
mv "${tmpDir}/${newFilename}.gz" "${xpath}/${newFilename}.prproj"