Introduction
OK, let's review the bidding so far: you've wired up Search using Rhymba's powerful and near-lightning-fast OData capabilities; you've added album & artist artwork to your store, as well as preview clips; your users have selected their content and you've reported the purchase to us (if money changed hands, as noted in the Purchases introduction). What now?
Well, actually delivering the content to your users, of course!
It's Not Delivery, It's De-Download... or De-Streaming... or De-Locker.
Rhymba provides you several options for content delivery to end users:
- You can offer traditional "naked" MP3 file downloads;
- Or, you can wrap up albums and groups of MP3s into a ZIP file;
- Maybe you'll use our Digital Locker service to store downloads for future retrieval;
- ...such as through our innovative and first-of-its-kind File Sync Helper that integrates with our Digital Locker (coming soon);
- Or, you can offer content for streaming via HTTP/progressive download or RTMP streams.
In short, because we ourselves dogfood our own APIs and systems, you (as our API customer) benefit from the plethora of integration and delivery options we've created for our projects over the years. This section is dedicated strictly to downloads; for information on streaming delivery, check out the Streaming section of this documentation.
So, Which Download Mechanism Is Right For You?
Welllll... that's a tough question to answer. We can help you out, though, with some information and observations from over the years.
- By and large, most customers seem to be confused by "naked" MP3 file downloads. Because operating systems and media players insist on hijacking media playback in-browser, often even ignoring specific HTTP headers set to make the dang MP3 be a dang ol' attachment, man, this option is generally best used when you're dealing with a relatively tech-savvy audience that understands the complex process of "right click, save as", or when you're going to be using your own download manager or other techniques.
- ZIP file downloads are not without their own pitfalls, but seem to be the most accessible of the options. ZIP files are handled natively by the overwhelming majority of operating systems with any sort of market share, and they allow the users to initial a single download for multiple pieces of content. There often still are some confused customers that contact our customer service department wondering about how to get a "zipper file" into iTunes, however, so be aware that this isn't bulletproof.
- By far, the most user-friendly approach and one that we used to take is the use of a download manager, often written in Java or other languages. In fact, we have one that runs as a Java Web Start application on some OSes (for sandbox reasons) and as an applet on the rest, which also automatically handles importing into iTunes and provides a single-click download experience with nice visual feedback. However, with Java slowly being pushed out of modern OSes, and with the recurring security issues with versions of Java (leading Apple to take the drastic step of completely disabling Java on Mac OS X from time to time until the user updates), we decided to move away from this direction.
- Which leads us to our File Sync Helper. Currently winding its way through QA, the File Sync Helper is a small installable helper app (a ClickOnce installation on Windows, a traditional DMG on Mac OS X) that integrates with our locker service and can, either transparently in the background or intentionally by a function call, automatically download new content the user has purchased and import it into iTunes/Windows Media Player. the File Sync Helper communicates with the user's web browser via some clever locally-scoped JavaScript, so it appears to be a web app — and interactivity with it occurs through the browser.
As mentioned, all methods have their pros and cons. Internally, we're standardizing on using the ZIP + File Sync Helper method, but the choice is ultimately up to you — and what your system/application's userbase looks like, as well as any technical & business requirements you have.
With that introduction, let's get you some content! Let's start our journey by getting into Download Sessions.