Skip to content

Instantly share code, notes, and snippets.

@danpaluska
Created March 2, 2010 18:25
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danpaluska/e2569bca9313b1056c0e to your computer and use it in GitHub Desktop.
Save danpaluska/e2569bca9313b1056c0e to your computer and use it in GitHub Desktop.
shell script for uploading videos to youtube, use with uploader2.py
#!/bin/bash
# ——————————-
# on a MAC, make a softlink so you don’t have to deal with spaces.
# cd /Users/yourname/Pictures/
# ln -s /Users/yourname/Pictures/Photo\ Booth/ photobooth
# CHANGE THIS DIRECTORY
#SEARCH_DIR=”/home/museotwvee/Videos/Webcam”
SEARCH_DIR=/home/bplbroadcaster/Videos/Webcam
# ——————————-
COPY_DIR=$SEARCH_DIR/copies
# make sure photo booth directory is there
if [ -d $SEARCH_DIR ]; then
echo “Got Videos directory”
else
echo “You do not have Videos directory of ‘$SEARCH_DIR’”
exit 1
fi
cd $SEARCH_DIR
# make sure a copy directory is there otherwise make it
if [ -d $COPY_DIR ]; then
echo “You have a save directory”
else
mkdir $COPY_DIR
fi
# ————————————————————
# Setup Environment
# ————————————————————
PDIR=${0%`basename $0`}
LCK_FILE=`basename $0`.lck
# ————————————————————
# Am I Running
# ————————————————————
if [ -f ${LCK_FILE} ]; then
# The file exists so read the PID
# to see if it is still running
MYPID=`head -n 1 ${LCK_FILE}`
TEST_RUNNING=`ps -p ${MYPID} | grep ${MYPID}`
if [ -z ${TEST_RUNNING} ]; then
# The process is not running
# Echo current PID into lock file
echo “Not running”
echo $$ > ${LCK_FILE}
else
echo “`basename $0` is already running [${MYPID}]“
exit 0
fi
else
echo “Not running”
echo $$ > ${LCK_FILE}
fi
# ————————————————————
# Do Something
# ————————————————————
# check for the last time this program was run so we only upload newer files
if [ -f last_run.txt ]; then
LAST_RUN=`cat last_run.txt`
else
LAST_RUN=0
fi
THIS_RUN=`date +%s`
DATETIME=`date +%Y%m%d%H%M%S`
# look for any .mov
# sometimes using mp4s now, can i search for multiple file types?
for f in ./*.ogv ./*.mov ./*.mp4; do
if [[ '*' != ${f:2:1} ]]; then
# for f in *.m*;do # this will get .mov, .m4v, and .mp4
# check to make sure the file hasn’t been touched in the last 120 seconds
# and that the file is newer than the last time we ran minus 120 seconds
# this stat line works for mac but not linux.
#if [ $FILE_TIME -lt $(($THIS_RUN - 120)) ] && [ `stat -f "%Sm" -t "%s" "$f"` -ge $(($LAST_RUN - 120)) ]; then
#MAC VERSION
#FILE_TIME=`stat -f “%Sm” -t “%s” “$f”`
#LINUX VERSION
#FILE_TIME=`stat -c ‘%X’ $f` ### sometime you need the ' ' around the %X, sometimes not. ;)
FILE_TIME=`stat -c %X $f`
if [ $FILE_TIME -lt $(($THIS_RUN - 120)) ]; then
echo “Uploading $f”
python uploader2.py $DATETIME $f
# sometimes this behaves strange with the " marks, if so, try this one->
# python uploader2.py $DATETIME $f
# if it didn’t work, then touch the file so we can try again on future runs
# touch is only for mac running photobooth.
# move it on linux. cheese can handle files moving. photobooth barfs.
if [ $? -ne 0 ]; then
sleep 1
#touch $f
else
mv $f $COPY_DIR
fi
fi
fi
done
echo $THIS_RUN > last_run.txt
# ————————————————————
# Cleanup
# ————————————————————
rm -f ${LCK_FILE}
# ————————————————————
# Done
# ————————————————————
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment