Sony Camera Remote API Wrapper

Gem Version

A Ruby Gem that facilitates the use of Sony Camera Remote API.


Sony Camera Remote API allows us to control a number of Sony cameras, including Sony Action cams, Sony Alpha cameras and Lens Style cameras, wirelessly from another device. But these APIs are quite low-level, so that we have to implement a lot of sequences while considering many pitfalls, which are less documented in their API reference. This gem is a wrapper library that make it easy to use Sony camera functions for high-level applications.


  • Easy connection to camera
  • Streaming live-view images by one method
  • Simplified contents transfer
  • Consistent interface for changing parameters safely
  • Auto reconnection
  • CLI application bundled (like Raspberry Pi camera application)

Supported version

Ruby 2.0 or higher


Add this line to your application's Gemfile:

gem 'sony_camera_remote_api'

And then execute:

$ bundle

Or install it yourself as:

$ gem install sony_camera_remote_api


  1. Connect your PC (or device) to the camera with Direct Wi-Fi. If your PC is Linux or MacOS machine, you can easiy do it by using Shelf class like following example.
  2. Create SonyCameraRemoteAPI::Camera instance with Shelf instance.
  3. Now you can access all of camera APIs and useful wrapper methods!

This is an example code that takes a picture and transfer it to your PC.

require 'sony_camera_remote_api'

ssid = "DIRECT-xxxx:ILCE-QX1"   # SSID of camera
pass = "xxxxxxxx"               # passphrase
interface = "wlan0"             # interface by which you connect to the camera

# Connect to the camera
shelf = 'sonycam.shelf'
shelf.add_and_select ssid, pass, interface

# Initialize Camera class instance, with which you can access all camera functions.
cam = shelf
cam.change_function_to_shoot 'still', 'Single'


Tutorials are available from Project's Wiki.

API Documentation

API documents of this library are available here.


  • Remote playback function


After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to


Bug reports and pull requests are welcome on GitHub at This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.


The gem is available as open source under the terms of the MIT License.