Use the Google API from the shell. An example, get the long URL using the urlshortener service:
$ echo '{"shortUrl": "http://goo.gl/Du5PSN"}' | shoogle execute urlshortener:v1.url.get -
{
"status": "OK",
"id": "http://goo.gl/Du5PSN",
"longUrl": "http://1.bp.blogspot.com/-R0HSXDqlJI8/Tr67i-kr7hI/AAAAAAABMko/gaId6iYuhjA/s1600/12_%252520Cross%252520that%252520bridge%252520when%252520we%252520come%252520to%252520it.jpg",
"kind": "urlshortener#url"
}
$ sudo pip install shoogle
$ wget https://github.com/tokland/shoogle/archive/master.zip
$ unzip master.zip
$ cd shoogle-master
$ sudo pip install pypandoc
$ sudo python setup.py install
Incrementally show details of services/resources/methods:
$ shoogle show
adexchangebuyer2:v2beta1 - Ad Exchange Buyer API II
adexchangebuyer:v1.2 - Ad Exchange Buyer API
...
youtubeAnalytics:v1beta1 - YouTube Analytics API
youtubereporting:v1 - YouTube Reporting API
$ shoogle show short
urlshortener:v1 - URL Shortener API
$ shoogle show urlshortener:v1
urlshortener:v1.url
$ shoogle show urlshortener:v1.url
urlshortener:v1.url.get - Expands a short URL or gets creation time and analytics.
urlshortener:v1.url.insert - Creates a new short URL.
urlshortener:v1.url.list - Retrieves a list of URLs shortened by a user.
$ shoogle show urlshortener:v1.url.get
[INFO] Response (level=0, --debug-response-level=N to change):
{
"$ref": "Url"
}
[INFO] Request (level=1, --debug-request-level=N to change):
{
"shortUrl": "(string) The short URL, including the protocol - required"
}
$ cat get-longurl.json
{
"key": "YOUR_SECRET_KEY", // You can use JS comments!
"shortUrl": "http://goo.gl/Du5PSN"
}
$ shoogle execute urlshortener:v1.url.get get-longurl.json
{
"status": "OK",
"id": "http://goo.gl/Du5PSN",
"longUrl": "http://1.bp.blogspot.com/-R0HSXDqlJI8/Tr67i-kr7hI/AAAAAAABMko/gaId6iYuhjA/s1600/12_%252520Cross%252520that%252520bridge%252520when%252520we%252520come%252520to%252520it.jpg",
"kind": "urlshortener#url"
}
$ cat upload-video.template.json
{
"part": "snippet",
"body": {
"snippet": {
"title": $title,
"description": $description
}
}
}
$ jq -n -f upload-video.template.json --arg title "Chess" --arg description "Norway Chess" |
shoogle execute -c your_client_id.json youtube:v3.videos.insert - -f chess.mp4 |
jq -r '.id'
wUArz2nPGqA
Issues: Please open issues only to report bugs of the package. If you have problems regarding how to use the API itself (what auth is required, how to create those auth files, how to build the request parameters, quotas management, etc), use the Google Forums or StackOverflow.