Nightly offload from Tablo to Plex

Script, take 2.

This does a better job at serializing the processing of each download and also runs comskip in parallel for all downloaded files. Works fine this way on my Late-2012 MacMini, YMMV depending on your server’s horsepower.

#!/bin/bash
logger() {
  echo "`date` -- ${1}" >> ~/Tablo2Go/tablo2plex.log
}

do_it() {
  f=$1
  
  logger "Start file '$f'"

  fname=`echo "${f##*/}"`
  fpath=`echo "${f%/*}"`
  destpath=`echo "${fpath//tablo/}"`

  logger "PlexComskip '$f'"
  /usr/bin/python ${HOME}/PlexComskip/PlexComskip.py "$f"
  passed=$?
  logger "PlexComskip returned $passed"

  [ $passed -eq 0 ] && mkdir -p "$destpath" && mv "$f" "$destpath" && logger "Moved '$fname' to '$destpath'"

  logger "End file '$f'"
}

# download yesterdays Tablo recordings in ${HOME}/tablodvr/...
logger "Downloading yesterday's recordings"
${HOME}/Tablo2Go/tablo2go --date `date +'%Y-%m-%d'`

FILECOUNT=`find ${HOME}/tablodvr -type f -iname *.mp4 | wc -l`
logger "Downloaded ${FILECOUNT} files"

find ${HOME}/tablodvr -type f -iname *.mp4]

if [[ ! -z ${FILECOUNT} ]]
then
  # PlexComskip each file and move to Plex lib
  find ${HOME}/tablodvr -type f -iname *.mp4 | while read f
  do
    do_it "$f" &
  done
fi

Here’s a small snippet of the generated log file:

Mon May 29 01:32:18 EDT 2017 -- Downloaded        0 files
Tue May 30 01:32:00 EDT 2017 -- Downloading yesterday's recordings
Tue May 30 01:41:07 EDT 2017 -- Downloaded        2 files
Tue May 30 01:41:07 EDT 2017 -- Start file '/Users/username/tablodvr/tv/Gotham/Season 03/Gotham - S03E20 - Heroes Rise: Pretty Hate Machine.mp4'
Tue May 30 01:41:07 EDT 2017 -- Start file '/Users/username/tablodvr/tv/Lucifer/Season 02/Lucifer - S02E18 - The Good, the Bad and the Crispy.mp4'
Tue May 30 01:41:07 EDT 2017 -- PlexComskip '/Users/username/tablodvr/tv/Gotham/Season 03/Gotham - S03E20 - Heroes Rise: Pretty Hate Machine.mp4'
Tue May 30 01:41:07 EDT 2017 -- PlexComskip '/Users/username/tablodvr/tv/Lucifer/Season 02/Lucifer - S02E18 - The Good, the Bad and the Crispy.mp4'
Tue May 30 01:47:01 EDT 2017 -- PlexComskip returned 0
Tue May 30 01:47:01 EDT 2017 -- Moved 'Gotham - S03E20 - Heroes Rise: Pretty Hate Machine.mp4' to '/Users/username/dvr/tv/Gotham/Season 03'
Tue May 30 01:47:01 EDT 2017 -- End file '/Users/username/tablodvr/tv/Gotham/Season 03/Gotham - S03E20 - Heroes Rise: Pretty Hate Machine.mp4'
Tue May 30 01:55:58 EDT 2017 -- PlexComskip returned 0
Tue May 30 01:55:58 EDT 2017 -- Moved 'Lucifer - S02E18 - The Good, the Bad and the Crispy.mp4' to '/Users/username/dvr/tv/Lucifer/Season 02'
Tue May 30 01:55:58 EDT 2017 -- End file '/Users/username/tablodvr/tv/Lucifer/Season 02/Lucifer - S02E18 - The Good, the Bad and the Crispy.mp4'
Wed May 31 01:32:00 EDT 2017 -- Downloading yesterday's recordings
Wed May 31 01:32:19 EDT 2017 -- Downloaded        0 files
Thu Jun  1 01:32:00 EDT 2017 -- Downloading yesterday's recordings
Thu Jun  1 01:32:19 EDT 2017 -- Downloaded        0 files

You can see the parallel processing in the timestamps in the log file.

1 Like