background
Managing your Netflix queue can become unwieldy once you add more than a few dozen items. We previously provided bookmarklets to shuffle and reverse the queue, which is more of a novelty than a useful feature for most. There are a few desktop clients that are available now that provide an alternate interface with most of the functionality of the web interface, as well as some enhancements not available on the web side. I’m primarily concerned with improving the queue management features, which is the most tedious aspect of the web interface. Some of the features that are needed:
- Move to top – this is provided but requires a full page refresh. Not effective for large queues.
- Move to bottom – not provided at all.
- Drag and drop – there is a limited capability to do this when a movie is added, but only within the top 10 items.
- Sort – by star rating.
- Shuffle, Reverse – for people who like suprises.
approach
Instead of creating a separate application, I’ve taken the approach of augmenting the standard web interface with a bookmarklet. A bookmarklet is a just some javascript that can be “bookmarked”. Clicking on the bookmark allows the javascript to run in the context of the current page, to do something useful to the page.
The shuffle and reverse functions had already been addressed, but need to be adapted to the new tool. The drag and drop, top, and bottom functions are more complicated and require the ability to target specific items on the page. I searched around and found a few DHTML libraries that can be used to provide the drag and drop capability. There are some very nice packages out there, such as the ones from walterzorn.com and tool-man.org. I found the one from walterzorn.com to have more features, but due to the way it is invoked is unsuitable for use in bookmarklet applications that occur after the page is loaded. The ToolMan library doesn’t have that issue, and provides all the features I needed so it is the choice here.
installation
The script needs to be installed first. This is simple, just drag or right-click the link below to add it to your toolbar or favorites. Then it becomes a bookmarklet.
Netflix Queue Manager
The link is just this code:
javascript:
(function(){
var script=document.createElement('script');
script.src='http://badsegue.org/samples/toolman.js';
document.getElementsByTagName('body')[0].appendChild(script);
var script=document.createElement('script');
script.src='http://badsegue.org/samples/netflix-manager.js';
document.getElementsByTagName('body')[0].appendChild(script);
}
)()
When activated the bookmarklet will load the ToolMan library and the Netflix Manager scripts and act on the currently displayed page.
usage
Visit your Netflix queue page. Just click the Netflix Queue Manager bookmark that you just installed. The Manager will be overlayed onto the Netflix page.
From here you can drag and drop any row, and use the menu buttons at the top and bottom of the overlay. When you are finished use the CLOSE button to close the Manager. The position numbers on the Netflix page will be updated to reflect the positions selected in the Manager. Just use the Update Your Queue button to commit the changes.
conclusion
This tool should provide just about all the features you need to manage the queue. Some final notes:
- There is no delete button, but that can be done easily enough from the standard page.
- Sorting puts any personally rated movies at the top, followed by reccomendation ratings, followed by series discs. The series discs only have ratings on the first in the series so it’s difficult to place those discs in the proper context.
- You may encounter a script error when activating the Manager. Try the bookmark again. There may be timing issues when fetching and loading the two scripts. After the first load the browser should have cached the files. I only encountered this problem once, when using IE.
- There may be some untested conditions. I had to tweak the script after encountering various queue conditions, like Friend icons, series discs, top 100 icons, etc. You may have some combination of things in your queue that I couldn’t test.