This guide documents two bash scripts designed to automate the processing of movie releases (e.g., from Usenet or scene releases) that are stored in .rar archives and optionally include .sfv verification files.
Choose between two modes:
ffmpeg to re-encode the audio track (e.g., to AAC for better compatibility).UPLOAD and RETAIL-NEW.
Both scripts require the following tools to be installed:
unrar – For extracting RAR filescksfv – For verifying file integrity via .sfvffmpeg – (Only for the transcoding script)sudo apt update
sudo apt install unrar cksfv ffmpeg
unrar-moviez-transcode.sh (with ffmpeg)This script performs the following steps:
UPLOAD directory.sfv file and verifies the archive integrity.mkv file using unrarffmpeg (video is copied without re-encoding)RETAIL-NEW directory#!/bin/bash
# === Configuration ===
bindir="/home/VOD"
lockfile="$bindir/.lockfile_unrar"
upload="$bindir/UPLOAD"
files="$bindir/RETAIL-NEW"
# === Dependency check ===
for cmd in cksfv unrar ffmpeg; do
if ! command -v "$cmd" &>/dev/null; then
echo "Error: $cmd is not installed."
exit 1
fi
done
# === Prevent parallel execution ===
[ -f "$lockfile" ] && echo "Script already running." && exit 1
touch "$lockfile"
for dir in "$upload"/*/; do
[ -d "$dir" ] || continue
echo "[*] Processing $dir"
cd "$dir"
if ls *.sfv 1> /dev/null 2>&1; then
echo "Verifying archive..."
cksfv -q *.sfv || continue
fi
unrar e -y *.rar
mkv=$(ls *.mkv | head -n1)
if [ -n "$mkv" ]; then
out="$files/$(basename "$dir").mkv"
echo "Transcoding audio..."
ffmpeg -i "$mkv" -c:v copy -c:a aac -b:a 160k "$out"
echo "[✓] Done: $out"
fi
rm -rf "$dir"
done
rm -f "$lockfile"
unrar-moviez-copy.sh (copy only)Same as above, but without transcoding. It simply extracts and moves the first .mkv file found.
#!/bin/bash
# === Configuration ===
bindir="/home/VOD"
lockfile="$bindir/.lockfile_unrar"
upload="$bindir/UPLOAD"
files="$bindir/RETAIL-NEW"
# === Dependency check ===
for cmd in cksfv unrar; do
if ! command -v "$cmd" &>/dev/null; then
echo "Error: $cmd is not installed."
exit 1
fi
done
# === Prevent parallel execution ===
[ -f "$lockfile" ] && echo "Script already running." && exit 1
touch "$lockfile"
for dir in "$upload"/*/; do
[ -d "$dir" ] || continue
echo "[*] Processing $dir"
cd "$dir"
if ls *.sfv 1> /dev/null 2>&1; then
echo "Verifying archive..."
cksfv -q *.sfv || continue
fi
unrar e -y *.rar
mkv=$(ls *.mkv | head -n1)
if [ -n "$mkv" ]; then
mv "$mkv" "$files/$(basename "$dir").mkv"
echo "[✓] Copied: $files/$(basename "$dir").mkv"
fi
rm -rf "$dir"
done
rm -f "$lockfile"
*/15 * * * * /home/VOD/unrar-moviez-transcode.sh >/dev/null 2>&1
UPLOAD and RETAIL-NEW exist and are writable.