Sensible-cinema is a program that aims to allow you to do arbitrary scene selection (i.e. "mute out" or "bleep out" bad scenes). 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 known to work for for hulu and VLC playback on windows. It also isn't hard to add new players, and probably wouldn't be super hard to add more operating systems. The concept isn't new: 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.x, 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. == How to use == To use it, first watch an DVD/online movie you'd like to create a scene-list for. As questionable scenes occur, jot down their start and end times somewhere. Then create an Edit Decision List (EDL) file that looks like this: mutes: "00:01:01.5" : "00:01:02.5" # mute from one minute, one second and a half to one minute, two seconds and a half "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: "00:15" : "00:18" # sultry scene from seconds 15 to 18 will be blanked out. "01:00:00" : "01:01:02.5" # also blank out on of the muted scenes. ... Here's an example with more detail http://github.com/rdp/sensible-cinema/blob/master/zamples/scene_lists/example_scene_list.yml Now save that file somewhere (I tend to save it with a .yml extension--you don't have to--.txt will do) and remember where you saved it. Now start sensible-cinema, see above, and browse to wherever you file is (the "home" icon might be useful to you), and select it for your scene list. Also restart the movie. Sensible-cinema will now use it as the edit decision list for the movie as it plays it back. You could probably re-watch the movie and see if you got the timings right. A good excuse to watch movies, what could be better? Note also that don't have to watch the whole movie twice. You can create and test the scene list file on the fly. To do so, first create a blank file, and choose it in sensible-cinema (even though it's blank). Now "as you watch" the movie, you can edit the file, and any new changes should be picked up automatically. So you could basically notice something you want to add to the list, add it to the file, then go back a few seconds in your media player, and it should now be muted/blanked out automatically. == FAQ == Q. Can I watch movies this way on my TV, not just on my computer? A. Not yet. Well 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 other computer that you can move closer to the TV and do the same (ex: buy a used older laptop with s-video out). I'd be happy to do a linux port of sensible-cinema if anybody needs that for their dedicated TV computer. There has also been some work toward getting your computer to stream what it plays "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. Plus you can watch your DVD's on your computer monitor. Q. Why does my mouse bounce up and down while this thing is playing? A. This enables you to keep your on screen tracker visible, which 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. == 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 for licensing, usage terms (gplv3). == Feedback == Feedback, including feature requests, welcome. http://github.com/rdp/sensible-cinema http://github.com/rdp me