Mint Digital has recently completed the development work on Thumbplay OPEN, a self-serve way for independent content owners to upload, manage and sell mobile content to over 230 million mobile customers. It’s cool from the consumers' perspective, but it’s also cool under the hood. We thought it might be worth sharing a little bit of how it works.
Thumbplay OPEN serves two communities. Independent music and visual artists can make money by packaging and selling their work to millions of mobile customers. Site owners can sell mobile downloads from any Web site, application or widget.
From Mint's perspective Ruby on Rails, and RESTful design have proved to be a great combination when integrating with existing systems.
Mint’s lead developer on the project was John Corrigan. Here's his perspective:
When we talk to clients about BloomBox, a common request is that we integrate with their internal systems. Integration is a two-way street. Sometimes it means in-house software consuming our API, other times it means the BloomBox app consuming an in-house API.
When Mint swallowed the REST pill a couple of years ago, we made the first side of this process almost automatic, and we can easily expose anything in our apps through XML or JSON. On this project the good folks at Thumbplay have exposed a very similar set of APIs for us to consume and it’s been very straightforward.
While Mint itself provides an interface for uploading content and managing user profile information, there is no Mint component to OPEN that is publicly accessible; the publicly accessible portion of the application exists entirely on the Thumbplay site. What this effectively means is that for any user information or user generated content to be present on the Thumbplay site, communication between the two applications needs to take place.
It is important that the OPEN user can update their artist profile and can upload and remove ringtones and graphics. Thumbplay exposes the necessary methods in their API. From the user's perspective it appears that they are interacting with a single system. They click on a link, the page reloads and the content is labelled as published, and it is available in the catalog at www.thumbplay.com.
What actually happens is that when they perform that action, Mint communicates with the Thumbplay API, providing it with all necessary parameters based on the content as it exists within the Mint system, then changes it's state to reflect that the content has been published to Thumbplay.
Since users are allowed to upload audio files, copyright infringement is a concern. Audible Magic is a service that allows protection against such infringements.
After an audio file has been uploaded to the Mint system, a representation of it is sent to the Audible Magic service to determine if it recognized as copyrighted. Material that is determined to be copyrighted cannot be published to the Thumbplay system, therefore leaving it inaccessible to the public for sale.
We send the users emails for a variety of reasons (email verification, password reminders, and welcome emails). In the past we have normally configured our applications to just send the mails out through an SMTP server in the solution itself, but this can lead to problems. Anyone who’s ever tried to figure out why their emails are not getting through to Hotmail users will understand the pain involved in setting this up “correctly”.
Thumbplay are using a third party called Responsys to send the emails, so we pulled out the existing ActionMailer support, and replaced it with a component that binds to Responsys instead. Hotmail users rejoice, for you can now sign up for Thumbplay Open without digging around in your spam folder.