// Blog

Dropbox Meets Clarify

Originally published on the Clarify.io blog. View archived copy.

Dropbox IconAs developers, one of the challenges we face every day is meeting users where they already live.  The blessing of the proliferation of services is also a curse in that our information gets more and more scattered.  The days of storing everything on a local hard drive and emailing things around are slowly becoming extinct. Services such as Dropbox make it easy and affordable to store, access and share our data from anywhere.

I’ve been a big fan of Clarify since last year, and am constantly on the lookout for new markets where the service might fit. In my conversations with journalists, film editors, and other producers of audio and video media, a common message has been: “I love not having to transcribe the audio, and having it searchable almost immediately. Can you make it work with the tools I’m already using, like Dropbox?

Yes. Yes we can.

Hello, Dropbox

In the following video, you’ll see a demonstration of a very simple integration with the Dropbox API. The goal of the demo project was to show:

  • Dropping media files into a designated Dropbox folder
  • Using Dropbox callbacks to tell Clarify to index the file
  • Processing the Clarify callbacks
  • Searching the contents using our interface

In a perfect world, we’d provide a simple UI on the desktop or perhaps a Chrome plugin to search the audio so that the user would not have to leave the comfort of known applications. However, for the purposes of the demo, we put a simple Bootstrap interface on top of our NodeJS backend.

This short video shows the app in action.

How It Works

We created a Dropbox application using the Dropbox Developer Portal. We chose to make it an application that has it’s own folder, rather than making the user configure folders to listen to for file events.  We then created a simple NodeJS application that uses Dropbox OAuth to authenticate the user.  Once the user is authenticated, the folder is automatically created in the user’s Dropbox/Apps folder.

The user drops media files of any valid Clarify extension into the folder. Dropbox sends our application a  callback notification of new activity, along with the public url of the media file.  We then create a simple DB record in our application to store the file url, along with other key information about the file, and send the file off to Clarify to get indexed.

Once indexing is completed, our application gets a callback notification from Clarify, and we update the DB with cost and duration information. The user is then able to search the contents of the media and play back.

Technology Stack

  • Node 0.12
  • MongoDB
  • Express JS
  • Dropbox OAuth
  • Grunt, Bower

Running It For Yourself

To run the demo, download the source code from my clarify-dropbox Github repository. Inside the project source, check out the detailed README for all of the steps to get the application running on your machine. Don’t forget that that your app will need to be accessible from the outside world in order to receive the Dropbox and Clarify callbacks.

If you have any problems getting things running, you can reach out to me on Twitter. I’ll be happy to help.

I hope you find this demo useful, and that it jumpstarts your development on both Clarify and Dropbox.

About the Author

Scott Barstow is a veteran software developer and builder of next-generation business applications based in Raleigh-Durham, NC. When not building Clarify mashups, he stays busy helping startups in RDU and around the US build great technology. You can find him online at ScottBarstow.com or @scottbarstow on most all of the big social platforms.