Difference between revisions of "Script - RemoveCommercials"

From MythTV Official Wiki
Jump to: navigation, search
(Rebuild the seek table after transcoding)
Line 68: Line 68:
  
 
Place this command into a script in /etc/cron.daily or into crontab. This will remove all backup files that are older than 2 days.
 
Place this command into a script in /etc/cron.daily or into crontab. This will remove all backup files that are older than 2 days.
 +
 +
Note:
 +
 +
I update this script as I make changes to my own system. You should [[?title=Script_-_RemoveCommercials&action=watch|watch]] this article so you're notified of changes as they occur. If you do not have a wiki account and do not wish to create one you should check back periodically to get changes.

Revision as of 04:34, 4 August 2006

The follow script can be setup as a User Job to automatically flag and remove commercials from a recording.

#!/bin/sh
# removecommercials.sh
#
# Copyright 2006 Zach White <zwhite-mythtv@darkstar.frop.org>
#
# Permission to use, copy, modify, and distribute this software and
# its documentation for any purpose and without fee is hereby granted,
# provided that the above copyright notice appear in all copies and
# that both that copyright notice and this permission notice appear in
# supporting documentation.
#
# THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
# SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
# FITNESS, IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
# SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
# RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
# CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
VIDEODIR=$1
FILENAME=$2
# Sanity checking, to make sure everything is in order.
if [ -z "$VIDEODIR" -o -z "$FILENAME" ]; then
        echo "Usage: $0 <VideoDirectory> <FileName>"
        exit 5
fi
if [ ! -f $VIDEODIR/$FILENAME ]; then
        echo "File does not exist: $VIDEODIR/$FILENAME"
        exit 6
fi
# The meat of the script. Flag commercials, copy the flagged commercials to
# the cutlist, and transcode the video to remove the commercials from the
# file.
mythcommflag -f $VIDEODIR/$FILENAME
ERROR=$?
if [ $ERROR -gt 126 ]; then
        echo "Commercial flagging failed for ${FILENAME} with error $ERROR"
        exit 1
fi
mythcommflag --gencutlist -f $VIDEODIR/$FILENAME
ERROR=$?
if [ $ERROR -ne 0 ]; then
        echo "Copying cutlist failed for ${FILENAME} with error $ERROR"
        exit 2
fi
mythtranscode --honorcutlist --showprogress -i $VIDEODIR/$FILENAME -o $VIDEODIR/$FILENAME.tmp
ERROR=$?
if [ "$ERROR -ne 0" ]; then
        echo "Transcoding failed for ${FILENAME} with error $ERROR"
        exit 3
fi
mythcommflag -f $VIDEODIR/$FILENAME --rebuild
if [ $ERROR -eq 0 ]; then
        mv $VIDEODIR/$FILENAME $VIDEODIR/$FILENAME.old
        mv $VIDEODIR/$FILENAME.tmp $VIDEODIR/$FILENAME
        exit 0
else
        echo "Transcoding failed for ${FILENAME} with error $ERROR"
        rm $VIDEODIR/$FILENAME.tmp
        exit 4
fi

Please note that this script will save the original file as ${FILENAME}.old. You should periodically remove these files to save space. If you want to remove them automatically, you could use the following command:

find /var/video -name \*.old -ctime 2 -exec rm {} \;

Place this command into a script in /etc/cron.daily or into crontab. This will remove all backup files that are older than 2 days.

Note:

I update this script as I make changes to my own system. You should watch this article so you're notified of changes as they occur. If you do not have a wiki account and do not wish to create one you should check back periodically to get changes.