Skip to content

Commit fec4973

Browse files
Merge pull request #527 from InnerSourceCommons/370-caption-positioning
370-caption-positioning
2 parents f500797 + 11b6b11 commit fec4973

5 files changed

Lines changed: 1121 additions & 3 deletions

File tree

CONTRIBUTING.md

Lines changed: 70 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,77 @@ Here is [an example](https://github.com/InnerSourceCommons/InnerSourceLearningPa
2828
* Here is the [status of translation efforts](https://github.com/InnerSourceCommons/InnerSourceLearningPath/wiki/Translations).
2929
* Other mechanics of working on translations follow the guidelines below that apply to any file in the `InnerSourceLearningPath`.
3030

31-
# Subtitles
31+
# Video Subtitles
32+
33+
All videos may have subtitles in any language. See [this video](https://drive.google.com/file/d/1IaAH8Zmp2ggBtelexhaZUqia5yS8mUjE/view?usp=sharing) for a short intro on how to access them.
34+
35+
## Adding Subtitles For the First Time
36+
37+
YouTube will automatically generate subtitles to most videos in English.
38+
It is easiest to use that as a starting point to then manually clean up timings and correct misspellings.
39+
1. In Creator Studio, select DUPLICATE AND EDIT on the automatic subtitles.
40+
2. When you are satisfied with your changes in the subtitle editor, choose PUBLISH.
41+
42+
## Changing Existing Subtitles
43+
44+
Be aware that, at this time, Creator Studio does not support subtitle positioning natively.
45+
The subtitle editor only addresses content and timings.
46+
If your video needs positioning changes, the tags must be added or adjusted manually.
47+
48+
Subtitle positioning will NOT be reflected in the video in the editor.
49+
All subtitles will appear at the bottom of the viewport while using the editor.
50+
It is also NOT currently possible to download a VTT file of a DRAFT subtitle set.
51+
Finally, making changes in the editor and publishing them will erase all pre-existing positioning tags.
52+
53+
Therefore, the overall process for editing subtitles with positioning goes like this:
54+
1. In Creator Studio, download a copy of the current VTT file (or look in source control for it).
55+
This gives you a back up of the existing set in case you want to completely revert your changes.
56+
2. Make your content and timing changes using the subtitle editor and PUBLISH them.
57+
_This erases pre-existing positioning tags._
58+
3. Download a copy of the new VTT file.
59+
4. Using your favorite text editor, add positioning tags and save the file.
60+
5. Go back to the subtitle editor, upload the new VTT file with positioning tags, and PUBLISH it to close the editor.
61+
6. Add the updated VTT file with positioning tags to source control.
62+
63+
If your video does not require positioning adjustments, you only need to do step #2.
64+
65+
## Subtitle Style Guide
66+
67+
* Keep subtitle height to a single line. **Never display more than two lines in height**, to prevent content blocking.
68+
* Keep subtitle width to the central 60% of the viewport. **Do not to let them extend to the full width of the viewport.**
69+
Drawing eyeballs to the extreme edges of the screen distracts from the content.
70+
* **Subtitles should be centered horizontally and shown at the bottom of the viewport**, unless this would obscure important visual information.
71+
In these cases, use positioning tags to put the subtitle at the top of the viewport.
72+
Revert to the bottom position when the scene allows.
73+
No matter where the subtitle ends up being placed, try to avoid obscuring the mouths of speakers in shot.
74+
* Try to display subtitles for at least 1.5 seconds before changing or disappearing them, to aid reading comprehension.
75+
This isn't always possible, however,
76+
**never display a subtitle for less than one second**.
77+
* **Subtitles should be timed to the speaker's voice.**
78+
They should appear when the speaker starts, and disappear when the speaker is finished and before a camera change, unless that causes the subtitle to be on screen for less than one second.
79+
* **Display words as spoken**, not as you think the speaker intended to say them.
80+
Do not censor or simplify the dialogue.
81+
Strive for accuracy.
82+
There are two exceptions:
83+
- Omit stuttering
84+
- Omit filler words like ("um")
85+
- _This runs counter to most captioning guidelines.
86+
However, we have had complaints in the past for subtitling these.
87+
Given these exceptions, don't automatically omit words like "but" or "so".
88+
These are filler words, but they are often essential for expressing meaning.
89+
Similarly, conversational phrases like "you know", and "right" often add flavour and should be included when time allows._
90+
* It is only necessary to identify a speaker when it is not obvious to the viewer.
91+
This is rare, even in cases where there are two speakers in a scene, since they speak one-at-a-time.
92+
But, it can happen, for example, when a diagram is being displayed and there are multiple speakers off screen.
93+
**If we do need identification, use a label in all caps.**
94+
Here are some examples:
95+
- _(single speaker)_ DANESE: This diagram will help us understand how InnerSource works.
96+
- _(two speakers)_ BOTH: Hope to see you there!
97+
- _(three or more)_ ALL: Fa la la la la!
98+
99+
100+
32101

33-
* All videos may have subtitles in any language.
34-
* See [this video](https://drive.google.com/file/d/1IaAH8Zmp2ggBtelexhaZUqia5yS8mUjE/view?usp=sharing) for how to add them.
35102

36103
# Files
37104

Lines changed: 256 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,256 @@
1+
WEBVTT
2+
Kind: captions
3+
Language: en
4+
5+
00:00:04.620 --> 00:00:05.760
6+
In this video segment,
7+
8+
00:00:05.760 --> 00:00:09.166
9+
we'll discuss the types of problems where InnerSource can help.
10+
11+
00:00:09.920 --> 00:00:12.758
12+
We'll do this by presenting a hypothetical,
13+
14+
00:00:12.758 --> 00:00:14.758
15+
yet believable collaboration scenario.
16+
17+
00:00:15.400 --> 00:00:17.033
18+
We'll examine common approaches
19+
20+
00:00:17.033 --> 00:00:19.900
21+
that teams take for this type of situation,
22+
23+
00:00:19.900 --> 00:00:21.444
24+
and both the advantages,
25+
26+
00:00:21.444 --> 00:00:23.639
27+
and the drawbacks, of each approach.
28+
29+
00:00:24.240 --> 00:00:26.344
30+
This conversation will help us to draw
31+
32+
00:00:26.344 --> 00:00:28.925
33+
conclusions and lessons about InnerSource.
34+
35+
00:00:29.909 --> 00:00:31.576
36+
Well, imagine two teams,
37+
38+
00:00:31.895 --> 00:00:35.382
39+
with one producing software that is consumed by another.
40+
41+
00:00:35.960 --> 00:00:37.140 line:0%
42+
To make it concrete,
43+
44+
00:00:37.352 --> 00:00:40.241 line:0%
45+
imagine a team producing an API Service
46+
47+
00:00:40.800 --> 00:00:44.160 line:0%
48+
that a team producing a User Experience consumes.
49+
50+
00:00:45.460 --> 00:00:49.628 line:100%
51+
At times, to deliver desired features, the Experience
52+
53+
00:00:49.922 --> 00:00:52.756
54+
may need to make a request for new functionality
55+
56+
00:00:52.881 --> 00:00:54.051
57+
from the API.
58+
59+
00:00:54.580 --> 00:00:57.081
60+
Oftentimes, the API will be able to deliver
61+
62+
00:00:57.081 --> 00:00:58.909
63+
this requested functionality.
64+
65+
00:00:58.909 --> 00:00:59.938
66+
No problem.
67+
68+
00:01:00.604 --> 00:01:03.311
69+
However, depending on schedules,
70+
71+
00:01:03.630 --> 00:01:05.860
72+
or other prioritizing constraints,
73+
74+
00:01:06.232 --> 00:01:08.634
75+
there may be times when that new functionality
76+
77+
00:01:08.634 --> 00:01:10.136
78+
can't be delivered right away.
79+
80+
00:01:11.140 --> 00:01:12.186
81+
In this scenario,
82+
83+
00:01:12.469 --> 00:01:15.451
84+
the Experience has a few options they might take.
85+
86+
00:01:16.447 --> 00:01:18.706
87+
The first we'll call "Wait It Out".
88+
89+
00:01:19.671 --> 00:01:20.693 line:15%
90+
With this approach,
91+
92+
00:01:20.693 --> 00:01:23.540 line:15%
93+
the Experience does nothing, and simply waits,
94+
95+
00:01:23.540 --> 00:01:27.847 line:15%
96+
hoping that the API will eventually be able to fill their feature request.
97+
98+
00:01:29.040 --> 00:01:32.126 line:0%
99+
Now, the advantage is that probably it requires
100+
101+
00:01:32.126 --> 00:01:36.489 line:0%
102+
the least amount of extra work on the part of the Experience.
103+
104+
00:01:37.360 --> 00:01:39.000 line:0%
105+
There's a clear drawback though,
106+
107+
00:01:39.000 --> 00:01:42.606 line:0%
108+
in that, the Experience doesn't get their desired functionality.
109+
110+
00:01:42.860 --> 00:01:43.960 line:0%
111+
At least, not right away.
112+
113+
00:01:44.440 --> 00:01:48.960 line:0%
114+
And, depending on future prioritization on the part of the API,
115+
116+
00:01:49.460 --> 00:01:51.880 line:100%
117+
that feature may not be delivered at all.
118+
119+
00:01:53.300 --> 00:01:56.700
120+
Another approach we'll call "Workaround".
121+
122+
00:01:57.694 --> 00:02:01.508
123+
With this approach, the Experience may do some extra work
124+
125+
00:02:01.508 --> 00:02:05.412
126+
to compensate for the lack of the requested functionality.
127+
128+
00:02:05.900 --> 00:02:09.740 line:15%
129+
This may be extra work in their own project,
130+
131+
00:02:09.900 --> 00:02:11.550 line:15%
132+
or they may start up a new project
133+
134+
00:02:11.550 --> 00:02:15.654 line:15%
135+
that gives them the functionality they were looking for via some other means.
136+
137+
00:02:16.640 --> 00:02:20.060 line:0%
138+
The benefit here is that the Experience can get what they want,
139+
140+
00:02:20.480 --> 00:02:23.080 line:0%
141+
when they want it, and by their own effort only.
142+
143+
00:02:23.260 --> 00:02:25.320 line:0%
144+
No dependency on another team.
145+
146+
00:02:25.980 --> 00:02:27.460 line:0%
147+
There's some real drawbacks though.
148+
149+
00:02:28.240 --> 00:02:30.901 line:0%
150+
The Experience has inadvertently signed up
151+
152+
00:02:30.901 --> 00:02:34.304 line:0%
153+
for the long term burden of maintenance of this new code.
154+
155+
00:02:34.740 --> 00:02:39.740 line:0%
156+
It's code that oftentimes is not in the domain of their core team competency.
157+
158+
00:02:41.000 --> 00:02:44.220 line:0%
159+
In addition, other teams of the company that have the same problem,
160+
161+
00:02:44.460 --> 00:02:47.640 line:0%
162+
are unable to use this specialized, one-off solution.
163+
164+
00:02:48.320 --> 00:02:52.780 line:0%
165+
And the company as a whole has acquired duplicate code and projects
166+
167+
00:02:53.240 --> 00:02:57.940 line:0%
168+
in the same problem area that are being worked on in an uncoordinated manner.
169+
170+
00:02:59.320 --> 00:03:02.180 line:100%
171+
Another approach we'll call "Escalate".
172+
173+
00:03:03.240 --> 00:03:07.020 line:15%
174+
With "Escalate", the experience doesn't take no for an answer,
175+
176+
00:03:07.020 --> 00:03:10.800 line:15%
177+
but attempts to influence the API to reconsider
178+
179+
00:03:10.880 --> 00:03:13.700 line:15%
180+
and prioritize their requested functionality.
181+
182+
00:03:14.840 --> 00:03:19.510 line:15%
183+
Oftentimes this appeal is made to somebody in the management hierarchy
184+
185+
00:03:19.510 --> 00:03:20.878 line:15%
186+
of the API.
187+
188+
00:03:21.280 --> 00:03:24.849 line:15%
189+
It's common for the request to come from someone in the management hierarchy
190+
191+
00:03:24.849 --> 00:03:26.116 line:15%
192+
of the Experience.
193+
194+
00:03:26.260 --> 00:03:29.080 line:15%
195+
Let's get the bosses together, have them talk it out.
196+
197+
00:03:30.180 --> 00:03:34.240 line:0%
198+
The potential advantage is that the Experience can get what it wants,
199+
200+
00:03:34.820 --> 00:03:35.760 line:0%
201+
when it wants it,
202+
203+
00:03:36.320 --> 00:03:39.780 line:0%
204+
without needing to maintain the new code long term.
205+
206+
00:03:40.800 --> 00:03:42.140 line:0%
207+
There are several disadvantages.
208+
209+
00:03:42.880 --> 00:03:45.460 line:0%
210+
In practice, the process of escalation
211+
212+
00:03:46.060 --> 00:03:50.220 line:0%
213+
tends to have high friction and take a large amount of time.
214+
215+
00:03:50.940 --> 00:03:56.410 line:0%
216+
And this time is spent by competent engineers and engineering leaders
217+
218+
00:03:56.420 --> 00:03:58.745 line:0%
219+
whose time is directed toward the non-productive
220+
221+
00:03:58.745 --> 00:04:01.314 line:0%
222+
non-engineering task of escalation.
223+
224+
00:04:03.360 --> 00:04:06.440 line:0%
225+
This process is so time intensive that it doesn't scale.
226+
227+
00:04:06.620 --> 00:04:10.789 line:0%
228+
A team that attempts to continually advocate for what it needs
229+
230+
00:04:10.820 --> 00:04:13.959 line:0%
231+
via escalation will simply run out of the time
232+
233+
00:04:13.959 --> 00:04:16.294 line:0%
234+
and social credibility that it needs to do so.
235+
236+
00:04:17.940 --> 00:04:20.440 line:100%
237+
This conversation teaches us about InnerSource.
238+
239+
00:04:20.760 --> 00:04:25.460
240+
And that InnerSource is meant to apply to the same type of collaborative situation
241+
242+
00:04:26.160 --> 00:04:31.080
243+
where a team producing software is unable to deliver functionality
244+
245+
00:04:31.360 --> 00:04:33.140
246+
that a team that's consuming it needs.
247+
248+
00:04:34.140 --> 00:04:38.760
249+
What InnerSource does is provide a way for the consuming team to get the benefits
250+
251+
00:04:39.140 --> 00:04:42.000
252+
of "Wait it Out", "Workaround", and "Escalate"
253+
254+
00:04:42.220 --> 00:04:44.240
255+
without those associated drawbacks.
256+

0 commit comments

Comments
 (0)