Newer
Older
Import / code / Transcoder / convert-subs.sh
#!/bin/bash


for dir in *
do
  if [ -d "$dir" ]
  then

  cd "$dir"

#  rm *.sub *.idx
#  cd /media/FAT32/Videos
#  continue

  find ./ -name "*-sub-*" | while read file
  do

    ext="${file##*.}"

    if [ "$ext" == "sub" ]
    then
        echo "Skipping $file"
    elif [ "$ext" == "idx" ]
    then
        echo "Skipping $file"
    else

      TRACK=`echo $file | sed "s/.*\-sub\-//" | sed "s/\-.*//"`

# lsdvd ./ -t $TRACK -P 2> /dev/null | grep "Palette:" | sed "s/.*Palette: //" | sed "s/ /,/g" | sed "s/,$//"
#  lsdvd ./ -t 1 -P  2> /dev/null

      echo "converting    disc:  \"$dir\"   subtitle:  \"$file\"  ...  track:  \"$TRACK\" "

      SIZE=`ls -s "$file" | cut -f 1 -d ' '`
      VTS=`lsdvd ./ -x 2> /dev/null | grep VTS | head -n ${TRACK} | tail -n 1 | cut -d ' ' -f 2 | cut -d ',' -f 1`

      if [ "$SIZE" == "0" ]
      then
        echo "\"$file\" is 0 bytes long, skipping."
        mv "$file" ../trash/
      else
        if [ -f "video_ts/vts_${VTS}_0.ifo" ]
        then
          cat "$file" | subtitle2vobsub -i "video_ts/vts_${VTS}_0.ifo" -o tmp
          mv tmp.idx "$file.idx"
          mv tmp.sub "$file.sub"
          mv "$file" ../trash/
        elif [ -d "VIDEO_TS/VTS_0${TRACK}_0.IFO" ]
        then
          cat "$file" | subtitle2vobsub -i "VIDEO_TS/VTS_${VTS}_0.IFO" -o tmp
          mv tmp.idx "$file.idx"
          mv tmp.sub "$file.sub"
          mv "$file" ../trash/
        else
          echo "Error with finding \"$dir/VIDEO_TS/VTS_${VTS}_0.IFO\" for converting \"$file\"."
        fi

      fi

    fi

  done

  cd /media/FAT32/Videos

  fi
done