sensible-cinema 0.7.3 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -1,14 +1,17 @@
1
- Sensible-cinema is a program that allows you to do edit-decision-list scene selection (i.e. "mute out"
2
- or "bleep out" bad scenes) on arbitrary players like netflix online, vlc.
1
+ Sensible-cinema is a program that allows you to do pre-programmed scene selection (i.e. "mute out"
2
+ or "bleep out" scenes) on arbitrary media players like netflix online, vlc, etc.
3
3
 
4
- Currently it takes as input a list of known "skip-worthy" scenes (profanity, violence, annoying songs, whatever you don't like).
5
- It then tracks the player you are using, as it is playing, and mutes or blanks out the system screen appropriately,
4
+ Currently it takes as input a list of known "skip-worthy" scenes.
5
+ It then tracks the player you are using, and mutes or blanks out the system screen appropriately,
6
6
  during the scenes specified.
7
7
 
8
- Currently it is programmed out of the box to work with hulu and VLC player on windows. It isn't hard to
9
- add new players,and probably wouldn't be super hard to add more operating systems.
8
+ Currently it works out of the box with the hulu and VLC players on windows. It isn't hard to
9
+ add new players,and probably wouldn't be too hard to add more operating systems.
10
10
 
11
- The concept isn't all that novel: http://en.wikipedia.org/wiki/Edit_decision_list
11
+ The concept isn't novel:
12
+
13
+ http://www.imdb.com/swiki/special?ParentalGuideHelp "scene description"
14
+ http://en.wikipedia.org/wiki/Edit_decision_list
12
15
 
13
16
  == How to use ==
14
17
 
@@ -16,21 +19,21 @@ Start playing your movie in its player, then startup sensible-cinema thus:
16
19
 
17
20
  C:\> jruby -S sensible-cinema
18
21
 
19
- It then prompts you for a scene list file (ex: bambi.yml),
20
- and then subsequently for a player description file (ex: hulu_full_screen_with_total_length_over_an_hour.yml).
22
+ It prompts you for a scene description file (ex: bambi.yml),
23
+ and also for a player description file (ex: hulu_full_screen_with_total_length_over_an_hour.yml).
21
24
 
22
- You could also specify those two filenames on the command-line, if desired, like
25
+ Sensible-cinema will now run in a console window, screen tracking the player to monitor its position,
26
+ and react appropriately.
23
27
 
24
- C:\> jruby -S sensible-cinema mute_list.yml player_description.yml
28
+ It is presumed that you'll then minimize the console window and proceed to enjoy the movie.
25
29
 
26
- Sensible-cinema will now run in your console window, screen tracking the player's timer to monitor the playback position
27
- and react appropriately.
30
+ You could also specify those same two filenames on the command-line, if desired, ex:
31
+
32
+ C:\> jruby -S sensible-cinema mute_list.yml player_description.yml
28
33
 
29
34
  You'll know that it's working if, when you change the time of your player (ex: dragging it to a new spot
30
35
  in the playback), the screen output in sensible-cinema's console should change to match the new time.
31
36
 
32
- It is presumed that you'll then minimize the console window and enjoy the movie.
33
-
34
37
  == How to install ==
35
38
 
36
39
  First you'll need to install jruby (in case you haven't already), from http://www.jruby.org
@@ -49,9 +52,9 @@ choosing the hulu player.
49
52
 
50
53
  It will proceed do a few "demo" mutes and blank outs.
51
54
 
52
- == Programming Your Own Scene List ==
55
+ == Programming Your Own Scene Description File ==
53
56
 
54
- To program sensible-cinema, your job is to create an edit decision list it can use.
57
+ To program sensible-cinema, you create a scene description list it can use.
55
58
 
56
59
  An Edit Decision List (EDL) looks something like this trivial example:
57
60
 
@@ -70,20 +73,20 @@ then start sensible-cinema and instruct it to use your new file.
70
73
  To create it, basically you notice something you want to add to the list, add it, then go back a few seconds
71
74
  in your media player, and it should now be muted/blanked out automatically.
72
75
 
73
- So here is a way to create your scene list.
76
+ So here is a way to create your scene description file.
74
77
  First create a new file [2], and select it in sensible-cinema (even though it's still blank).
75
- Now select the new file you just created as your scene list.
76
- Now "preview" the movie, and as we do, we're going to add to the file, and test our additions.
78
+ Now use sensible-cinema and select the new file you just created.
79
+ Now "preview" the movie, and as you do, you're going scenes to the file, and then test your additions.
77
80
  As you watch and hit a questionable scene, go back to several seconds before it using your player's
78
- controls. When you run into it again, just before and just after the scene,
79
- hit the space bar *in the sensible-cinema window*. Hitting the space bar outputs the current playback time.
80
- You should now have two reasonably accurate "timestamps" displayed.
81
- If they look reasonable, add them to your scene list (changes will be automatically picked up),
81
+ controls. When you encounter the scene again, track its beginning and ending time. One way to do this
82
+ is to, just before and just after the scene, hit the space bar *in the sensible-cinema window*.
83
+ Hitting the space bar outputs the current time. If you hit it twice, once before and once after,
84
+ you should now have two reasonably accurate "timestamps" displayed.
85
+ Add the beginning and ending times to your scene description file (changes will be automatically picked up),
82
86
  then review your additions by rewinding your player and letting it play through the scene in question again.
83
87
  It should now skip it appropriately. If not, adjust your timestamps and try again.
84
88
 
85
-
86
- Once you're done then you can contribute your scene list if desired, to the project [1].
89
+ Once you're done then you can contribute your scene description file if desired, back to the project [1].
87
90
 
88
91
  [1] http://github.com/rdp/sensible-cinema/issues
89
92
  [2] The easiest way to do this is to start sensible-cinema, then instead of choosing an existing file,
@@ -102,19 +105,23 @@ A. Not yet. And maybe. Currently you'll either need to attach your computer to
102
105
  There has also been some work toward getting your computer to stream "live" to your wii/ps3/xbox.
103
106
  github message me if you're interested in trying it out!
104
107
 
105
- Q. What movies are available to watch online?
108
+ Q. What movies does this work with?
109
+
110
+ A. Any that you program it for :) Assuming the player is compatible, which most probably are.
111
+
112
+ Q. What movies are freely available to watch online?
106
113
 
107
- A. Not many are available free (hulu, youtube have a few), but Netflix has quite a few for its default subscription.
108
- Plus you can watch your existing DVD's on your computer, or rent or borrow them and watch them there.
114
+ A. Not many are available free (hulu, youtube have a few), though Netflix has quite a few with its default subscription.
115
+ Plus you can watch your existing DVD's, or rent or borrow DVD's and watch them using sensible-cinema.
109
116
 
110
- Q. Why does my mouse bounce up and down while this thing is playing?
117
+ Q. Why does my mouse bounce up and down while sensible-cinema is going?
111
118
 
112
119
  A. This enables your player to keep its on-screen time tracker, which in turn allows sensible-cinema to track where
113
120
  you're at. Message me if this bugs you too much and we'll see what we can do for it.
114
121
 
115
122
  Q. Why does it seem really laggy at screen detection at the beginning?
116
123
 
117
- A. It takes it awhile to warm up. Ping me if you want this fixed.
124
+ A. It takes it awhile to warm up its digit detection. Ping me if you would like to see this improved speed-wise.
118
125
 
119
126
  == Thanks ==
120
127
 
@@ -127,8 +134,9 @@ See the LICENSE file for licensing, usage terms (gplv3).
127
134
 
128
135
  == Related ==
129
136
 
130
- http://imdb.com (click on "parent's guide") and http://kids-in-mind.com are two sites that tend to have
131
- reasonably good lists of what all goes on in a movie
137
+ http://imdb.com tends to have reasonably good lists of what occurs in movies (find a movie, click on "parent's guide" on the left).
138
+ Sometimes it even lists the time signatures for events occur (ex: "Labyrinth" http://www.imdb.com/title/tt0047673/parentalguide)
139
+ which you could use to translate into a sensible-cinema compatible list.
132
140
 
133
141
  == Feedback ==
134
142
 
data/TODO CHANGED
@@ -4,30 +4,27 @@
4
4
 
5
5
  release ruby-y-y why not, it's interesting
6
6
  "Linux compat anyone?"
7
+ utube nuki
8
+ generations first profanidade...
7
9
 
8
- == raw backlog ... based on user request.. ==
10
+ == random backlog ... based on user request..remember: just local files for my own needs...==
9
11
 
10
- remember: just local files for my own needs...
11
- utube nuki
12
- generations profanidade
12
+ blank overlay "and you are one awesome klingon"
13
13
 
14
- screencast
15
- bundle fewer imagemagick binaries
14
+ screencast of something helpful.
16
15
 
17
- "do" star trek generations hulu scene list
18
- "**g" (Hulu near beginning)
19
- "may g** have mercy on your soul"
20
- Data when they crash into the earth
16
+ optimize imdb: http://www.imdb.com/board/bd0000042/thread/58361958?d=58361958, english friendlier url's
21
17
 
22
- finish happy feet scene list
18
+ bundle fewer imagemagick binaries
23
19
 
24
20
  just plow forward, to "grab" available ideas...
25
21
 
26
22
  netflix
27
23
 
28
24
  add my own stuff to imdb...
25
+ antz to imdb...
29
26
 
30
- imdb parser
27
+ imdb parser...somehow
31
28
 
32
29
  make it into a real live full functional app...like fully fully functional and good (for use, not editing), mostly with the drop down lists uh guess.
33
30
 
@@ -39,7 +36,7 @@ advertise like to lay men, to try to popularize
39
36
 
40
37
  with VLC non full screen, it does the annoying mouse thing needlessly (which doesn't bug as much these days...)
41
38
 
42
- youtube non full screened...hmmm
39
+ youtube/hulu non full screened...hmmm
43
40
 
44
41
  overlay with wav file (would work for VLC, could also "click to mute" for the others...)
45
42
 
@@ -56,9 +53,7 @@ a web runnable? Why not?
56
53
 
57
54
  blank out with a user specifiable color (?)
58
55
 
59
- Auto mute commercials?
60
-
61
- rruby.net rubyy.net
56
+ Auto mute/blank commercials?
62
57
 
63
58
  new github username
64
59
 
@@ -74,11 +69,6 @@ overlay alpha transparent pic
74
69
  Have a "list of all known movies (url's)" and be able to open (IE et al) to the correct part, and start playing them, and they work...
75
70
 
76
71
  magnify video parts (?)
77
- overlay with transparent gif?
78
-
79
- OCR
80
- pop it up only every so often (?)
81
- after commercials?
82
72
 
83
73
  user customizable levels...
84
74
  maybe even "I don't like ones that are x, y, z", or "boring level x"
@@ -86,18 +76,16 @@ user customizable levels...
86
76
  user-assignable "confidence" (how much time to 'wrap' surround the mutes, etc. to accomodate for slow computers/laggy internet/different players/poor input)
87
77
 
88
78
  auto-assignment of EDL's to media:
89
- DVD's
90
- VLC
91
- directory of scene-lists
92
- web plugin?
79
+ DVD's (right click...)
80
+ web browser plugin?
81
+ auto start on DVD insertion (?)
82
+ and show appropriate scene-lists available based on title/md5 of something?
93
83
 
94
84
  Programmatically do all of the above, by driving a player with its real API.
95
85
  VLC
96
- Allow it to make mp4's somewhere.
97
- See if burnable to DVD.
98
- web interface?
99
- auto start on DVD insertion (?)
100
- and show appropriate scene-lists available based on title/md5 of something?
86
+ Allow it to record to mp4's somewhere.
87
+ See if burnable to DVD/CD ...
88
+ (use web interface?)
101
89
 
102
90
  never do unless paid:
103
91
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.3
1
+ 0.7.4
data/bin/sensible-cinema CHANGED
@@ -40,19 +40,18 @@ else
40
40
  sleep 4
41
41
  else
42
42
  if !File.exist? scene_list.to_s
43
- scene_list = FileChooser.choose_file("SELECT SCENE LIST", __dir__ + "/../zamples/scene_lists")
43
+ scene_list = FileChooser.choose_file("SELECT SCENE DESCRIPTIONS FILE", __dir__ + "/../zamples/scene_lists")
44
44
  end
45
45
  unless scene_list
46
- puts "error: have to specify a scene list\n or specify \"test\" on the command line if you just want to snapshot your player"
46
+ puts "error: have to specify a scene descriptions file\n or specify \"test\" on the command line if you just want to snapshot your player"
47
47
  exit 1
48
48
  end
49
- puts 'Selected scene list ' + File.basename(scene_list) + " (#{scene_list})", ''
50
- overlay = OverLayer.new(scene_list)
51
-
49
+ puts 'Selected scene descriptions file ' + File.basename(scene_list) + " (#{scene_list})", ''
50
+ overlay = OverLayer.new(scene_list)
52
51
  end
53
52
 
54
- player_description = ARGV.shift
55
- if !File.exist?(player_description.to_s)
53
+ player_description = ARGV.shift.to_s
54
+ if !File.exist?(player_description)
56
55
  player_description = FileChooser.choose_file("SELECT PLAYER (optional)", __dir__ + "/../zamples/players")
57
56
  end
58
57
 
data/lib/overlayer.rb CHANGED
@@ -87,7 +87,7 @@ class OverLayer
87
87
  @mutex = Mutex.new
88
88
  @cv = ConditionVariable.new
89
89
  @file_mtime = nil
90
- reload_yaml!
90
+ check_reload_yaml
91
91
  @start_time = Time.now_f # assume they want to start immediately...
92
92
  if minutes
93
93
  self.set_seconds self.class.translate_string_to_seconds(minutes)
@@ -112,7 +112,7 @@ class OverLayer
112
112
  start = translate_string_to_seconds(start)
113
113
  endy = translate_string_to_seconds(endy)
114
114
  if start == 0 || endy == 0
115
- p 'warning--possible error in the scene list someline not parsed! (NB if you want one to start at time 0 please use 0.0001)', start, endy unless $DEBUG
115
+ p 'warning--possible error in the scene descriptions file some line not parsed! (NB if you want one to start at time 0 please use 0.0001)', start, endy unless $DEBUG
116
116
  # drop it in bitbucket...
117
117
  else
118
118
  new[start] = endy
@@ -1,21 +1,17 @@
1
- Basically to create a player description you tell it the window title and the coordinates of the "clock" as it plays, including the digits
1
+ Basically to create a player description you tell it the window title and the coordinates
2
+ of the "clock" as it plays, including the digits
2
3
 
4
+ Use the others are examples
3
5
 
4
- some tips:
6
+ Some tips:
5
7
 
6
- use WinCheat to see window names (under "Text")
7
- run scene-skipper with -v -- it will dump a screenshot of the window in question
8
- use Paint.net to examine the dumped graphic and get coords
9
-
10
- you can specify "test" in place of the "mutes_list.yml" to have it just the player_description.yml and exit
11
- it will screen capture your segment to your current working directory.
12
-
13
- Paint.net is quite handy.
8
+ use WinCheat to help with window names (under "Text") (alt+tab helps, too, since it displays titles).
9
+ run scene-skipper with 'test' for the scene description filename: it will dump a screenshot using the player description
10
+ use Paint.net to examine the dumped graphic and get coords (invert it to get easy negative coords).
14
11
 
15
12
  NB that the clock coords can have negative start offsets, which mean "distance from the bottom right corner"
16
13
 
17
- Also you can "invert" the image to more easily get the offsets if you have to use negative offsets.
18
-
19
- NB that you can specify "desktop" for the window name meaning full screen.
14
+ NB that you can specify "desktop" for the window name, meaning full screen. This is easier, though not necessarily better,
15
+ than finding out the real way.
20
16
 
21
- Post back with difficulties or questions.
17
+ Post back with difficulties and/or questions.
@@ -1,6 +1,4 @@
1
1
  # comments can go after the # on each line
2
- title: Forever Strong
3
- source: Hulu # these aren't required fields -- mutes and blank_outs are
4
2
  mutes:
5
3
  2.0 : 3.0
6
4
  4.0 : 5.0 # mute from second 4 to second 5
@@ -18,3 +16,9 @@ blank_outs:
18
16
  "00:15" : "00:18" # blank from second 15 to 18
19
17
  01:01 : "01:02.0" # blank from one minute one second to one minute two seconds, etc.
20
18
  1:00:00 : 1:00:30 # note also that if you blank something out it isn't muted unless you *also* add it to the mute list, above. Message me if you want that changed.
19
+
20
+ title: Forever Strong
21
+ source: Hulu # these aren't required fields -- mutes and blank_outs are
22
+ something_else: "for now you can add whatever categories you want, like what_it_would_now_be_rated
23
+ what_aspects_were_not_able_to_be_removed, url, DVD label, etc, though in reality the only required ones are mutes and blank_outs"
24
+
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 7
8
- - 3
9
- version: 0.7.3
8
+ - 4
9
+ version: 0.7.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - Roger Pack