Adding metadata in image when on the camera


We are trying to identify which photo belongs to which room. We thought of using the names which just keep incrementing the number, but the issue is when for example we have 10 photos n we delete 2 of them, the counter decrements as well which could introduce issues. We tried comparing the timestamps. Storing the timestamp locally in our ios app and then comparing it to the timestamp extracted from the photo exif data, but that has variable gaps too ranging from about 25 seconds to 2.5 minutes. We noticed an exif property named imagedescription which is always empty. Can we create a plugin to insert our custom data in that field?
also, the plugin github readme says run the project through android studio and it will install the plugin on the camera. Is it not possible to install the plugin using the apk directly if developer mode is enabled?
We are using ricoh theta z1.
Thank you!

You can install the plugin directly with adb if the Z1 is in developer mode. You do not need to use the store. However, this is only for small deployments as there is no central management and every camera will need to be in developer mode. In this scenario, you have to use adb install. You can’t just drag the apk onto the camera icon with a laptop. You may be able to write a script. I believe the developer mode may void the camera warranty. How many cameras are you thinking of deploying the plug-in to? Is it more than 10 cameras? I believe there may be a way to have an unpublished store, meaning the link to the store and plugin is not listed, but there is no password protection.

I do not have recent experience with the metadata from the plugin. You can search online. You may be able to use this library.

Once you write the metadata, you can read metadata with exiftool for testing. Actually, exiftool can write metadata as well.

You can apply to the free plug-in partner program here:

You will need to submit the serial number for every camera.

Online support is here:

RICOH THETA Plug-in Partner Program|RICOH

Thank you for your prompt response and suggestions @craig.
We are trying a sample plugin and see if it works well for you.
Thank you!

Additional information on plugin development is here.

1 Like

One other doubt i am starting to have now though is will the plugin be able to communicate with our ios application via api? The whole point is to pass some metadata with the image. The flow i had in mind was to pass data related to the room when triggering the image capture event. But i noticed that when the plugin is active, is drops the wifi connection. Without wifi, the custom app won’t be able to communicate with the plugin. Is there any permission required or any other way to keep wifi active while the plugin is active?

See this article

The WiFi is going off only when you use adb. it should run if you disconnect the USB cable. to enable wifi during debugging, see this:

adb shell settings put global usb_debug true

BTW, most people building applications that need the location of picture are taking the pictures on the camera with the webAPI and creating a separate data file on the mobile phone for each image. They then match the data file and the image in their cloud-based database.

If you need an image every second, you use the THETA X with CAMM metadata in the 8K 2fps video files.

I don’t know about your specific requirements, so maybe the plugin with metadata is the way to go for your application.

However, I did want to mention that most construction and real estate applications take pictures with the webAPI (not the plugin API) and then store the information about the image in a separate text file. Then, they load both the text file and the image up to the cloud database.

For construction sites where a worker walks around the site with a monopod, companies often use the 8K 2fps video and extract the frames into still images. They then match the frames witht he CaMM track.

If you pursue getting the IMU data from THETA X video files, then this topic may provide useful information.

For the Z1, the lowfps video is stored in different video files.