Nokaya
CLI to download photos from several online services including Instagram, Imgur albums, Flickr albums, App.net, Tumblr pages, Photo.net, Deviantart, etc.
Mac OS X only for the time being.
Installation
gem install nokaya
Usage
nokaya -i url
Also accepts the IFTTT format (like http://ift.tt/1m2Nvz8
).
Example:
nokaya -i http://instagram.com/p/noANAfjJ7B/
nokaya -i http://ift.tt/1m2Nvz8
Tumblr post
nokaya -tu url
Example:
nokaya -tu http://spacequest.tumblr.com/post/83560738152/sexycomics-carlos-valenzuela
Tumblr page
Due to the various themes and layouts existing for Tumblr galleries, this feature may not work perfectly...
Nokaya will try several techniques to extract the image links, then will fallback to scraping all available links if failing at properly detecting photos.
nokaya -tal url
Example:
nokaya -tal http://brekninger.tumblr.com
Downloads all images in the visible page.
Imgur album
nokaya -ial url
Example:
nokaya -ial http://imgur.com/a/JNzjB\#0
Downloads all images in the album (visible page).
Flickr album
nokaya -fal url
Example:
nokaya -fal https://www.flickr.com/photos/ericdke/sets/72157644556227302/
Downloads all images in the album (visible page).
Photo.net page
nokaya -pnet url
Example:
nokaya -pnet http://photo.net/gallery/photocritique/filter\?period\=365\&rank_by\=sum\&category\=Architecture\&store_prefs_p\=0
Downloads all images in the page.
Deviantart gallery
nokaya -dart url
Example:
nokaya -dart http://www.deviantart.com/photography/nature/waterscapes/
Downloads all images in the gallery (visible page).
Imageshack user gallery
nokaya -ishu url
Example:
nokaya -ishu https://imageshack.com/user/ToddGilbert
Downloads all images in the user gallery (visible page).
Favd
nokaya favd url
Example:
nokaya favd http://pic.favd.net/29987710
App.net
nokaya adn url
Example:
nokaya adn https://photos.app.net/30055986/1
Movie
Downloads a movie poster given (part of) a movie title.
nokaya movie title
Example:
nokaya movie the dark knight
Use option -a
to get an alternative.
This is useful for remakes:
nokaya -m solaris
(gives the 2002 version)
nokaya -m -a solaris
(gives the 1972 version)
App store
Downloads a set of icons and screenshots for a given app name.
Defaults for Mac OSX, use option -i
for iOS.
nokaya appstore name
Examples:
nokaya -as marked
nokaya -as -i chimp app.net
Music store
Downloads available art for an iTunes Store song.
Works better if you embed separate elements between quotes.
nokaya music 'song'
nokaya music 'song' 'artist' 'album'
Examples:
nokaya -z 'stairway to heaven'
nokaya -z 'stairway to heaven' 'led zeppelin'
Use the --album
option to find an album intead of a song:
nokaya -z --album 'calamari tuesday'
Options
Name
--name
or -n
Specify a name (without extension).
nokaya -i http://instagram.com/p/noANAfjJ7B/ -n happy_dog
nokaya -i http://instagram.com/p/noANAfjJ7B/ -n 'happy dog'
Output
--output
or -o
Specify an output path.
nokaya -i http://instagram.com/p/noANAfjJ7B/ -o ~/Pics
The picture(s) will be downloaded in '~/Downloads' if no output specified.
Both
Specify both.
nokaya -i http://instagram.com/p/noANAfjJ7B/ -o ~/Pics -n happy_dog
Using Nokaya in a script or irb
Create a new instance of the class you need, with an array of arguments and an hash of options.
Do what you wish with this object, or call its save
method to write down the grabbed file(s).
require 'nokaya'
result = Nokaya::Movie.new ['terminator']
result.save
The argument(s) for the movie/music/app/url - for the request - have to be in an array.
You can pass options in a hash. Options keys are strings that match the name of the corresponding symbol in the Nokaya::App class (which is the CLI interface).
Examples:
require 'nokaya'
client = Nokaya::Movie.new ['solaris'], {'alt' => true}
client = Nokaya::Instagram.new ['http://ift.tt/1m2Nvz8'], {'output' => '/hdd/custom/dir', 'name' => 'pasta.jpg'}
client = Nokaya::Deviantart.new ['http://www.deviantart.com/photography/nature/waterscapes/']
client = Nokaya::ImgurAlbum.new ['http://imgur.com/a/JNzjB\#0']
client = Nokaya::AppStore.new ['marked app']
client = Nokaya::AppStore.new ['chimp', 'app.net'], {'ios' => true}
etc.