Posts Tagged ‘uploader’

Howto: Youtube auto-upload script

March 3, 2010

So you’re making lots of movies and you want things to upload to youtube automatically without you having to do any heavy lifting? If you are comfortable with a little bit of terminal and command line stuff, no problem.

A few things you will need:
Gmail account and Youtube account. These will be linked. You can use one gmail account as the developer for multiple youtube accounts but each youtube account needs it’s own independent email address, and for multiple gmail accounts you might need to get some dummy address at yahoo.com or mail.com as an alternative email. Then get yourself a developer key while logged into your developer gmail account.

Python 2.6 is probably already installed. But if not, install that too.

We’ve gotten this working for MacOSX and Linux (ubuntu 9.10 and fedora 11 anyway).
It’s probably not too hard to get it working with Windows but we’ve never tried.

Files you need:
uploader2.py at http://gist.github.com/319734
edit login information for youtube and gmail accounts.
edit developer key. edit the keywords and description to fit your project.

videochecker.sh at https://gist.github.com/e2569bca9313b1056c0e
check the path.
Thanks to Sean Levin for writing these.

Gdata and Atom directories. They are zipped and downloadable here: http://www.divshare.com/download/11521457-3da Unzip and place into same directory as uploader2.py.

Copy these files into whatever directory you will be uploading videos from.
You will now need to edit both of these files as noted above. Do you have a favorite text editor for simple code? We like smultron on mac and gedit or emacs on linux but any will do. Whatever music you like.

make sure both files are executable.

chmod 755 uploader2.py
chmod 755 videochecker.sh

then try it out manually. from the video directory prompt try running the videochecker.
yourvideodirectory$ ./videochecker.sh
Got Upload directory
You have a save directory
Not running
just before loop start
inside for loop
Uploading OMPD-20100301-20100302.mp4
uploader-log: running doit with the_time=2010-03-02T00:00:53 and the_filename=OMPD-20100301-20100302.mp4
uploader-log: created media_group
uploader-log: created youtube entry
uploader-log: created YouTubeService
uploader-log: attempting to find previous login token in token file
uploader-log: token file found
uploader-log: set login token to DQAAAHUAAA ...
uploader-log: trying login with captcha_token=None and captcha_response=None
uploader-log: login succeeded continuing on to upload
uploader-log: saving token (DQAAAHYAAABXiMigRrgi5 ... ) to token file (youtube_login_token.txt)
uploader-log: starting to upload video entry
uploader-log: completed upload of video entry
uploader-log: OMPD-20100301-20100302.mp4 uploaded to service successfully. Returning success to calling script (0)
yourvideodirectory$

if you’re getting an error with videochecker, try changing the first line to
#! /bin/bash -ex and it will output lots of extra info as it runs.

Ok. So you made it that far and now you want to set it up so it runs automatically each day or week or hour. Time for crontab. What is a crontab you ask? It’s sort of like asking your alarm clock to run a program instead of make a loud sound. It’s just a simple text file that you add some instructions to. The only problem is that you usually edit it in vi (a text editor). vi is nice and all but it’s rather confusing if you haven’t used it before. With vi, there are 2 modes, insert-text mode and command mode. 3 most useful key sequences are:
i – enter insert mode,
esc – exit insert mode
ZZ – save file and exit program.
Want to learn more: http://heather.cs.ucdavis.edu/~matloff/UnixAndC/Editors/ViIntro.html

In the terminal window (here your current path matters not), enter
crontab -e
type i to put the editor in INSERT mode. (see text in bottom left of editor)

– then make your crontab look like:
# m h dom mon dow command
*/10 * * * * /home/yourlinuxboxname/Videos/Webcam/videochecker.sh

(which runs that script every 10 minutes.)
or

# m h dom mon dow command
* 3 * * * /home/yourmac/Movies/AUTOUPLOAD/videochecker.sh

(which runs that script at 3am each evening. But only when the computer is awake.)

– hit the ‘esc’ key to get out of insert mode.

– then type ZZ to save and exit.

Let us know how this works for you and we will try to keep an updated version of these instructions.