sjson2srt 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1f428f4034cbaa8e23bbf34df08f17badd6e2897
4
+ data.tar.gz: 123983b84298d6a1dde51e8fb86ffc33c78c9660
5
+ SHA512:
6
+ metadata.gz: dd1d02577a2dea8e3c063cf365079b0f68e2a20f9e40df2ecc89d18639c262bc3a48062dde73bc6802f7cddc2392864e423916443a8c8891fe331a8da448373c
7
+ data.tar.gz: 78c3de9c590eac1a509feca9f160ef5ce4acbec86ba1e9108963b1ae3882fef46105accf1e07745cf7e29f136b0143c308a501c45144002e57a41ad20a93531a
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.bundle
11
+ *.so
12
+ *.o
13
+ *.a
14
+ mkmf.log
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --colour
2
+ --order rand
3
+ -f d
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in sjson2srt.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Dan Collis-Puro
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,46 @@
1
+ # Sjson2srt
2
+
3
+ This converts sjson to srt files.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'sjson2srt'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself:
18
+
19
+ $ gem install sjson2srt
20
+
21
+ ## Usage
22
+
23
+ In a ruby program:
24
+
25
+ srt_content = Sjson2srt::Converter.new(sjson_string).convert
26
+
27
+ This gem will install an executable named `sjson2srt` suitable for use in a
28
+ unix pipeline, thusly:
29
+
30
+ cat file.sjson | sjson2srt > output.srt
31
+
32
+ ## Contributing
33
+
34
+ 1. Fork it ( https://github.com/[my-github-username]/sjson2srt/fork )
35
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
36
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
37
+ 4. Push to the branch (`git push origin my-new-feature`)
38
+ 5. Create a new Pull Request
39
+
40
+ ## Contributors
41
+
42
+ * DJCP
43
+
44
+ ## Copyright
45
+
46
+ President and Fellows of Harvard College, 2014
data/Rakefile ADDED
@@ -0,0 +1,9 @@
1
+ require "bundler/gem_tasks"
2
+
3
+ require 'rspec/core'
4
+ require 'rspec/core/rake_task'
5
+ RSpec::Core::RakeTask.new(:spec) do |spec|
6
+ spec.pattern = FileList['spec/**/*_spec.rb']
7
+ end
8
+
9
+ task :default => :spec
data/bin/sjson2srt ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'sjson2srt'
4
+
5
+ begin
6
+ puts Sjson2srt::Converter.new(STDIN.read).convert
7
+ rescue => e
8
+ $stderr.puts "ERROR: #{e.message}"
9
+ exit 1
10
+ end
@@ -0,0 +1,37 @@
1
+ module Sjson2srt
2
+ class Converter
3
+
4
+ def initialize(content)
5
+ @json = JSON.parse(content)
6
+ end
7
+
8
+ def convert
9
+ output = []
10
+ json['text'].each_with_index do |line, i|
11
+ start_time = json['start'][i]
12
+ end_time = json['end'][i]
13
+
14
+ output << i + 1
15
+ output << "#{format_time(start_time)} --> #{format_time(end_time)}"
16
+ if line.length > 0
17
+ output << "#{line}\n"
18
+ else
19
+ output << ''
20
+ end
21
+ end
22
+
23
+ output.join("\n")
24
+ end
25
+
26
+ private
27
+
28
+ def format_time(raw_milliseconds)
29
+ milliseconds = raw_milliseconds % 1000
30
+ zero_padded_milliseconds = sprintf('%03d', (milliseconds % 1000))
31
+ seconds = ((raw_milliseconds - milliseconds) / 1000)
32
+ Time.at(seconds).gmtime.strftime('%R:%S') + ",#{zero_padded_milliseconds}"
33
+ end
34
+
35
+ attr_reader :json
36
+ end
37
+ end
@@ -0,0 +1,3 @@
1
+ module Sjson2srt
2
+ VERSION = "0.0.1"
3
+ end
data/lib/sjson2srt.rb ADDED
@@ -0,0 +1,7 @@
1
+ require 'sjson2srt/version'
2
+ require 'sjson2srt/converter'
3
+ require 'json'
4
+
5
+ module Sjson2srt
6
+ # Your code goes here...
7
+ end
data/sjson2srt.gemspec ADDED
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'sjson2srt/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "sjson2srt"
8
+ spec.version = Sjson2srt::VERSION
9
+ spec.authors = ["Dan Collis-Puro"]
10
+ spec.email = ["dan_collis-puro@harvard.edu"]
11
+ spec.summary = %q{Convert the sjson captioning format to the srt format}
12
+ spec.description = %q{Convert the sjson captioning format to the srt format. \
13
+ This includes an executable named "sjson2srt" that accepts sjson on STDIN and \
14
+ emits srt on STDOUT, suitable for use in a unix pipeline.}
15
+ spec.homepage = "https://github.com/djcp/sjson2srt"
16
+ spec.license = "MIT"
17
+
18
+ spec.files = `git ls-files -z`.split("\x0")
19
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
20
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
21
+ spec.require_paths = ["lib"]
22
+
23
+ spec.add_development_dependency "bundler", "~> 1.7"
24
+ spec.add_development_dependency "rake", "~> 10.0"
25
+ spec.add_development_dependency "rspec", "~> 3.1"
26
+ spec.add_development_dependency "simplecov", "~> 0.9"
27
+ spec.add_development_dependency "pry", "~> 0.10"
28
+ end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe Sjson2srt::Converter do
4
+ include FileHelpers
5
+
6
+ it 'raises an error with invalid json' do
7
+ expect { described_class.new('asdf') }.to raise_error
8
+ end
9
+
10
+ it 'converts between sjson and srt' do
11
+ content = content_from_example_file('example.sjson')
12
+
13
+ converter = described_class.new(content)
14
+
15
+ expect(converter.convert).to eq content_from_example_file('example.srt')
16
+ end
17
+ end
@@ -0,0 +1,15 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ require 'simplecov'
4
+ SimpleCov.start
5
+ require 'rspec'
6
+ require 'sjson2srt'
7
+ require 'pry'
8
+
9
+ # Requires supporting files with custom matchers and macros, etc,
10
+ # in ./support/ and its subdirectories.
11
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
12
+
13
+ RSpec.configure do |config|
14
+
15
+ end
@@ -0,0 +1 @@
1
+ {"start":[0,280,3960,6150,8640,10572,11910,13610,17300,19680,26760,33460,38583,41690,44800,47780,49340,50590,54690,56680,58090,61500,72470,79580,82350,91480,95640,98870,101310,107010,108940,117810,121290,122330,126300,126970,129509,133370,136070,137480,141270,143460,146860,151220,153370,157260,161100,162590,164950,165690,172640,173890,177290,179190,181950,185530,187410,191860,198500,201300,204400,206570,208280,209970,216780,221770,225710,231290,235760,238810,248300,249820,254240,256350,258640,263450,266070,269850,270890,272140,275290,278430,280310,282650,286100,287400,290820,292910,294560,301120,304900,306430,308200,313840,318420,319970,323620,327660,329840,330910,336170,338140,341060,344325,348140,349870,352560,354740,359590,362440,367220],"end":[280,3960,6150,8640,10572,11910,13610,17300,19680,26760,33460,38583,41690,44800,47780,49340,50590,54690,56680,58090,61500,72470,79580,82350,91480,95640,98870,101310,107010,108940,117810,121290,122330,126300,126970,129509,133370,136070,137480,141270,143460,146860,151220,153370,157260,161100,162590,164950,165690,172640,173890,177290,179190,181950,185530,187410,191860,198500,201300,204400,206570,208280,209970,216780,221770,225710,231290,235760,238810,248300,249820,254240,256350,258640,263450,266070,269850,270890,272140,275290,278430,280310,282650,286100,287400,290820,292910,294560,301120,304900,306430,308200,313840,318420,319970,323620,327660,329840,330910,336170,338140,341060,344325,348140,349870,352560,354740,359590,362440,367220,370737],"text":["","JOSE ANDRES: One more with gelatin, one more with gelatin","using the animal base.","Everyone knows how to use.","Do you like strawberries?","STUDENTS: Yeah.","JOSE ANDRES: We are not in season, I know.","But this is a video, so forgive me.","So let's go with a strawberry.","","A strawberry, just in case you didn't understand me.","So I think I'm going to stop it.","","What you're going to see here is something very important.","At the very beginning, it said strawberry, but we didn't see any","strawberries yet.","Don't worry, patience.","","They are coming.","[LAUGHTER]","JOSE ANDRES: What you are going to see is one technique that, thanks to","gelatin, has given chefs the opportunity to make a mousse-like","product without the use of heavy cream or fat.","And why is this amazing?","If go to some of the popular coffee places in the world, and you order","your mocha with whipped cream--","it comes with whipped cream, anyway--","you'll see that machine, right?","The whipped cream canister, the whipped cream bottle that used N2O,","nitrous oxide?","So we are able to put heavy cream, put the nitrous oxide, and then we shake.","We turn down, we press, and we have whipped cream.","Great.","I don't have to break my arm anymore again in my life.","This is powerful.","But let's you are making a strawberry mousse.","And let's say you put a traditional strawberry mousse.","Will be 50% strawberries, right?","Yes?","Will be 40% cream, yes?","10% sugar?","You will blend everything.","In the traditional, you will whip the whipped cream.","You'll mix some gelatin with the strawberry.","You'll wait until the strawberry gets kind of gel-y.","And then you'll start mixing slowly the whipped cream with the strawberry.","And at the end, you will let it rest.","And you will have a strawberry mousse.","Yummy, right?","But that has a fundamental problem, that the mousse is only 50%","strawberry.","","You may say, I like heavy cream.","","All right, so that's your problem.","[LAUGHTER]","JOSE ANDRES: But imagine for a second, if 50% of strawberry mousse is","delicious, imagine 100% is strawberry mousse.","Do you ask this strawberry if she wants to be mixed with the fat?","","You didn't, right?","But we do it.","Why?","What you're about to see gives you the power to make 100% strawberry mousse","without ever using fats anymore, only with the power of gelatins.","Because gelatins are almost the same as fat and whipped cream.","It gives you the opportunity to retain the air that comes inside the liquid.","By retaining a lot of air, you are able to make these amazing mousses.","So I told you that, but now forget about what I told you.","Because this strawberry mousse has some heavy cream, only because we are","going to be using liquid nitrogen.","And with liquid nitrogen, a strawberry doesn't behave anymore.","They need the heavy cream.","But important what I told you.","This is a new way, what you're going to see, of making 100% pure mousses of","liquids that are not fats.","Breakthrough in civilization.","No, this is not a laugh.","It's serious.","","So here we add the heavy cream.","Here we put a little bit of syrup.","Here we have gelatin.","The gelatin you always need to rehydrate it first.","It's very stiff.","They need like a bath to loose down the gelatin.","It's a very stiff person.","So you always put it in water first.","And so we're going to put the gelatin and the syrup with the cream.","And then we're going to add this beautiful strawberry puree.","All right?","You mix the whole thing.","You're going to strain to make sure there's no gelatin lumps anywhere,","pure, beautiful, tasty, sweet, delicious.","And we put it in the canister.","","And then we put the nitrous oxide.","We make sure that gets to the right temperature.","And take a look what we do.","This, what you see there, is a strawberry powder, dry strawberries","that we make like a flour of dry strawberries.","And we make the mousse of the strawberries.","We cover it with more of the powder of dried strawberries.","And we are going to introduce these in the liquid nitrogen,","only for a few seconds.","What's happening right now, the outside is frozen,","the inside is creamy.","When we cut through, the inside is pure creaminess.","The outside is pure hard shell.","Ladies and gentlemen, a strawberry.","[APPLAUSE]"],"paragraphs":[0,280,10572,11910,41690,56680,58090,108940,126970,153370,165690,185530,187410,209970,231290,256350,275290,290820,306430,327660,344325,367220]}
@@ -0,0 +1,434 @@
1
+ 1
2
+ 00:00:00,000 --> 00:00:00,280
3
+
4
+ 2
5
+ 00:00:00,280 --> 00:00:03,960
6
+ JOSE ANDRES: One more with gelatin, one more with gelatin
7
+
8
+ 3
9
+ 00:00:03,960 --> 00:00:06,150
10
+ using the animal base.
11
+
12
+ 4
13
+ 00:00:06,150 --> 00:00:08,640
14
+ Everyone knows how to use.
15
+
16
+ 5
17
+ 00:00:08,640 --> 00:00:10,572
18
+ Do you like strawberries?
19
+
20
+ 6
21
+ 00:00:10,572 --> 00:00:11,910
22
+ STUDENTS: Yeah.
23
+
24
+ 7
25
+ 00:00:11,910 --> 00:00:13,610
26
+ JOSE ANDRES: We are not in season, I know.
27
+
28
+ 8
29
+ 00:00:13,610 --> 00:00:17,300
30
+ But this is a video, so forgive me.
31
+
32
+ 9
33
+ 00:00:17,300 --> 00:00:19,680
34
+ So let's go with a strawberry.
35
+
36
+ 10
37
+ 00:00:19,680 --> 00:00:26,760
38
+
39
+ 11
40
+ 00:00:26,760 --> 00:00:33,460
41
+ A strawberry, just in case you didn't understand me.
42
+
43
+ 12
44
+ 00:00:33,460 --> 00:00:38,583
45
+ So I think I'm going to stop it.
46
+
47
+ 13
48
+ 00:00:38,583 --> 00:00:41,690
49
+
50
+ 14
51
+ 00:00:41,690 --> 00:00:44,800
52
+ What you're going to see here is something very important.
53
+
54
+ 15
55
+ 00:00:44,800 --> 00:00:47,780
56
+ At the very beginning, it said strawberry, but we didn't see any
57
+
58
+ 16
59
+ 00:00:47,780 --> 00:00:49,340
60
+ strawberries yet.
61
+
62
+ 17
63
+ 00:00:49,340 --> 00:00:50,590
64
+ Don't worry, patience.
65
+
66
+ 18
67
+ 00:00:50,590 --> 00:00:54,690
68
+
69
+ 19
70
+ 00:00:54,690 --> 00:00:56,680
71
+ They are coming.
72
+
73
+ 20
74
+ 00:00:56,680 --> 00:00:58,090
75
+ [LAUGHTER]
76
+
77
+ 21
78
+ 00:00:58,090 --> 00:01:01,500
79
+ JOSE ANDRES: What you are going to see is one technique that, thanks to
80
+
81
+ 22
82
+ 00:01:01,500 --> 00:01:12,470
83
+ gelatin, has given chefs the opportunity to make a mousse-like
84
+
85
+ 23
86
+ 00:01:12,470 --> 00:01:19,580
87
+ product without the use of heavy cream or fat.
88
+
89
+ 24
90
+ 00:01:19,580 --> 00:01:22,350
91
+ And why is this amazing?
92
+
93
+ 25
94
+ 00:01:22,350 --> 00:01:31,480
95
+ If go to some of the popular coffee places in the world, and you order
96
+
97
+ 26
98
+ 00:01:31,480 --> 00:01:35,640
99
+ your mocha with whipped cream--
100
+
101
+ 27
102
+ 00:01:35,640 --> 00:01:38,870
103
+ it comes with whipped cream, anyway--
104
+
105
+ 28
106
+ 00:01:38,870 --> 00:01:41,310
107
+ you'll see that machine, right?
108
+
109
+ 29
110
+ 00:01:41,310 --> 00:01:47,010
111
+ The whipped cream canister, the whipped cream bottle that used N2O,
112
+
113
+ 30
114
+ 00:01:47,010 --> 00:01:48,940
115
+ nitrous oxide?
116
+
117
+ 31
118
+ 00:01:48,940 --> 00:01:57,810
119
+ So we are able to put heavy cream, put the nitrous oxide, and then we shake.
120
+
121
+ 32
122
+ 00:01:57,810 --> 00:02:01,290
123
+ We turn down, we press, and we have whipped cream.
124
+
125
+ 33
126
+ 00:02:01,290 --> 00:02:02,330
127
+ Great.
128
+
129
+ 34
130
+ 00:02:02,330 --> 00:02:06,300
131
+ I don't have to break my arm anymore again in my life.
132
+
133
+ 35
134
+ 00:02:06,300 --> 00:02:06,970
135
+ This is powerful.
136
+
137
+ 36
138
+ 00:02:06,970 --> 00:02:09,509
139
+ But let's you are making a strawberry mousse.
140
+
141
+ 37
142
+ 00:02:09,509 --> 00:02:13,370
143
+ And let's say you put a traditional strawberry mousse.
144
+
145
+ 38
146
+ 00:02:13,370 --> 00:02:16,070
147
+ Will be 50% strawberries, right?
148
+
149
+ 39
150
+ 00:02:16,070 --> 00:02:17,480
151
+ Yes?
152
+
153
+ 40
154
+ 00:02:17,480 --> 00:02:21,270
155
+ Will be 40% cream, yes?
156
+
157
+ 41
158
+ 00:02:21,270 --> 00:02:23,460
159
+ 10% sugar?
160
+
161
+ 42
162
+ 00:02:23,460 --> 00:02:26,860
163
+ You will blend everything.
164
+
165
+ 43
166
+ 00:02:26,860 --> 00:02:31,220
167
+ In the traditional, you will whip the whipped cream.
168
+
169
+ 44
170
+ 00:02:31,220 --> 00:02:33,370
171
+ You'll mix some gelatin with the strawberry.
172
+
173
+ 45
174
+ 00:02:33,370 --> 00:02:37,260
175
+ You'll wait until the strawberry gets kind of gel-y.
176
+
177
+ 46
178
+ 00:02:37,260 --> 00:02:41,100
179
+ And then you'll start mixing slowly the whipped cream with the strawberry.
180
+
181
+ 47
182
+ 00:02:41,100 --> 00:02:42,590
183
+ And at the end, you will let it rest.
184
+
185
+ 48
186
+ 00:02:42,590 --> 00:02:44,950
187
+ And you will have a strawberry mousse.
188
+
189
+ 49
190
+ 00:02:44,950 --> 00:02:45,690
191
+ Yummy, right?
192
+
193
+ 50
194
+ 00:02:45,690 --> 00:02:52,640
195
+ But that has a fundamental problem, that the mousse is only 50%
196
+
197
+ 51
198
+ 00:02:52,640 --> 00:02:53,890
199
+ strawberry.
200
+
201
+ 52
202
+ 00:02:53,890 --> 00:02:57,290
203
+
204
+ 53
205
+ 00:02:57,290 --> 00:02:59,190
206
+ You may say, I like heavy cream.
207
+
208
+ 54
209
+ 00:02:59,190 --> 00:03:01,950
210
+
211
+ 55
212
+ 00:03:01,950 --> 00:03:05,530
213
+ All right, so that's your problem.
214
+
215
+ 56
216
+ 00:03:05,530 --> 00:03:07,410
217
+ [LAUGHTER]
218
+
219
+ 57
220
+ 00:03:07,410 --> 00:03:11,860
221
+ JOSE ANDRES: But imagine for a second, if 50% of strawberry mousse is
222
+
223
+ 58
224
+ 00:03:11,860 --> 00:03:18,500
225
+ delicious, imagine 100% is strawberry mousse.
226
+
227
+ 59
228
+ 00:03:18,500 --> 00:03:21,300
229
+ Do you ask this strawberry if she wants to be mixed with the fat?
230
+
231
+ 60
232
+ 00:03:21,300 --> 00:03:24,400
233
+
234
+ 61
235
+ 00:03:24,400 --> 00:03:26,570
236
+ You didn't, right?
237
+
238
+ 62
239
+ 00:03:26,570 --> 00:03:28,280
240
+ But we do it.
241
+
242
+ 63
243
+ 00:03:28,280 --> 00:03:29,970
244
+ Why?
245
+
246
+ 64
247
+ 00:03:29,970 --> 00:03:36,780
248
+ What you're about to see gives you the power to make 100% strawberry mousse
249
+
250
+ 65
251
+ 00:03:36,780 --> 00:03:41,770
252
+ without ever using fats anymore, only with the power of gelatins.
253
+
254
+ 66
255
+ 00:03:41,770 --> 00:03:45,710
256
+ Because gelatins are almost the same as fat and whipped cream.
257
+
258
+ 67
259
+ 00:03:45,710 --> 00:03:51,290
260
+ It gives you the opportunity to retain the air that comes inside the liquid.
261
+
262
+ 68
263
+ 00:03:51,290 --> 00:03:55,760
264
+ By retaining a lot of air, you are able to make these amazing mousses.
265
+
266
+ 69
267
+ 00:03:55,760 --> 00:03:58,810
268
+ So I told you that, but now forget about what I told you.
269
+
270
+ 70
271
+ 00:03:58,810 --> 00:04:08,300
272
+ Because this strawberry mousse has some heavy cream, only because we are
273
+
274
+ 71
275
+ 00:04:08,300 --> 00:04:09,820
276
+ going to be using liquid nitrogen.
277
+
278
+ 72
279
+ 00:04:09,820 --> 00:04:14,240
280
+ And with liquid nitrogen, a strawberry doesn't behave anymore.
281
+
282
+ 73
283
+ 00:04:14,240 --> 00:04:16,350
284
+ They need the heavy cream.
285
+
286
+ 74
287
+ 00:04:16,350 --> 00:04:18,640
288
+ But important what I told you.
289
+
290
+ 75
291
+ 00:04:18,640 --> 00:04:23,450
292
+ This is a new way, what you're going to see, of making 100% pure mousses of
293
+
294
+ 76
295
+ 00:04:23,450 --> 00:04:26,070
296
+ liquids that are not fats.
297
+
298
+ 77
299
+ 00:04:26,070 --> 00:04:29,850
300
+ Breakthrough in civilization.
301
+
302
+ 78
303
+ 00:04:29,850 --> 00:04:30,890
304
+ No, this is not a laugh.
305
+
306
+ 79
307
+ 00:04:30,890 --> 00:04:32,140
308
+ It's serious.
309
+
310
+ 80
311
+ 00:04:32,140 --> 00:04:35,290
312
+
313
+ 81
314
+ 00:04:35,290 --> 00:04:38,430
315
+ So here we add the heavy cream.
316
+
317
+ 82
318
+ 00:04:38,430 --> 00:04:40,310
319
+ Here we put a little bit of syrup.
320
+
321
+ 83
322
+ 00:04:40,310 --> 00:04:42,650
323
+ Here we have gelatin.
324
+
325
+ 84
326
+ 00:04:42,650 --> 00:04:46,100
327
+ The gelatin you always need to rehydrate it first.
328
+
329
+ 85
330
+ 00:04:46,100 --> 00:04:47,400
331
+ It's very stiff.
332
+
333
+ 86
334
+ 00:04:47,400 --> 00:04:50,820
335
+ They need like a bath to loose down the gelatin.
336
+
337
+ 87
338
+ 00:04:50,820 --> 00:04:52,910
339
+ It's a very stiff person.
340
+
341
+ 88
342
+ 00:04:52,910 --> 00:04:54,560
343
+ So you always put it in water first.
344
+
345
+ 89
346
+ 00:04:54,560 --> 00:05:01,120
347
+ And so we're going to put the gelatin and the syrup with the cream.
348
+
349
+ 90
350
+ 00:05:01,120 --> 00:05:04,900
351
+ And then we're going to add this beautiful strawberry puree.
352
+
353
+ 91
354
+ 00:05:04,900 --> 00:05:06,430
355
+ All right?
356
+
357
+ 92
358
+ 00:05:06,430 --> 00:05:08,200
359
+ You mix the whole thing.
360
+
361
+ 93
362
+ 00:05:08,200 --> 00:05:13,840
363
+ You're going to strain to make sure there's no gelatin lumps anywhere,
364
+
365
+ 94
366
+ 00:05:13,840 --> 00:05:18,420
367
+ pure, beautiful, tasty, sweet, delicious.
368
+
369
+ 95
370
+ 00:05:18,420 --> 00:05:19,970
371
+ And we put it in the canister.
372
+
373
+ 96
374
+ 00:05:19,970 --> 00:05:23,620
375
+
376
+ 97
377
+ 00:05:23,620 --> 00:05:27,660
378
+ And then we put the nitrous oxide.
379
+
380
+ 98
381
+ 00:05:27,660 --> 00:05:29,840
382
+ We make sure that gets to the right temperature.
383
+
384
+ 99
385
+ 00:05:29,840 --> 00:05:30,910
386
+ And take a look what we do.
387
+
388
+ 100
389
+ 00:05:30,910 --> 00:05:36,170
390
+ This, what you see there, is a strawberry powder, dry strawberries
391
+
392
+ 101
393
+ 00:05:36,170 --> 00:05:38,140
394
+ that we make like a flour of dry strawberries.
395
+
396
+ 102
397
+ 00:05:38,140 --> 00:05:41,060
398
+ And we make the mousse of the strawberries.
399
+
400
+ 103
401
+ 00:05:41,060 --> 00:05:44,325
402
+ We cover it with more of the powder of dried strawberries.
403
+
404
+ 104
405
+ 00:05:44,325 --> 00:05:48,140
406
+ And we are going to introduce these in the liquid nitrogen,
407
+
408
+ 105
409
+ 00:05:48,140 --> 00:05:49,870
410
+ only for a few seconds.
411
+
412
+ 106
413
+ 00:05:49,870 --> 00:05:52,560
414
+ What's happening right now, the outside is frozen,
415
+
416
+ 107
417
+ 00:05:52,560 --> 00:05:54,740
418
+ the inside is creamy.
419
+
420
+ 108
421
+ 00:05:54,740 --> 00:05:59,590
422
+ When we cut through, the inside is pure creaminess.
423
+
424
+ 109
425
+ 00:05:59,590 --> 00:06:02,440
426
+ The outside is pure hard shell.
427
+
428
+ 110
429
+ 00:06:02,440 --> 00:06:07,220
430
+ Ladies and gentlemen, a strawberry.
431
+
432
+ 111
433
+ 00:06:07,220 --> 00:06:10,737
434
+ [APPLAUSE]
@@ -0,0 +1,5 @@
1
+ module FileHelpers
2
+ def content_from_example_file(file_name)
3
+ File.read("./spec/support/example_files/#{file_name}")
4
+ end
5
+ end
metadata ADDED
@@ -0,0 +1,139 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sjson2srt
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Dan Collis-Puro
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-09-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.7'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.1'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: simplecov
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.9'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.9'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.10'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.10'
83
+ description: |-
84
+ Convert the sjson captioning format to the srt format. \
85
+ This includes an executable named "sjson2srt" that accepts sjson on STDIN and \
86
+ emits srt on STDOUT, suitable for use in a unix pipeline.
87
+ email:
88
+ - dan_collis-puro@harvard.edu
89
+ executables:
90
+ - sjson2srt
91
+ extensions: []
92
+ extra_rdoc_files: []
93
+ files:
94
+ - ".gitignore"
95
+ - ".rspec"
96
+ - Gemfile
97
+ - LICENSE.txt
98
+ - README.md
99
+ - Rakefile
100
+ - bin/sjson2srt
101
+ - lib/sjson2srt.rb
102
+ - lib/sjson2srt/converter.rb
103
+ - lib/sjson2srt/version.rb
104
+ - sjson2srt.gemspec
105
+ - spec/sjson2srt_converter_spec.rb
106
+ - spec/spec_helper.rb
107
+ - spec/support/example_files/example.sjson
108
+ - spec/support/example_files/example.srt
109
+ - spec/support/file_helpers.rb
110
+ homepage: https://github.com/djcp/sjson2srt
111
+ licenses:
112
+ - MIT
113
+ metadata: {}
114
+ post_install_message:
115
+ rdoc_options: []
116
+ require_paths:
117
+ - lib
118
+ required_ruby_version: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
123
+ required_rubygems_version: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: '0'
128
+ requirements: []
129
+ rubyforge_project:
130
+ rubygems_version: 2.2.2
131
+ signing_key:
132
+ specification_version: 4
133
+ summary: Convert the sjson captioning format to the srt format
134
+ test_files:
135
+ - spec/sjson2srt_converter_spec.rb
136
+ - spec/spec_helper.rb
137
+ - spec/support/example_files/example.sjson
138
+ - spec/support/example_files/example.srt
139
+ - spec/support/file_helpers.rb