google(1) command-line access to (some) Google services


google [picasa|blogger|youtube|docs|contacts|calendar|finance] TASK [options]


This program provides command-line access to (some) google services via their gdata APIs. Called without a service name, it starts an interactive session.

NOTE: GoogleCL will interpret arguments as required options in the order they appear in the descriptions below, excluding options set in the configuration file and non-primary terms in parenthesized OR groups. For example:

$ google picasa get my_album .

is interpreted as "google picasa get --title=my_album --dest=.

$ google contacts list john

is interpreted as "$ google contacts list --fields=<config file def> --title=john --delimiter=," (only true if you have not removed the default definition in the config file!)

$ google docs get my_doc .

is interpreted as "$ google docs get --title=my_doc --dest=. (folder is NOT set, since the title option is satisfied first.)

Available tasks for service picasa: 'get', 'create', 'list', 'list-albums', 'tag', 'post', 'delete'

get: Download albums
Requires: title AND dest Optional: owner, format, photo
create: Create an album
Requires: title Optional: src, date, summary, tags, access
list: List photos
Requires: fields AND delimiter Optional: title, query, owner, photo
list-albums: List albums
Requires: fields AND delimiter Optional: title, owner
tag: Tag/caption photos
Requires: (title OR query) AND (tags OR summary) Optional: owner, photo
post: Post photos to an album
Requires: title AND src Optional: tags, owner, photo, summary
delete: Delete photos or albums
Requires: (title OR query) Optional: photo

Available tasks for service blogger: 'post', 'tag', 'list', 'delete'

post: Post content.
Requires: src AND blog Optional: title, tags, access
tag: Label posts
Requires: blog AND title AND tags
list: List posts in a blog
Requires: fields AND blog AND delimiter Optional: title, owner
delete: Delete a post.
Requires: blog AND title

Available tasks for service youtube: 'post', 'tag', 'list', 'delete'

post: Post a video.
Requires: src AND category AND devkey Optional: title, summary, tags, access
tag: Add tags to a video and/or change its category.
Requires: title AND (tags OR category) AND devkey
list: List videos by user.
Requires: fields AND delimiter Optional: title, owner
delete: Delete videos.
Requires: title AND devkey

Available tasks for service docs: 'edit', 'delete', 'list', 'upload', 'get'

edit: Edit a document
Requires: title Optional: format, editor, folder
delete: Delete documents
Requires: title Optional: folder
list: List documents
Requires: fields AND delimiter Optional: title, folder
upload: Upload a document
Requires: src Optional: title, folder, format
get: Download a document
Requires: (title OR folder) AND dest Optional: format

Available tasks for service contacts: 'list', 'list-groups', 'add', 'add-groups', 'delete-groups', 'delete'

list: List contacts
Requires: fields AND title AND delimiter
list-groups: List contact groups
Requires: title
add: Add contacts
Requires: src
add-groups: Add contact group(s)
Requires: title
delete-groups: Delete contact group(s)
Requires: title
delete: Delete contacts
Requires: title

Available tasks for service calendar: 'add', 'list', 'today', 'delete'

add: Add event to a calendar
Requires: src Optional: cal
list: List events on a calendar
Requires: fields AND delimiter Optional: title, query, date, cal
today: List events for the next 24 hours
Requires: fields AND delimiter Optional: title, query, cal
delete: Delete event from a calendar
Requires: (title OR query) Optional: date, cal

Available tasks for service finance: 'list-txn', 'delete-pos', 'create-pos', 'delete-txn', 'create', 'create-txn', 'list', 'list-pos', 'delete'

list-txn: List transactions
Requires: title AND ticker
delete-pos: Delete positions
Requires: title Optional: ticker
create-pos: Create position
Requires: title AND ticker
delete-txn: Delete transactions
Requires: title AND ticker Optional: txnid
create: Create a portfolio
Requires: title AND currency
create-txn: Create transaction
Requires: title AND ticker AND ttype AND shares AND price Optional: shares, price, date, commission, currency, notes
list: List portfolios
Requires: none Optional: fields
list-pos: List positions
Requires: title Optional: fields
delete: Delete portfolios
Requires: title


show program's version number and exit
-h, --help
show this help message and exit
Specify access/visibility level of an upload
Blogger only - specify a blog other than your primary.
Calendar only - specify a calendar other than your primary.
-c CATEGORY, --category=CATEGORY
YouTube only - specify video categories as a commaseparated list, e.g. "Film, Travel"
Finance only - specify commission for transaction
Specify location of config file.
Finance only - specify currency for portfolio
YouTube only - specify developer tags as a commaseparated list.
YouTube only - specify a developer key
-d DATE, --date=DATE
Calendar only - date of the event to add/look for. Can also specify a range with a comma. Picasa only - sets the date of the album Finance only - transaction creation date
Enable all debugging output, including HTTP data
Specify a delimiter for the output of the list task.
Destination. Typically, where to save data being downloaded.
Blogger only - post as a draft. Shorthand for --access=draft
Docs only - editor to use on a file.
Fields to list with list task.
-f FOLDER, --folder=FOLDER
Docs only - specify folder(s) to upload to / search in.
Force validation step for re-used access tokens (Overrides --skip-auth).
Docs only - format to download documents as.
Label the machine being used.
-n TITLE, --title=TITLE
Title of the item
Google Apps Premier only - do not convert the file on upload. (Else converts to native Google Docs format)
Finance only - specify notes for transaction
-o OWNER, --owner=OWNER
Username or ID of the owner of the resource. For example, 'picasa list-albums -o bob' to list bob's albums
Picasa only - specify title or name of photo(s)
Finance only - specify price for transaction
-q QUERY, --query=QUERY
Full text query string for specifying items. Searches on titles, captions, and tags.
Print only prompts and error messages
Calendar only - specify time for added event's reminder, e.g. "10m", "3h", "1d"
Finance only - specify amount of shares for transaction
Skip validation step for re-used access tokens.
Source. Typically files to upload.
-s SUMMARY, --summary=SUMMARY
Description of the upload, or file containing the description.
-t TAGS, --tags=TAGS
Tags for item, e.g. "Sunsets, Earth Day"
Finance only - specify ticker
Finance only - specify transaction type, e.g. "Bye", "Sell", "Buy to Cover", "Sell Short"
Finance only - specify transaction id
-u USER, --user=USER
Username to log in with for the service.
-v, --verbose
Print all messages.
Answer "yes" to all prompts


google blogger post --title 'foo' 'command line posting'
google calendar add 'Lunch with Jim at noon tomorrow'
google contacts list --title '.*' --fields name,email,phone > contacts.csv
google docs edit --title 'Shopping list'
google picasa create --title 'Cat Photos' ~/photos/cats/*.jpg
google youtube post --category Education killer_robots.avi