First off, I'd like to point out that it's a bad idea to be writing anything at 2am. This is generally what happens when I sit down after work to work on something -- before I know it, it is 2am and I go to bed leaving things in some completely whacked out state.
A week or so ago I sat down and implemented a big chunk of my Netflix Queue Extender greasemonkey script, but got stuck somewhere and promptly forgot about it after going to bed. Today I loaded up my netflix queue for the first time since then, completely forgetting that I put an "alert(movieTitle);" in just the wrong spot, causing it to pop up a dialog with the title of the movie for each item in your queue. As I have 351 things currently in the queue I was viewing, this was a bad thing.
You might say "Jer, clicking 'OK' 351 times isn't really a big deal," to which I would have to respond pointing out some further idiocy. My script is loading a list I have on listology.com that currently has about 25 things in it, and inserts it into the netflix queue page. Apparently I goofed somewhere, because it isn't popping up a dialog for each movie in my queue, it is popping up a dialog for each movie in my queue for each item in my listology.com list. Yup, 25 x 351 = 8,775 'OK' dialogs.
I had important stuff open in other tabs, so closing out firefox wasn't really a viable option, so I opted for the old "stick a beer bottle on the Enter key and walk away' method. Let's just say firefox doesn't like opening that many dialogs in a row. Somewhere after 3,000 of them firefox started doing very odd things, which eventually needed to be stopped by killing it.
So on with the update. I discovered that it doesn't really matter that listology.com requires approval to view posts -- I just use the edit url rather than the view url to obtain the contents of the list. The list actually updates right away, it just doesn't show up when 'viewing' the list until after moderation. With the 'edit' link you can see it right away. That's one problem down.
I have it inserting a new DIV element containing the list of movies from your listology.com list into the Netflix page right below your queue. Here's a little screenshot so you can see the injected content:
I obviously haven't done any formatting yet, and they don't yet actually link to anything when you click them. Where I got stuck is with a function that handles Netflix searching. Basically, my idea is like this: You have a list of movies on listology.com that contains the name of the movie and year. (I was working using the list that Becky from NetflixFan has containing her overflow.) For each item in the list it would do a netflix search, parse the results of the search looking for the combination of the same title and the same year, then when finding it store the netflix ID for that movie into a variable to use when constructing the 'Add to Queue' link. It would then add the movie's ID to the entry in the listology.com list so that next time through it doesn't need to bother searching to make the link.
I think the problem I'm running into has a simple fix, I'm just a little afraid of sitting down to fix it because it will once again be 2am and I'll have to quit in some random state again.
(snip from the bottom in case readers don't make it that far: Does anyone know of a site like listology.com that doesn't require moderation on creation/editing of lists?)
After spending quite a bit of time with Greasemonkey the other night, I have decided that one of the extremely fanciful projects I've been thinking about embarking upon to extend the functionality of Netflix is actually within my grasp. I've now figured out how everything I'd need to do works -- all that's really left to do is to implement all the bits together.
My idea is inspired by a comment Becky over at NetflixFan left on a post I made regarding the 500 item queue limitation.
She says that she stores her overflow in a list on listology.com and just moves things over from there as needed, but that it is completely non-automated.
This got me thinking of several possibilities:
1) it'd be pretty trivial to implement a script that does the following when you click the 'add to queue' button: check how many items are currently in your queue -- if the queue is full, add the movie to the listology.com list you've already set up to hold your overflow, otherwise just add it to your Netflix queue as normal.
2) either the same script or another could then add things from your listology queue to your Netflix queue automagically each time you load your netflix queue page. If your Netflix queue has dropped below 500 -- say to 498 -- the top 2 items in your listology.com queue would then be copied into your queue without needing to do anything.
This opens up an even more valuable possiblity though:
If the script had a preference for how many things you wanted to keep in your netflix queue -- say 10 or so -- anything you add to your queue above and beyond that amount would then be in a "3rd party" location. The value in this is, if you suddenly decided you'd like to try out Wal-mart, Blockbuster, GreenCine, NicheFlix or any other service you would then only need to install the correct script to have your queue imported into whichever service you wanted to use, little by little. This would save a crapload of time, and might encourage people to give the competition a try, eliminating the "lock in" factor.
Finally we have my 3rd idea:
3) it would be pretty trivial to have the contents of your listology queue displayed right under your actual Netflix queue, meaning you would never even need bother going to listology.com. Having them sortable like the actual Netflix queue would be much less trivial, but is entirely doable.
So by wrapping all these things together you'd get both an effective transparent work-around for the 500 item limit on your queue plus a completely transparent way of keeping your queue in a place where you could get it to other rental services seamlessly.
The only problem? Listology.com requires moderation on lists created by new members. This means that I have created a list, but am currently unable to even view the list, let alone interface to it via Greasemonkey. Hopefully each change to that list won't require moderation as well. This will only really work if things can be changed realtime.
Does anyone know of a site like listology.com that doesn't require moderation that I could use for this? All that is required is that you can get the entire contents of a list from one url. Having a url that you can use to simply add an item to the end of the list would be an added bonus, saving me the hassle of doing that bit in code like I'd have to with listology.com.
I'm not entirely sure why, but netflix's star ratings really bother me. It drives me crazy when I go to rate a movie "I hated it" by giving it a star. I do understand how the system works -- one star is the lowest you can go -- but I can't help but think back to 3rd grade when getting a gold star is a GOOD thing. You never got a star for doing bad work, only good work, so it pains me every time I do it.
I decided to remedy the situation and write a Greasemonkey script that replaces all the star graphics with new graphics of my own creation. Here's a screenshot of how I see netflix now:
Letter grades seem to make alot more sense to me, and I feel pretty good about giving a movie an F.
While I was digging around trying to figure out all the places I needed to replace images, I found a few interesting things:
1) even though your ratings are always shown with yellow stars, and you can only select whole stars, there are graphics for partial stars: Perhaps there will be partial star ratings in the future? More likely they just generated all the stars from a photoshop script or something.
I've recently found that netflix has some problems with recommendations, and after doing a little searchingaround I've found that many other people have the same problem. In a comment on one of those blog entries, I found MovieLens.
MovieLens isn't quite as elegant at displaying movies as netflix is, but the recommendations work really well. After you rate 13 movies, it starts giving you recommendations, estimating what they think you'll rate them. As you rate more, the results are more accurate. They use a 5 star system just like netflix does, except you can select ratings in half star increments. Basically this gives you 10 different options to choose from rather than the paltry 5 that netflix offers. In addition to a better rating system, you can also filter search results by language, genre, year and various other things. You want to see only japanese horror films before 1997, no problem.
There is a little bit of hassle factor with using external recommendations though; if you want to add a movie to your netflix queue, you have to go over to netflix and search for it there in order to add it. I decided to get my feet wet writing Greasemonkey scripts (read a nifty Wired article that explains Greasemonkey here) by writing one that adds a link to each movie that completely automates the process.
Here's without my Greasemonkey script:
Here's with my Greasemonkey script: