sensible-cinema 0.9.4 → 0.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +24 -17
- data/TODO +34 -6
- data/VERSION +1 -1
- data/bin/sensible-cinema +5 -3
- data/lib/screen_tracker.rb +1 -1
- data/never_do +8 -4
- data/zamples/players/{how_to_create_more.txt → how_to_create_more_players.txt} +1 -1
- data/zamples/scene_lists/category descriptions.yml +22 -15
- data/zamples/scene_lists/{White Christmas.yml → dvds/White Christmas.yml} +0 -0
- data/zamples/scene_lists/{all_dogs_go_to_heaven_dvd.yml → dvds/all_dogs_go_to_heaven_dvd.yml} +0 -0
- data/zamples/scene_lists/{disney_cars.yml → dvds/disney_cars.yml} +1 -1
- data/zamples/scene_lists/{happy_feet_dvd.yml → dvds/happy_feet_dvd.yml} +0 -0
- data/zamples/scene_lists/{labyrinth.yml → dvds/labyrinth.yml} +0 -0
- data/zamples/scene_lists/dvds/making marriage work.yml +9 -0
- data/zamples/scene_lists/example_scene_descriptions_list.yml +26 -22
- metadata +10 -9
data/README
CHANGED
|
@@ -6,7 +6,7 @@ It then tracks whichever player you are using, and mutes or blanks out the syste
|
|
|
6
6
|
during the scenes specified.
|
|
7
7
|
|
|
8
8
|
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.
|
|
9
|
+
add new players, and probably wouldn't be too hard to add more operating systems etc.
|
|
10
10
|
|
|
11
11
|
== How to Use ==
|
|
12
12
|
|
|
@@ -48,7 +48,7 @@ It will proceed do a few "demo" mutes and blank outs.
|
|
|
48
48
|
|
|
49
49
|
To program sensible-cinema, you create a scene description list it can use.
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
A Program Description List (Edit Decision List--EDL) looks something like this example:
|
|
52
52
|
|
|
53
53
|
mutes:
|
|
54
54
|
"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.
|
|
@@ -66,27 +66,34 @@ To create it, basically you notice something you want to add to the list, add it
|
|
|
66
66
|
in your media player, and it should now be muted/blanked out automatically.
|
|
67
67
|
|
|
68
68
|
So here is a way to create your scene descriptions file.
|
|
69
|
-
First create a new file [2], and now select it for use in sensible-cinema (even though it's still blank).
|
|
70
|
-
Now "preview" your movie. As you do, you're going to add scenes to that file, and then test your additions.
|
|
71
69
|
|
|
72
|
-
|
|
73
|
-
|
|
70
|
+
First create a new file
|
|
71
|
+
|
|
72
|
+
The easiest way to do this is to start sensible-cinema, then instead of choosing an existing file,
|
|
73
|
+
"right click" on the existing file "example_scene_list.yml" and choose "Copy"
|
|
74
|
+
now right click below the list of files and choose "paste"
|
|
75
|
+
This will create the file "example_scene_list Copy.yml"
|
|
76
|
+
Right click on it, choose rename, and give it a better name.
|
|
77
|
+
Now "right click -> Open" to open it in an editor (recommend installing notepad++ and using that).
|
|
78
|
+
Note that you can edit this file *on the fly* while the player is editing. It will catch
|
|
79
|
+
changes as the file is saved and apply them.
|
|
80
|
+
|
|
81
|
+
Now select it for use in sensible-cinema (even though it's still blank).
|
|
82
|
+
Now "screen" your movie. As you watch it, you're going to add scenes to
|
|
83
|
+
that file, and then re-watch the scene to test your additions.
|
|
84
|
+
|
|
85
|
+
As you watch when you encounter a questionable scene, go back several seconds using your player's
|
|
86
|
+
controls. When you encounter it once again, track its beginning and ending time. One way to do this
|
|
74
87
|
is to, just before and just after the scene, hit the space bar *in the sensible-cinema window*.
|
|
75
88
|
Hitting the space bar outputs the current time. If you hit it twice, once before and once after,
|
|
76
89
|
you should now have two reasonably accurate "timestamps" displayed.
|
|
77
|
-
Add the beginning and
|
|
78
|
-
then review your additions by rewinding your player and letting it play through the scene
|
|
79
|
-
It should now skip it
|
|
90
|
+
Add the beginning and end times to your scene description file (changes will be automatically picked up),
|
|
91
|
+
then review your additions by rewinding your player and letting it play through the scene again.
|
|
92
|
+
It should now skip it (play it "sensibly"). If not, adjust your timestamps and try again.
|
|
80
93
|
|
|
81
|
-
Once you're done then you can contribute your scene descriptions file if desired, back to the project [1].
|
|
94
|
+
Once you're done then you can contribute your scene descriptions file if desired, back to the project itself [1].
|
|
82
95
|
|
|
83
96
|
[1] http://github.com/rdp/sensible-cinema/issues
|
|
84
|
-
[2] The easiest way to do this is to start sensible-cinema, then instead of choosing an existing file,
|
|
85
|
-
"right click" on the existing file "example_scene_list.yml" and choose "Copy"
|
|
86
|
-
now right click below the list of files and choose "paste"
|
|
87
|
-
This will create the file "example_scene_list Copy.yml"
|
|
88
|
-
Right click on it, choose rename, and give it a better name.
|
|
89
|
-
Now "right click -> Open" to open it in an editor (recommend installing notepad++ and using that).
|
|
90
97
|
|
|
91
98
|
== FAQ ==
|
|
92
99
|
|
|
@@ -162,7 +169,7 @@ http://forum.bsplayer.com/feature-requests-feedback-suggestions/7157-chapter-pla
|
|
|
162
169
|
http://www.inmatrix.com/ "scene cut editor" of the zoom player
|
|
163
170
|
http://wiki.xbmc.org/?title=EDL_(commercial_skipping)_and_SceneMarker_support (XBMC's scene cut support--also links to more others)
|
|
164
171
|
http://code.google.com/p/movie-content-editor (same thing, but in Python and only for VLC)
|
|
165
|
-
http://clearplay.com similar, but commercial (closed), and only for DVD's (
|
|
172
|
+
http://clearplay.com similar, but commercial (closed source, costs money, no user contribution), and only for DVD's (uses its own DVD-player).
|
|
166
173
|
|
|
167
174
|
though none of them are universal like this one is :)
|
|
168
175
|
|
data/TODO
CHANGED
|
@@ -9,21 +9,40 @@
|
|
|
9
9
|
can parse IMDB (require they put in the URL by hand)
|
|
10
10
|
try the new GOCR sources...
|
|
11
11
|
PISH
|
|
12
|
-
add stuffs to imdb
|
|
12
|
+
add stuffs to imdb hmmm
|
|
13
|
+
more often yell at them "not working"
|
|
13
14
|
|
|
14
15
|
== random backlog ... based on user request..remember: just local files for my own needs...==
|
|
15
16
|
|
|
17
|
+
"just choose VLCx55" LOL
|
|
18
|
+
|
|
19
|
+
itunes video on demand
|
|
20
|
+
|
|
21
|
+
blockbuster "rent" on demand, online
|
|
22
|
+
|
|
23
|
+
beep at them when not tracking [?]
|
|
24
|
+
|
|
16
25
|
note: just plow forward, to "grab" available ideas...except that for now, just what *I*
|
|
17
26
|
plan on needing for myself (filters for what I need/want).
|
|
18
27
|
|
|
19
28
|
re-advertise on ruby talk
|
|
20
29
|
|
|
21
|
-
|
|
30
|
+
a real website
|
|
31
|
+
|
|
32
|
+
advertise on ruby flow
|
|
33
|
+
|
|
34
|
+
no money making for now...all volunteer...more respectful.
|
|
35
|
+
or make it so it can work with an editor of some kind...like a "save here" command line snip this tuck that.
|
|
36
|
+
probably only possible after creating the desktop streamer hmm
|
|
22
37
|
|
|
23
|
-
|
|
38
|
+
integrate with librivox' audio so you can avoid profanity in classics. Somehow. This would be nice for portable players.
|
|
39
|
+
|
|
40
|
+
itunes player for profanity (music)?
|
|
41
|
+
|
|
42
|
+
an "online anybody can chat while watching this movie" (or anybody can edit this wav and listen to it as overlay...) prefer the latter.
|
|
24
43
|
|
|
25
44
|
an online applet web runnable? Why not?
|
|
26
|
-
click here to watch your favorite film edited! Just click! [* yea!]
|
|
45
|
+
click here to watch your favorite film edited on hulu! Just click! [* yea!]
|
|
27
46
|
a chrome plugin with imdb/community backing :)
|
|
28
47
|
|
|
29
48
|
code refactors: "screen time change", order should be swapped in bin/x output
|
|
@@ -44,7 +63,7 @@ TSR that monitors "oh you're opening a VLC? you're playing the E drive? That's b
|
|
|
44
63
|
|
|
45
64
|
a netflix online player descriptor
|
|
46
65
|
|
|
47
|
-
add my stuff to imdb...?
|
|
66
|
+
add my stuff to imdb...? wiki ?
|
|
48
67
|
|
|
49
68
|
make youtube work if you have *several* open
|
|
50
69
|
|
|
@@ -75,6 +94,7 @@ replay certain film sections :P
|
|
|
75
94
|
|
|
76
95
|
overlay/replace current playback with some url of audio or video
|
|
77
96
|
user editable overlays (like a wiki...)
|
|
97
|
+
realtime overlays (like group chat for those watching the film...)
|
|
78
98
|
|
|
79
99
|
control volume programmatically (using mouse) on the player itself.
|
|
80
100
|
control mute programmatically (using mouse) on the player itself.
|
|
@@ -108,4 +128,12 @@ star trek: generations first profanidade...
|
|
|
108
128
|
|
|
109
129
|
"Showing EDL Information During Playback"
|
|
110
130
|
|
|
111
|
-
integrate with google TV/bravia...maybe...somehow...boxxee?
|
|
131
|
+
integrate with google TV/bravia...maybe...somehow...boxxee?
|
|
132
|
+
itunes TV, too?
|
|
133
|
+
|
|
134
|
+
OCR the captioning as an auto profanity filter? (or perhaps download subtitles to be able to pre-screen), like the python fella does..
|
|
135
|
+
what else does python do that we can learn from? can we combine projects somehow, perhaps?
|
|
136
|
+
|
|
137
|
+
make an index of watchable on imdb based on stars (?)
|
|
138
|
+
|
|
139
|
+
http://en.wikipedia.org/wiki/RiffTrax
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.9.
|
|
1
|
+
0.9.7
|
data/bin/sensible-cinema
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
#!/usr/bin/ruby
|
|
2
|
+
|
|
1
3
|
puts 'Welcome to Sensible Cinema...'
|
|
2
4
|
require 'rubygems'
|
|
3
5
|
require 'sane'
|
|
@@ -37,7 +39,7 @@ else
|
|
|
37
39
|
player_description = ARGV.shift.to_s
|
|
38
40
|
if !File.exist?(player_description)
|
|
39
41
|
puts 'Please Select Computer Player'
|
|
40
|
-
player_description = FileChooser.choose_file("SELECT COMPUTER PLAYER", __dir__ + "/../zamples/players")
|
|
42
|
+
player_description = FileChooser.choose_file(" SELECT COMPUTER PLAYER", __dir__ + "/../zamples/players")
|
|
41
43
|
end
|
|
42
44
|
|
|
43
45
|
scene_list = ARGV.shift.to_s
|
|
@@ -49,7 +51,7 @@ else
|
|
|
49
51
|
else
|
|
50
52
|
if !File.exist? scene_list
|
|
51
53
|
puts 'Select Scene Descriptions file'
|
|
52
|
-
scene_list = FileChooser.choose_file("SELECT SCENE DESCRIPTIONS FILE", __dir__ + "/../zamples/scene_lists")
|
|
54
|
+
scene_list = FileChooser.choose_file(" SELECT SCENE DESCRIPTIONS FILE", __dir__ + "/../zamples/scene_lists/dvds")
|
|
53
55
|
end
|
|
54
56
|
|
|
55
57
|
if !scene_list
|
|
@@ -67,7 +69,7 @@ else
|
|
|
67
69
|
puts 'Selected player ' + File.basename(player_description) + "\n\t(full path: #{player_description})"
|
|
68
70
|
# this one doesn't use any updates, so just pass in file contents, not filename
|
|
69
71
|
screen_tracker = ScreenTracker.new_from_yaml File.binread(player_description), overlay
|
|
70
|
-
Mouse.jitter_forever_in_own_thread # when this ends you know
|
|
72
|
+
Mouse.jitter_forever_in_own_thread # when this ends you know a snapshot was taken...
|
|
71
73
|
|
|
72
74
|
# exit early if we just wanted a screen dump...a little kludgey...
|
|
73
75
|
unless overlay
|
data/lib/screen_tracker.rb
CHANGED
data/never_do
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
== well, probably never :P ==
|
|
1
|
+
== well, probably never care enough to ever do these :P ==
|
|
2
2
|
|
|
3
3
|
allow x2,y2 for player descriptions...
|
|
4
4
|
|
|
@@ -6,10 +6,12 @@ user-assignable "confidence" (how much time to 'wrap' surround the mutes, etc. t
|
|
|
6
6
|
|
|
7
7
|
able to make it "quieter" at certain parts, arbitrarily...
|
|
8
8
|
|
|
9
|
-
OCR the captioning as an auto profanity filter?
|
|
10
|
-
|
|
11
9
|
can overlay with a "fuzzer-outer" for specific coordinates somehow or other...
|
|
12
10
|
|
|
11
|
+
"tivo" for BYU-TV or what not. Tell it when, it records it for you (cut? uncut?)
|
|
12
|
+
|
|
13
|
+
amazon video on demand
|
|
14
|
+
|
|
13
15
|
super easy streamer windows -> {XBOX360, wii, etc..} basically playon.tv competitor, which appears to have no free equivalent, I guess, though you can
|
|
14
16
|
Currently it's either a cable, a computer (with its cable), or "ask me for this it might already work"
|
|
15
17
|
todo: refit a VLC version that works *if your soundcard supports it*
|
|
@@ -24,4 +26,6 @@ super easy streamer windows -> {XBOX360, wii, etc..} basically playon.tv competi
|
|
|
24
26
|
blu-ray
|
|
25
27
|
over wired (?)
|
|
26
28
|
LAN?
|
|
27
|
-
does blu-ray work with HDMI well?
|
|
29
|
+
does blu-ray work with HDMI well?
|
|
30
|
+
|
|
31
|
+
"If someone builds an app that will allow Google TV to stream video from my computer's iTunes collection, it *could* be worth the investment."
|
|
@@ -1,27 +1,34 @@
|
|
|
1
1
|
"profanity categories, so you don't have to write them":
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
euphemization: (these prolly aren't as important to note)
|
|
4
|
+
1 oh my gosh
|
|
5
|
+
2 dang
|
|
6
|
+
3 crap
|
|
7
|
+
|
|
6
8
|
religious reference:
|
|
7
|
-
|
|
9
|
+
1 "L*** have mercy"
|
|
8
10
|
|
|
9
11
|
religious exclamation:
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
1 da**
|
|
13
|
+
2 he**
|
|
12
14
|
|
|
13
15
|
religious exclamation deity:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
1 oh my ****
|
|
17
|
+
2 g** d***
|
|
18
|
+
|
|
19
|
+
bodily function mild:
|
|
20
|
+
1 crap
|
|
21
|
+
2 suck(s)
|
|
16
22
|
|
|
17
|
-
bodily function slang:
|
|
18
|
-
poop, crap, crud, suck
|
|
19
23
|
bodily function strong:
|
|
20
|
-
|
|
24
|
+
1 s***
|
|
21
25
|
|
|
22
26
|
innuendo:
|
|
23
|
-
language that has sexual overtones
|
|
27
|
+
language that has sexual overtones
|
|
28
|
+
|
|
24
29
|
sexual profanity:
|
|
25
|
-
f***
|
|
26
|
-
|
|
27
|
-
|
|
30
|
+
1 f***
|
|
31
|
+
|
|
32
|
+
body stuff:
|
|
33
|
+
1 a**
|
|
34
|
+
2 dick
|
|
File without changes
|
data/zamples/scene_lists/{all_dogs_go_to_heaven_dvd.yml → dvds/all_dogs_go_to_heaven_dvd.yml}
RENAMED
|
File without changes
|
|
@@ -3,7 +3,7 @@ player: VLC
|
|
|
3
3
|
mutes:
|
|
4
4
|
# one hour one minute and a half second to one hour one minute and 1.5s
|
|
5
5
|
"0:34:35" : "0:34:35" # "may doc have mercy on your soul"
|
|
6
|
-
"36:09" : "36:11" #
|
|
6
|
+
"36:09" : "36:11" # likes me for muh body
|
|
7
7
|
"37:05" : "37:06" # Mater makes a fart noise when discussing gas
|
|
8
8
|
"40:16" : "40:18" # ...good look at that sexy hot-rod
|
|
9
9
|
"44:24" : "44:46" # hill billy hxxx
|
|
File without changes
|
|
File without changes
|
|
@@ -1,26 +1,30 @@
|
|
|
1
|
-
#
|
|
1
|
+
# comment and descriptions can go after a # on each line. See http://github.com/rdp/sensible-cinema for complete creation instructions
|
|
2
2
|
mutes:
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
#
|
|
8
|
-
1:00 : 1:01
|
|
9
|
-
10:01 : 10:02 # mute from ten minutes, one second to ten minutes, 2 seconds
|
|
10
|
-
# if you use decimals, you'll have to put them in quotes
|
|
11
|
-
# 01:01:01.05 (for one hour, one minute, one second and a half) does not work
|
|
12
|
-
# "01:01:01.05" does
|
|
13
|
-
"01:01:00.5" : "01:01:01.5" # mute from one hour one minute and a half second to one hour one minute and 1.5s
|
|
14
|
-
# items can be out of chronological order
|
|
15
|
-
2.0 : 3.0
|
|
3
|
+
"00:00:01" : "00:00:02" # mute from second 1 to second 2
|
|
4
|
+
# so an example would be:
|
|
5
|
+
"00:00:01" : "00:00:02" # profanity: dang
|
|
6
|
+
"01:01:00" : "01:02:00" # mute from one hour one minute to one hour two minutes
|
|
7
|
+
# note: items can be out of chronological order
|
|
16
8
|
|
|
17
9
|
blank_outs:
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
10
|
+
# this first one blanks (by overlaying *over* the video, a black window)
|
|
11
|
+
# from one hour one minute to one hour two minutes, like:
|
|
12
|
+
"01:01:00" : "01:02:00" # "sex scene"
|
|
13
|
+
# you can also use fractions, like 3 minutes 3 seconds and a half to 3 minutes 4 seconds and a half:
|
|
14
|
+
"00:03:03.5" : "00:03:04.5"
|
|
15
|
+
# if you don't want to be explicit, you can reference a *number*
|
|
16
|
+
# from the category descriptions.yml file, like
|
|
17
|
+
"01:01:00" : "01:02:00" # "bodily function strong # 1"
|
|
18
|
+
# instead of
|
|
19
|
+
"01:01:00" : "01:02:00" # s***
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
# (if it's not there then just write it in your file and I'll add it later, or notify me)
|
|
22
|
+
|
|
23
|
+
# you can also add other notes, too, like title, source, whatever you want
|
|
24
|
+
# these are basically free form and not used for anything else yet
|
|
25
|
+
missing_content: "this doesn't list some mild name calling"
|
|
26
|
+
title: Forever Strong
|
|
27
|
+
source: Hulu
|
|
28
|
+
url: http://www.byutv.org/watch/1790-100
|
|
29
|
+
possible_new_rating: PG
|
|
30
|
+
whatever_else_you_want: "this is the old version of the film"
|
metadata
CHANGED
|
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
|
5
5
|
segments:
|
|
6
6
|
- 0
|
|
7
7
|
- 9
|
|
8
|
-
-
|
|
9
|
-
version: 0.9.
|
|
8
|
+
- 7
|
|
9
|
+
version: 0.9.7
|
|
10
10
|
platform: ruby
|
|
11
11
|
authors:
|
|
12
12
|
- Roger Pack
|
|
@@ -14,7 +14,7 @@ autorequire:
|
|
|
14
14
|
bindir: bin
|
|
15
15
|
cert_chain: []
|
|
16
16
|
|
|
17
|
-
date: 2010-
|
|
17
|
+
date: 2010-10-08 00:00:00 -06:00
|
|
18
18
|
default_executable: sensible-cinema
|
|
19
19
|
dependencies:
|
|
20
20
|
- !ruby/object:Gem::Dependency
|
|
@@ -223,7 +223,7 @@ files:
|
|
|
223
223
|
- vendor/imagemagick/msvcp90.dll
|
|
224
224
|
- vendor/imagemagick/msvcr90.dll
|
|
225
225
|
- vendor/imagemagick/vcomp90.dll
|
|
226
|
-
- zamples/players/
|
|
226
|
+
- zamples/players/how_to_create_more_players.txt
|
|
227
227
|
- zamples/players/hulu/total_length_over_an_hour.yml
|
|
228
228
|
- zamples/players/vlc/full_screened_total_length_over_an_hour.yml
|
|
229
229
|
- zamples/players/vlc/windowed_total_length_over_an_hour.yml
|
|
@@ -233,14 +233,15 @@ files:
|
|
|
233
233
|
- zamples/players/youtube/full_screened_1680x1050.yml
|
|
234
234
|
- zamples/players/youtube/normal_in_youtube.com.yml
|
|
235
235
|
- zamples/players/youtube/note_these_assume_less_than_10_minutes_length.txt
|
|
236
|
-
- zamples/scene_lists/White Christmas.yml
|
|
237
|
-
- zamples/scene_lists/all_dogs_go_to_heaven_dvd.yml
|
|
238
236
|
- zamples/scene_lists/category descriptions.yml
|
|
239
|
-
- zamples/scene_lists/
|
|
237
|
+
- zamples/scene_lists/dvds/White Christmas.yml
|
|
238
|
+
- zamples/scene_lists/dvds/all_dogs_go_to_heaven_dvd.yml
|
|
239
|
+
- zamples/scene_lists/dvds/disney_cars.yml
|
|
240
|
+
- zamples/scene_lists/dvds/happy_feet_dvd.yml
|
|
241
|
+
- zamples/scene_lists/dvds/labyrinth.yml
|
|
242
|
+
- zamples/scene_lists/dvds/making marriage work.yml
|
|
240
243
|
- zamples/scene_lists/example_scene_descriptions_list.yml
|
|
241
244
|
- zamples/scene_lists/gummy_bear_song_youtube.yml
|
|
242
|
-
- zamples/scene_lists/happy_feet_dvd.yml
|
|
243
|
-
- zamples/scene_lists/labyrinth.yml
|
|
244
245
|
- zamples/scene_lists/nuki_song_youtube.yml
|
|
245
246
|
- zamples/scene_lists/star_trek_generations_hulu.yml
|
|
246
247
|
has_rdoc: true
|