Announcing Queued, a Netflix Queue Manager Using Dojo and AIR

By on February 17, 2009 10:27 am

I’m excited to announce a new open source project created by SitePen and co-sponsored by Adobe: Queued. With Queued, you can manage your Netflix queue anytime, anywhere!

It’s no secret that we’re big fans of Dojo here. Since Adobe AIR provides a platform that integrates desktop features into the browser development model, it’s easy to see where our favorite JavaScript toolkit fits: it’s every bit the springboard in the AIR world as it is in the browser world. We designed Queued to show what the Dojo + AIR combo can do.

As a technology demo, our goals with Queued were pretty simple:

  • Open the Source
  • Showcase Dojo
  • Use the newest AIR 1.5 features like encryption, a local database, and offline capability

Queued does all of that. We’ve uploaded a screencast to YouTube to introduce it (or, watch the .mov version or .avi version)

Here’s a little bit of technical detail on how we met these goals:

Open the Source

This one was very simple to execute. First, we put Queued on Google Code (under the New BSD License) for all the world to see and modify. Second, you can view the source right from Queued itself (see below).

Showcase Dojo

The entire Dojo toolkit contains much more functionality than any single application needs, so the task of building applications often comes down to figuring out what style of coding you’ll use rather than learning how to use different components and figuring out how to glue them together. For Queued, we ended up with:

  • a single HTML file for the main window
  • dAIR for Dojo/AIR integration (window handling, etc)
  • dijit for layout (BorderContainer and friends)—but only for layout; we wanted to show that you can build compelling experiences without having to include (or learn!) the entire toolkit
  • unobtrusive behavior implementation using dojo.behavior, which made it very easy for our design & CSS guys to be productive without conflicting with the JS guys (and vice versa)
  • dojox.dtl for most widget templating
  • drag and drop for queue re-ordering
  • various animations for polish
  • Dojo’s build system (we distill everything into a single dojo.js and qd.js for the production app)

Since Queued is as much a demonstration of Dojo as it is of AIR, we took special care to keep the code hackery to a minimum—in addition to simply working correctly, we needed the code to be 1) easy to follow and 2) instructive for developers interested in learning how a good Dojo app can be put together. Everything’s nice and organized.

Use the Newest AIR Features

We had a few technical requirements on the AIR side for things we needed to implement:

  1. Local Database. AIR provides an embedded SQLite engine, and Queued takes advantage of it to store just about everything the application receives from the Netflix API. We cache movie details, queue information, viewing history, star ratings, box art, etc. Most of this ends up in an encrypted database that gets created automatically the first time you run Queued.

  2. Encrypted Local Storage. Separate from the database engine, AIR provdes an encrypted key/value store useful for storing things like preferences or other low-volume data. Queued uses this as a secure way to store basic user details.

  3. View Source. Adobe provides a framework for adding View Source capability to AIR apps, and Queued makes this available in the Preferences area (you can see it near the end of the screencast).

  4. Automatic Updates. Queued lets you easily keep your application up to date by automatically checking for updates in the background and notifying you if there’s a newer version available.

  5. Offline. One of the main features of using the AIR platform over regular browser-based development, of course, is that you have built-in access to creating offline capability. When you’re offline, everything you do in Queued gets processed using the cache in the local database and stored to a transaction queue for later; when you connect, Queued recognizes that you have changes pending, and it gives you the option of synchronizing those changes out to Netflix or simply discarding them.

Go Check It Out

We’re proud of Queued—it looks great and it works great. It’s available for download at SitePen Labs today. Pick it up and check it out!


  • Pingback: Ajaxian » Queued: a Netflix Queue Manager Using Dojo and AIR()

  • Pingback: Queued a Netflix queue manager AIR application : Mihai CORLAN()

  • Looks like a great tool! Unfortunately, I can’t get past the “Waiting for response from Netflix servers…” message on my Mac. But I imagine this would be pretty nifty!

  • jackson

    Mac OSX.5, with latest updates applied.
    Queued installs just fine. When run, it comes up with a light blue screen that say “Welcome to Queued”.
    That is it. Anything I am doing wrong?

  • Daryl

    I get the same thing. I don’t get why it won’t do anything else apart from that blue screen.

  • ttrenka

    It depends on what your OS is…we had some Linux issues today that was blocking most people on the initial screen, which was fixed (you’ll see a 1.01 download on ).

    More importantly, Netflix itself imposes a 4 queries-per-second limit based on either the application (if you have not authorized Queued to access your info) or the user (if you have). The interest in Queued today has caused Netflix to send us at least 2 notifications that we have gone over that limit (which is unusual in itself), and we’re working on getting them to loosen some of those restrictions up.

    Basically this means that you may just have to wait a little bit and try it again–as much as I hate to recommend that. But we are forced to it by the limitations placed on us by Netflix (which in themselves are warranted, they don’t want their servers to be overwhelmed).

    If you would like to give us more info about what your particular system is (we’re also finding that some of these things are particular to specific systems), please feel free to take a look at the issues at , see if what you’re experiencing is there and if not, file a ticket. We’ll do our best to respond quickly.

  • ttrenka

    An update:

    Queued needs Adobe AIR 1.5 to work; we’re noticing that if you had a previous AIR installation and use the badge at to install/update it, the badge may sometimes only update your AIR installation to 1.1 (this happened to one of our developers on an older machine).

    If you’re running into the “hanging screen” issue, you might want to check to make sure you have the right version of the AIR runtime installed first.

  • Pingback: Queued - Netflix Queue in your Desktop | ShanKri-la()

  • I have not been able to get this to work. It always hangs on “Initializing Database Services.” I am using AIR 1.5 and the Vista OS. It’s too bad because it looks cool.

  • ttrenka

    Hi Nelson,

    We’ve been finding that if you delete the ELS directory that’s created when Queued first runs, it should run for you. You can find it at:


    (This is from another Vista user that had the same issue.)

    Delete that directory and then run Queued again; you should be good to go. You can also contact us directly via the email link on the Queued page.

    We’re still working on a fix for this; I’m hoping that it will be out early this week.

  • With Ubuntu 8.10 Air 1.5 and Queued stops at ‘Initializing database services…’

    I have tried the fixes listed for Linux with no change.

  • Deleting AppData equivalents on linux users home directory fixes problem with Initializing database services.

  • Bryan


    I was experiencing the “Initializing database services” error too. I’m running OS X, but removing the com.queued… directory from /Users/[myuser]/Library/Application Support/Adobe/AIR/ELS/ worked for me.


  • Marc

    Hello, I have installed Queued, but when I click the authorize button to link my netflix account nothing happens. Any thoughts?

  • Hi Marc,

    Have you tried the suggestions at ?

    This usually clears things up for most users.