Sensible-cinema is a program that allows you to do edit-decision-list scene selection (i.e. "mute out" or "bleep out" bad scenes) on arbitrary players like netflix online, vlc. Currently it takes as input a list of known "skip-worthy" scenes (profanity, violence, annoying songs, whatever you don't like). It then tracks the player you are using, as it is playing, and mutes or blanks out the system screen appropriately, during the scenes specified. Currently it is programmed out of the box to work with hulu and VLC player on windows. It isn't hard to add new players,and probably wouldn't be super hard to add more operating systems. The concept isn't all that novel: http://en.wikipedia.org/wiki/Edit_decision_list == How to use == Start playing your movie in its player, then startup sensible-cinema thus: C:\> jruby -S sensible-cinema It then prompts you for a scene list file (ex: bambi.yml), and then subsequently for a player description file (ex: hulu_full_screen_with_total_length_over_an_hour.yml). You could also specify those two filenames on the command-line, if desired, like C:\> jruby -S sensible-cinema mute_list.yml player_description.yml Sensible-cinema will now run in your console window, screen tracking the player's timer to monitor the playback position and react appropriately. You'll know that it's working if, when you change the time of your player (ex: dragging it to a new spot in the playback), the screen output in sensible-cinema's console should change to match the new time. It is presumed that you'll then minimize the console window and enjoy the movie. == How to install == First you'll need to install jruby (in case you haven't already), from http://www.jruby.org Make sure you check the box "add it to my path" or something similar to that. Next install the gem by either opening up the command window or hitting windows+r (run) and typing C:\> jruby -S gem install sensible-cinema it's jruby only currently (since jruby allows for proper thread concurrency, has an easy GUI, and feels actually sane on windows). It could theoretically be ported to MRI 1.9.2, if anybody wanted to do so. Also if anybody would be interested in porting this to Linux I'd be happy to collaborate. You can test that it's installed by running it (see above) and selecting the "example_scene_list.yml", and choosing the hulu player. It will proceed do a few "demo" mutes and blank outs. == Programming Your Own Scene List == To program sensible-cinema, your job is to create an edit decision list it can use. An Edit Decision List (EDL) looks something like this trivial example: mutes: "01:00:00" : "01:01:02.5" # mute from exactly one hour to one hour, one minute, two seconds and a half will be muted. blank_outs: "01:00:00" : "01:01:02.5" # also blank out (overlay with blank window) the same. Here's one with more detail http://github.com/rdp/sensible-cinema/blob/master/zamples/scene_lists/example_scene_list.yml Basically your job is to save an appropriate file like that somewhere, then start sensible-cinema and instruct it to use your new file. To create it, basically you notice something you want to add to the list, add it, then go back a few seconds in your media player, and it should now be muted/blanked out automatically. So here is a way to create your scene list. First create a new file [2], and select it in sensible-cinema (even though it's still blank). Now select the new file you just created as your scene list. Now "preview" the movie, and as we do, we're going to add to the file, and test our additions. As you watch and hit a questionable scene, go back to several seconds before it using your player's controls. When you run into it again, just before and just after the scene, hit the space bar *in the sensible-cinema window*. Hitting the space bar outputs the current playback time. You should now have two reasonably accurate "timestamps" displayed. If they look reasonable, add them to your scene list (changes will be automatically picked up), then review your additions by rewinding your player and letting it play through the scene in question again. It should now skip it appropriately. If not, adjust your timestamps and try again. Once you're done then you can contribute your scene list if desired, to the project [1]. [1] http://github.com/rdp/sensible-cinema/issues [2] The easiest way to do this is to start sensible-cinema, then instead of choosing an existing file, right click and choose "New -> Text Document" Now rename it (leaving it as .txt). "Right click -> Open" to open it in an editor. Now also select that same file in sensible-cinema. Another easy way is to "right drag" an existing file then rename it and edit that one. == FAQ == Q. Can I watch movies this way on my TV, not just on my computer? A. Not yet. And maybe. Currently you'll either need to attach your computer to your TV (buy some long cables, or a new graphics card, etc.) or get some computer that you can move closer to the TV and do the same (ex: buy a used older laptop with s-video out, use that). I'd be happy to do a linux port of sensible-cinema if anybody requests it for their dedicated TV computer. There has also been some work toward getting your computer to stream "live" to your wii/ps3/xbox. github message me if you're interested in trying it out! Q. What movies are available to watch online? A. Not many are available free (hulu, youtube have a few), but Netflix has quite a few for its default subscription. Plus you can watch your existing DVD's on your computer, or rent or borrow them and watch them there. Q. Why does my mouse bounce up and down while this thing is playing? A. This enables your player to keep its on-screen time tracker, which in turn allows sensible-cinema to track where you're at. Message me if this bugs you too much and we'll see what we can do for it. Q. Why does it seem really laggy at screen detection at the beginning? A. It takes it awhile to warm up. Ping me if you want this fixed. == Thanks == Thanks to Jarmo for the win32-screenshot gem, and the mini_magick gem authors, jruby guys, etc. Made programming this actually somewhat a pleasure. == License == See the LICENSE file for licensing, usage terms (gplv3). == Related == http://imdb.com (click on "parent's guide") and http://kids-in-mind.com are two sites that tend to have reasonably good lists of what all goes on in a movie == Feedback == Feedback, including feature requests, welcome. http://github.com/rdp/sensible-cinema http://github.com/rdp me